[trunk 41975] ftgzip.c:(.text+0x1f1): undefined reference to

After updating the trunk to the revision 41975, I met the following problem during compilation:

[quote]==> lib/libCore.so done
g++ -shared -Wl,-soname,libGraf.so -m64 -O2 -Wl,–no-undefined -o lib/libGraf.so graf2d/graf/src/TArc.o graf2d/graf/src/TArrow.o graf2d/graf/src/TAttImage.o graf2d/graf/src/TBox.o graf2d/graf/src/TCrown.o graf2d/graf/src/TCurlyArc.o graf2d/graf/src/TCurlyLine.o graf2d/graf/src/TCutG.o graf2d/graf/src/TDiamond.o graf2d/graf/src/TEllipse.o graf2d/graf/src/TFrame.o graf2d/graf/src/TGaxis.o graf2d/graf/src/TGraphPolar.o graf2d/graf/src/TGraphPolargram.o graf2d/graf/src/TGraphQQ.o graf2d/graf/src/TImage.o graf2d/graf/src/TLatex.o graf2d/graf/src/TLegend.o graf2d/graf/src/TLegendEntry.o graf2d/graf/src/TLine.o graf2d/graf/src/TLink.o graf2d/graf/src/TMarker.o graf2d/graf/src/TPave.o graf2d/graf/src/TPaveLabel.o graf2d/graf/src/TPaveStats.o graf2d/graf/src/TPavesText.o graf2d/graf/src/TPaveText.o graf2d/graf/src/TPie.o graf2d/graf/src/TPieSlice.o graf2d/graf/src/TPoints.o graf2d/graf/src/TPolyLine.o graf2d/graf/src/TText.o graf2d/graf/src/TTF.o graf2d/graf/src/TWbox.o graf2d/graf/src/G__Graf.o -lfreetype -Llib -lHist -lMatrix -lRIO -lMathCore -Llib -lCore -lCint -ldl
lib/libfreetype.a(ftgzip.o): In function ft_gzip_file_init': ftgzip.c:(.text+0x1f1): undefined reference toinflateInit2_'
lib/libfreetype.a(ftgzip.o): In function ft_gzip_file_done': ftgzip.c:(.text+0x23b): undefined reference toinflateEnd’
lib/libfreetype.a(ftgzip.o): In function ft_gzip_file_reset': ftgzip.c:(.text+0x2d3): undefined reference toinflateReset’
lib/libfreetype.a(ftgzip.o): In function ft_gzip_file_fill_output': ftgzip.c:(.text+0x434): undefined reference toinflate’
collect2: ld returned 1 exit status
make: *** [lib/libGraf.so] Error 1 [/quote]

could you please have a look? Many thanks in advance.

Operating system? Compiler version?

Sorry, I should have told you that it is a standard SLC5 machine, with gcc 4.1.2:

[quote]g++ -v
Using built-in specs.
Target: x86_64-redhat-linux
Configured with: …/configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-libgcj-multifile --enable-languages=c,c++,objc,obj-c++,java,fortran,ada --enable-java-awt=gtk --disable-dssi --disable-plugin --with-java-home=/usr/lib/jvm/java-1.4.2-gcj-1.4.2.0/jre --with-cpu=generic --host=x86_64-redhat-linux
Thread model: posix
gcc version 4.1.2 20080704 (Red Hat 4.1.2-50)
[/quote]

It looks like the “libz” is missing. The linking step should contain “… -lfreetype -lz …”.
Try maybe to search for “zlib” and “libz” in “config.status” and “config.log” files.

[quote=“Pepe Le Pew”]It looks like the “libz” is missing. The linking step should contain “… -lfreetype -lz …”.
Try maybe to search for “zlib” and “libz” in “config.status” and “config.log” files.[/quote]

Thanks. It found it finally?

[quote]%grep -r “libz” config.*
config.log:Checking for libz …
config.log:libraries to check for: libz.so libz.sl libz.dylib libz.dll.a libz.a libz.lib libz
config.log: Checking in directories /usr/local/zlib64/lib64 /usr/local/zlib/lib for libz.so libz.sl libz.dylib libz.dll.a libz.a libz.lib libz
config.log: Checking in directories /usr/local/lib64 /usr/local/lib for libz.so libz.sl libz.dylib libz.dll.a libz.a libz.lib libz
config.log: Checking for library libz.so in directory /usr/local/lib
config.log: Checking /usr/local/lib/libz.so
config.log: libz.so not found in /usr/local/lib
config.log: Checking for library libz.sl in directory /usr/local/lib
config.log: Checking /usr/local/lib/libz.sl
config.log: libz.sl not found in /usr/local/lib
config.log: Checking for library libz.dylib in directory /usr/local/lib
config.log: Checking /usr/local/lib/libz.dylib
config.log: libz.dylib not found in /usr/local/lib
config.log: Checking for library libz.dll.a in directory /usr/local/lib
config.log: Checking /usr/local/lib/libz.dll.a
config.log: libz.dll.a not found in /usr/local/lib
config.log: Checking for library libz.a in directory /usr/local/lib
config.log: Checking /usr/local/lib/libz.a
config.log: Found file /usr/local/lib/libz.a
config.log:Checking if /usr/local/lib/libz.a is a 64-bit library
config.log: objdump -a /usr/local/lib/libz.a | grep 'x86-64’
config.log: Checking for library libz.lib in directory /usr/local/lib
config.log: Checking /usr/local/lib/libz.lib
config.log: libz.lib not found in /usr/local/lib
config.log: Checking for library libz in directory /usr/local/lib
config.log: Checking /usr/local/lib/libz
config.log: libz not found in /usr/local/lib
config.log: Checking in directories /usr/lib64/zlib64 /usr/lib/zlib for libz.so libz.sl libz.dylib libz.dll.a libz.a libz.lib libz
config.log: Checking in directories /usr/local/lib64/zlib64 /usr/local/lib/zlib for libz.so libz.sl libz.dylib libz.dll.a libz.a libz.lib libz
config.log: Checking in directories /usr/zlib64/lib64 /usr/zlib/lib for libz.so libz.sl libz.dylib libz.dll.a libz.a libz.lib libz
config.log: Checking in directories /usr/lib64 /usr/lib for libz.so libz.sl libz.dylib libz.dll.a libz.a libz.lib libz
config.log: Checking for library libz.so in directory /usr/lib64
config.log: Checking /usr/lib64/libz.so
config.log: Found file /usr/lib64/libz.so
config.log:Checking if /usr/lib64/libz.so is a 64-bit library
config.log: file -L /usr/lib64/libz.so | grep '64-bit’
config.log:Checking for libz …
config.log:libraries to check for: libz.so libz.sl libz.dylib libz.dll.a libz.a libz.lib libz
config.log: Checking in directories /usr/local/lib64 /usr/local/lib for libz.so libz.sl libz.dylib libz.dll.a libz.a libz.lib libz
config.log: Checking for library libz.so in directory /usr/local/lib
config.log: Checking /usr/local/lib/libz.so
config.log: libz.so not found in /usr/local/lib
config.log: Checking for library libz.sl in directory /usr/local/lib
config.log: Checking /usr/local/lib/libz.sl
config.log: libz.sl not found in /usr/local/lib
config.log: Checking for library libz.dylib in directory /usr/local/lib
config.log: Checking /usr/local/lib/libz.dylib
config.log: libz.dylib not found in /usr/local/lib
config.log: Checking for library libz.dll.a in directory /usr/local/lib
config.log: Checking /usr/local/lib/libz.dll.a
config.log: libz.dll.a not found in /usr/local/lib
config.log: Checking for library libz.a in directory /usr/local/lib
config.log: Checking /usr/local/lib/libz.a
config.log: Found file /usr/local/lib/libz.a
config.log:Checking if /usr/local/lib/libz.a is a 64-bit library
config.log: objdump -a /usr/local/lib/libz.a | grep 'x86-64’
config.log: Checking for library libz.lib in directory /usr/local/lib
config.log: Checking /usr/local/lib/libz.lib
config.log: libz.lib not found in /usr/local/lib
config.log: Checking for library libz in directory /usr/local/lib
config.log: Checking /usr/local/lib/libz
config.log: libz not found in /usr/local/lib
config.log: Checking in directories /usr/X11/lib64 /usr/X11/lib for libz.so libz.sl libz.dylib libz.dll.a libz.a libz.lib libz
config.log: Checking in directories /usr/lib64 /usr/lib for libz.so libz.sl libz.dylib libz.dll.a libz.a libz.lib libz
config.log: Checking for library libz.so in directory /usr/lib64
config.log: Checking /usr/lib64/libz.so
config.log: Found file /usr/lib64/libz.so
config.log:Checking if /usr/lib64/libz.so is a 64-bit library
config.log: file -L /usr/lib64/libz.so | grep ‘64-bit’
[/quote]

[quote]% grep -r “zlib” config.*
config.log:Checking for zlib.h …
config.log: Checking for zlib.h in directory /usr/local/include
config.log: /usr/local/include/zlib.h is read-able
config.log: Checking in directories /usr/local/zlib64/lib64 /usr/local/zlib/lib for libz.so libz.sl libz.dylib libz.dll.a libz.a libz.lib libz
config.log: Checking in directories /usr/lib64/zlib64 /usr/lib/zlib for libz.so libz.sl libz.dylib libz.dll.a libz.a libz.lib libz
config.log: Checking in directories /usr/local/lib64/zlib64 /usr/local/lib/zlib for libz.so libz.sl libz.dylib libz.dll.a libz.a libz.lib libz
config.log: Checking in directories /usr/zlib64/lib64 /usr/zlib/lib for libz.so libz.sl libz.dylib libz.dll.a libz.a libz.lib libz
config.log:Checking whether to build included zlib[/quote]

Manually inspect the “config.log” file around lines (“grep” is not enough):
"/usr/local/include/zlib.h is read-able"
“Found file /usr/lib64/libz.so”
“Checking whether to build included zlib”

Note, it seems strange to me that the include file is in “/usr/local/include” (do you also have “/usr/include/zlib.h” file?), while the library itself is in “/usr/lib64” (instead of something like “/usr/local/lib64”). Can it be that you have two incompatible versions of zlib installed?

Finally, you can try to add “–enable-builtin-zlib” to the ROOT configure step.

Thanks. After enabling ‘–enable-builtin-zlib’, it went further, but fall into another problem. I guess it is specific to our machine? I will check with sys admin to see what has been changed recently.

[quote]==> lib/libMemStat.so done
*** Building libAfterImage …
make[1]: Entering directory /exp/LHCb/software/ROOT/svntrunk/graf2d/asimage/src/libAfterImage' gcc -m64 -O3 -DNO_DEBUG_OUTPUT -fPIC -Wall -I../../../../graf2d/freetype/src/freetype-2.3.5/include -I/usr/X11R6/include -c asfont.c -o asfont.o In file included from asfont.c:63: /usr/include/ft2build.h:56:38: error: freetype/config/ftheader.h: No such file or directory asfont.c:64:12: error: #include expects "FILENAME" or <FILENAME> asfont.c:67:33: error: freetype/freetype.h: No such file or directory In file included from asfont.c:83: asfont.h:200: error: expected specifier-qualifier-list before ‘FT_Face’ asfont.h:237: error: expected specifier-qualifier-list before ‘FT_Library’ asfont.c: In function ‘create_font_manager’: asfont.c:118: warning: implicit declaration of function ‘FT_Init_FreeType’ asfont.c:118: error: ‘ASFontManager’ has no member named ‘ft_library’ asfont.c: In function ‘destroy_font_manager’: asfont.c:139: warning: implicit declaration of function ‘FT_Done_FreeType’ asfont.c:139: error: ‘ASFontManager’ has no member named ‘ft_library’ asfont.c: In function ‘open_freetype_font_int’: asfont.c:168: error: ‘FT_Face’ undeclared (first use in this function) asfont.c:168: error: (Each undeclared identifier is reported only once asfont.c:168: error: for each function it appears in.) asfont.c:168: error: expected ‘;’ before ‘face’ asfont.c:192: error: ‘face’ undeclared (first use in this function) asfont.c:194: warning: implicit declaration of function ‘FT_New_Face’ asfont.c:194: error: ‘ASFontManager’ has no member named ‘ft_library’ asfont.c:201: error: ‘ASFontManager’ has no member named ‘ft_library’ asfont.c:218: error: ‘ASFont’ has no member named ‘ft_face’ asfont.c:219: warning: implicit declaration of function ‘FT_HAS_KERNING’ asfont.c:226: warning: implicit declaration of function ‘FT_Set_Pixel_Sizes’ asfont.c:226: error: ‘ASFont’ has no member named ‘ft_face’ asfont.c: In function ‘destroy_font’: asfont.c:413: error: ‘ASFont’ has no member named ‘ft_face’ asfont.c:414: warning: implicit declaration of function ‘FT_Done_Face’ asfont.c:414: error: ‘ASFont’ has no member named ‘ft_face’ asfont.c: In function ‘load_glyph_freetype’: asfont.c:1009: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘face’ asfont.c:1009: error: ‘face’ undeclared (first use in this function) asfont.c:1030: error: ‘ASFont’ has no member named ‘ft_face’ asfont.c:1031: warning: implicit declaration of function ‘FT_Load_Glyph’ asfont.c:1031: error: ‘FT_LOAD_DEFAULT’ undeclared (first use in this function) asfont.c:1034: warning: implicit declaration of function ‘FT_Render_Glyph’ asfont.c:1034: error: ‘ft_render_mode_normal’ undeclared (first use in this function) asfont.c:1039: error: ‘FT_Bitmap’ undeclared (first use in this function) asfont.c:1039: error: ‘bmap’ undeclared (first use in this function) asfont.c: At top level: asfont.c:1140: error: expected declaration specifiers or ‘...’ before ‘FT_Face’ asfont.c: In function ‘split_freetype_glyph_range’: asfont.c:1147: warning: implicit declaration of function ‘FT_Get_Char_Index’ asfont.c:1147: error: ‘face’ undeclared (first use in this function) asfont.c: In function ‘load_freetype_locale_glyph’: asfont.c:1166: error: ‘ASFont’ has no member named ‘ft_face’ asfont.c:1169: error: ‘ASFont’ has no member named ‘ft_face’ asfont.c: In function ‘load_freetype_glyphs’: asfont.c:1216: error: ‘ASFont’ has no member named ‘ft_face’ asfont.c:1216: error: too many arguments to function ‘split_freetype_glyph_range’ asfont.c:1247: error: ‘ASFont’ has no member named ‘ft_face’ asfont.c: In function ‘fill_text_glyph_map_Char’: asfont.c:1510: error: ‘FT_Vector’ undeclared (first use in this function) asfont.c:1510: error: expected ‘;’ before ‘delta’ asfont.c:1510: warning: implicit declaration of function ‘FT_Get_Kerning’ asfont.c:1510: error: ‘ASFont’ has no member named ‘ft_face’ asfont.c:1510: error: ‘FT_KERNING_DEFAULT’ undeclared (first use in this function) asfont.c:1510: error: ‘delta’ undeclared (first use in this function) asfont.c: In function ‘fill_text_glyph_map_Unicode’: asfont.c:1511: error: ‘FT_Vector’ undeclared (first use in this function) asfont.c:1511: error: expected ‘;’ before ‘delta’ asfont.c:1511: error: ‘ASFont’ has no member named ‘ft_face’ asfont.c:1511: error: ‘FT_KERNING_DEFAULT’ undeclared (first use in this function) asfont.c:1511: error: ‘delta’ undeclared (first use in this function) asfont.c: In function ‘fill_text_glyph_map_UTF8’: asfont.c:1513: error: ‘FT_Vector’ undeclared (first use in this function) asfont.c:1513: error: expected ‘;’ before ‘delta’ asfont.c:1513: error: ‘ASFont’ has no member named ‘ft_face’ asfont.c:1513: error: ‘FT_KERNING_DEFAULT’ undeclared (first use in this function) asfont.c:1513: error: ‘delta’ undeclared (first use in this function) asfont.c: In function ‘get_text_size_internal’: asfont.c:1692: error: ‘FT_Vector’ undeclared (first use in this function) asfont.c:1692: error: expected ‘;’ before ‘delta’ asfont.c:1692: error: ‘ASFont’ has no member named ‘ft_face’ asfont.c:1692: error: ‘FT_KERNING_DEFAULT’ undeclared (first use in this function) asfont.c:1692: error: ‘delta’ undeclared (first use in this function) asfont.c:1708: error: expected ‘;’ before ‘delta’ asfont.c:1708: error: ‘ASFont’ has no member named ‘ft_face’ asfont.c:1715: error: expected ‘;’ before ‘delta’ asfont.c:1715: error: ‘ASFont’ has no member named ‘ft_face’ asfont.c: In function ‘print_asfont’: asfont.c:2187: error: ‘ASFont’ has no member named ‘ft_face’ make[1]: *** [asfont.o] Error 1 make[1]: Leaving directory/exp/LHCb/software/ROOT/svntrunk/graf2d/asimage/src/libAfterImage’
make: *** [graf2d/asimage/src/libAfterImage/libAfterImage.a] Error 2
[/quote]

Again, something went wrong in configure …
It seems to use the “ROOT’s builtin” freetype … -I…/…/…/…/graf2d/freetype/src/freetype-2.3.5/include
but then it accesses the “system” freetype … /usr/include/ft2build.h

You might try to add “–enable-builtin-freetype” to the ROOT configure step.

Make sure your machine has the following prerequisites installed:

root.cern.ch/drupal/content/build-prerequisites

Normally if libz and libfreetype are not detected we should switch to the build in versions, which happens but due to a not complete install of libfreetype (/usr/include/ft2build.h) this fails too. Either install the prerequisites or remove all references to libfreetype from the machine.

Cheers, Fons.