Root 5.30.00 build failure archlinux, error including lzma.h

My system has archlinux 64 bit installed, using gcc 4.6.1 and xz 5.0.3

The way I configure root is

./configure \ ${TARGET} \ --prefix=/usr \ --disable-builtin-ftgl \ --disable-builtin-freetype \ --disable-builtin-glew \ --disable-builtin-pcre \ --disable-builtin-zlib \ --disable-builtin-lzma \ --enable-gdml \ --enable-gsl-shared \ --enable-minuit2 \ --enable-soversion \ --enable-roofit \ --enable-python \ --with-python-incdir=/usr/include/python2.7 \ --with-python-libdir=/usr/lib

I get the following error during output gist.github.com/1053977
The error starts on line 3984 of the output.
Relevant error msg:
In file included from /build/src/root/core/lzma/src/ZipLZMA.c:13:0:
/usr/include/lzma/lzma.h:16:3: error: #error Never include this file directly. Use <lzma.h> instead.

Removing the “disable builtin lzma” flag doesn’t fix the issue.
I’ve been able to compile root 5.28.00e without problems.

If you need any more info, please let me know. Thanks.

Dear experts,
I also get the same exact problem when I try to compile v5.30.00 on either 32 bit or 64 bit platform:

  1. my 64 bit platform PC runs Fedora Core 12:
    uname -a
    2.6.31.12-174.2.22.fc12.x86_64 #1 SMP Fri Feb 19 18:55:03 UTC 2010 x86_64 x86_64 x86_64 GNU/Linux
    gcc --version
    gcc (GCC) 4.4.3 20100127 (Red Hat 4.4.3-4)

  2. my 32 bit platform PC runs Fedora Core 14:
    uname -a
    2.6.35.13-92.fc14.i686 #1 SMP Sat May 21 17:39:42 UTC 2011 i686 i686 i386 GNU/Linux
    gcc --version
    gcc (GCC) 4.5.1 20100924 (Red Hat 4.5.1-4)

The output of the error log in both cases starts like this:

In file included from /usr/cern/root_v5.30.00/core/lzma/src/ZipLZMA.c:13:0:
/usr/include/lzma/lzma.h:16:3: error: #error Never include this file directly. Use <lzma.h> instead.
/usr/include/lzma/lzma.h:120:8: warning: return type defaults to ‘int’
/usr/include/lzma/lzma.h: In function ‘LZMA_API’:
/usr/include/lzma/lzma.h:120:28: error: expected declaration specifiers before ‘lzma_mf_is_supported’
...

and the whole compilation goes downhill afterwards.

Hello, same problem here on 64-bits linux laptop (kernel 2.6.38.7).

Hi,

Try adding --enable-builtin-lzma to the configure script.

Cheers,
Philippe.

explicitly enabling it worked for me, thanks

I am still willing to help test out ways to fix why it fails when you disable internal lzma support.

HI,

The issue is likely that your version of lzma is not installed in the same pattern/way as the one we tried out. We have been exclusive trying XZ implementation (see tukaani.org/xz/embedded.html).

Cheers,
Philippe

Hi,

getting the same error message when building ROOT on debian, the problem turned out to be in the order of paths when the configure script searches for lzma.h (line 2430). There are two such files on debian system:

/usr/include/lzma/lzma.h
/usr/include/lzma.h

The configure script picks up the first one, while it is the second one that should be used (at least on debian). So the fix is trivial, unless some other architecture has the installation of lzma.h files done in opposite way…

Best regards,
Pavel

Hi,

Thanks for reporting this issue. It is fixed in the trunk and the v5.30 patch branch.

Cheers,
Philippe.