Skip Menu |

This queue is for tickets about the GD CPAN distribution.

Report information
The Basics
Id: 21764
Status: rejected
Priority: 0/
Queue: GD

People
Owner: Nobody in particular
Requestors: Leandro.Hermida [...] fmi.ch
Cc:
AdminCc:

Bug Information
Severity: Important
Broken in: 2.35
Fixed in: (no value)



Subject: GD v2.35 won't build on RHEL 4 x86_64
Hello, I cannot get GD to build on RHEL 4. I apologize because I am sure you get this all the time. Can anyone help or have any advice as what to do? It seems from the changelog that GD supports x86_64 architecture. I have read the README and I have the requirements (via RPM packages): perl 5.8.5 libgd 2.0.28 libpng 1.2.7 zlib 1.2.1.2 freetype 2.1.9 libjpeg 6b x11 6.8.2 (which has xpm) I checked with the Red Hat website that the gd rpm and library was built with all of these: gd RPM built with: /sbin/ldconfig libc.so.6()(64bit) libc.so.6(GLIBC_2.2.5)(64bit) libfreetype.so.6()(64bit) <-- freetype libjpeg.so.62()(64bit) <-- jpeg libm.so.6()(64bit) libm.so.6(GLIBC_2.2.5)(64bit) libpng12.so.0()(64bit) <-- png libX11.so.6()(64bit) libXpm.so.4()(64bit) <-- xpm libz.so.1()(64bit) <-- zlib rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 Here is the output of the make: [root@dla2 GD-2.35]# perl Makefile.PL NOTICE: This module requires libgd 2.0.28 or higher. If you are using Math::Trig 1.01 or lower, it has a bug that causes a "prerequisite not found" warning to be issued. You may safely ignore this warning. Type perl Makefile.PL -h for command-line option summary Where is libgd installed? [/usr/lib] Please choose the features that match how libgd was built: Build JPEG support? [y] Build PNG support? [y] Build FreeType support? [y] Build GIF support? [y] Build support for animated GIFs? [y] Build XPM support? [y] If you experience compile problems, please check the @INC, @LIBPATH and @LIBS arrays defined in Makefile.PL and manually adjust, if necessary. Checking if your kit is complete... Looks good Writing Makefile for GD [root@dla2 GD-2.35]# make /usr/bin/perl "-Iblib/arch" "-Iblib/lib" GD/Image.pm.PLS GD/Image.pm Extracting Image.pm (with variable substitutions) cp GD/Polyline.pm blib/lib/GD/Polyline.pm cp qd.pl blib/lib/qd.pl cp GD/Image.pm blib/lib/GD/Image.pm cp GD.pm blib/lib/GD.pm AutoSplitting blib/lib/GD.pm (blib/lib/auto/GD) cp GD/Simple.pm blib/lib/GD/Simple.pm cp GD/Polygon.pm blib/lib/GD/Polygon.pm /usr/bin/perl /usr/lib/perl5/5.8.5/ExtUtils/xsubpp - typemap /usr/lib/perl5/5.8.5/ExtUtils/typemap -typemap typemap GD.xs Show quoted text
> GD.xsc && mv GD.xsc GD.c
gcc -c -I/usr/include -I/usr/include/gd -D_REENTRANT -D_GNU_SOURCE - DDEBUGGING -fno-strict-aliasing -pipe -I/usr/local/include - D_LARGEFILE_SOURCE -D_FILE_OFFSET _BITS=64 -I/usr/include/gdbm -O2 -g -pipe -m64 -DVERSION=\"2.35\" - DXS_VERSION=\"2.35\" -fPIC "-I/usr/lib64/perl5/5.8.5/x86_64-linux- thread-multi/CORE" -DHAVE_ JPEG -DHAVE_FT -DHAVE_XPM -DHAVE_GIF -DHAVE_PNG -DHAVE_ANIMGIF GD.c GD.xs: In function `XS_GD__Image_STORABLE_thaw': GD.xs:923: warning: cast from pointer to integer of different size GD.xs: In function `XS_GD__Image_gifanimbegin': GD.xs:990: warning: cast to pointer from integer of different size GD.xs: In function `XS_GD__Image_gifanimadd': GD.xs:1015: warning: cast to pointer from integer of different size GD.xs: In function `XS_GD__Image_gifanimend': GD.xs:1034: warning: cast to pointer from integer of different size Running Mkbootstrap for GD () chmod 644 GD.bs rm -f blib/arch/auto/GD/GD.so gcc -shared GD.o -o blib/arch/auto/GD/GD.so -L/usr/lib/X11 - L/usr/X11R6/lib -L/usr/lib -L/usr/lib/X11 -L/usr/X11R6/lib64 - L/usr/lib64 -lgd -lfreetype -ljpeg - lpng -lz -lm -lX11 -lXpm /usr/bin/ld: /usr/lib64/libgd.a(gd.o): relocation R_X86_64_32S against `a local symbol' can not be used when making a shared object; recompile with -fPIC /usr/lib64/libgd.a: could not read symbols: Bad value collect2: ld returned 1 exit status make: *** [blib/arch/auto/GD/GD.so] Error 1 [root@dla2 GD-2.35]#
This is a known ELF problem, we cannot fix. You need shared libraries for all libgd dependencies and libgd itself, when you compile a dynamic perl modules using it. You only have a static libgd. -- Reini Urban