5
votes

I have been trying to troubleshoot why CPAN GD module fails to install using Cygwin for 2 days now. Any help is much appreciated. Thanks!

cpan install GD
Going to read '/home/xxxxxxxxxx/.cpan/Metadata'
  Database was generated on Sat, 27 Dec 2014 12:17:02 GMT
Running install for module 'GD'
Running make for L/LD/LDS/GD-2.56.tar.gz
Checksum for /home/xxxxxxxxxx/.cpan/sources/authors/id/L/LD/LDS/GD-2.56.tar.gz ok

  CPAN.pm: Going to build L/LD/LDS/GD-2.56.tar.gz

Configuring for libgd version 2.1.0.
Checking for stray libgd header files...

** WARNING: found gd.h header file in /usr/include/gd.h, but it is expected at /usr/local/include/gd.h. This may cause compile errors! **


** WARNING: found gd.h header file in /usr/include/gd.h, but it is expected at /usr/local/include/gd.h. This may cause compile errors! **
** Possible problems found **

Included Features:          GD_JPEG GD_GIF GD_GIFANIM GD_OPENPOLYGON
GD library used from:       /usr/local
Created MYMETA.yml and MYMETA.json
Creating new 'Build' script for 'GD' version '2.56'
Building GD
Extracting Image.pm (with variable substitutions)
gcc -I/usr/local/include -I/usr/lib/perl5/5.14/x86_64-cygwin-threads/CORE -DXS_VERSION="2.56" -DVERSION="2.56" -DHAVE_JPEG -DHAVE_GIF -c -DPERL_USE_SAFE_PUTENV -U__STRICT_ANSI__ -fno-strict-aliasing -pipe -fstack-protector -O3 -o lib/GD.o lib/GD.c
ExtUtils::Mkbootstrap::Mkbootstrap('blib/arch/auto/GD/GD.bs')
g++ --shared -Wl,--enable-auto-import -Wl,--export-all-symbols -Wl,--enable-auto-image-base -fstack-protector -o blib/arch/auto/GD/GD.dll lib/GD.o /usr/lib/perl5/5.14/x86_64-cygwin-threads/CORE/libperl.dll.a -L/usr/local/lib -ljpeg -lz -lgd
lib/GD.o:GD.c:(.text+0xd1b): undefined reference to `gdImageCreateFromGd2Ptr'
lib/GD.o:GD.c:(.text+0xd1b): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `gdImageCreateFromGd2Ptr'
lib/GD.o:GD.c:(.text+0xeec): undefined reference to `gdImageCreateFromGd2Ptr'
lib/GD.o:GD.c:(.text+0xeec): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `gdImageCreateFromGd2Ptr'
lib/GD.o:GD.c:(.text+0x1bfc): undefined reference to `gdImageCreateFromGd2Part'
lib/GD.o:GD.c:(.text+0x1bfc): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `gdImageCreateFromGd2Part'
lib/GD.o:GD.c:(.text+0x39b8): undefined reference to `gdImageGd2Ptr'
lib/GD.o:GD.c:(.text+0x39b8): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `gdImageGd2Ptr'
lib/GD.o:GD.c:(.text+0x3c16): undefined reference to `gdImageGd2Ptr'
lib/GD.o:GD.c:(.text+0x3c16): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `gdImageGd2Ptr'
lib/GD.o:GD.c:(.text+0x3e4f): undefined reference to `gdImageJpegPtr'
lib/GD.o:GD.c:(.text+0x3e4f): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `gdImageJpegPtr'
lib/GD.o:GD.c:(.text+0x11ec9): undefined reference to `gdImageCreateFromJpeg'
lib/GD.o:GD.c:(.text+0x11ec9): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `gdImageCreateFromJpeg'
lib/GD.o:GD.c:(.text+0x12175): undefined reference to `gdImageCreateFromJpegCtx'
lib/GD.o:GD.c:(.text+0x12175): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `gdImageCreateFromJpegCtx'
collect2: error: ld returned 1 exit status
error building blib/arch/auto/GD/GD.dll from lib/GD.o at /usr/lib/perl5/5.14/ExtUtils/CBuilder/Base.pm line 310.
  LDS/GD-2.56.tar.gz
  ./Build -- NOT OK
Running Build test
  Can't test without successful make
Running Build install
  Make had returned bad status, install seems impossible

make -v
GNU Make 4.0
Built for x86_64-pc-cygwin
Copyright (C) 1988-2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later 
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
1
Your name is all over the output, so if you don't want that, use the search function in your text editor to replace your name with me, then edit your post.7stud
There appear to be a couple of problems with GD 2.56 on a lot of Unix version - rt.cpan.org/Public/Dist/Display.html?Name=GDLen Jaffe
Thanks, 7stud, post edited. Len Jaffe, thanks for the link. I still can't figure out the issue. Argh!eb0906
keep a weather eye on the RT queue, and see what shakes out. Otherwise consider checking the CPAN testers web site for the last known good GD.pm on Cygwin.Len Jaffe

1 Answers

0
votes

I believe you have two versions of the GD library installed. One in /usr and one in /usr/local. It's using the header file from /usr and the shared libraries from /usr/local. The hint is this.

** WARNING: found gd.h header file in /usr/include/gd.h, but it is expected at /usr/local/include/gd.h. This may cause compile errors! **

You probably have only the GD runtime (shared library) installed in /usr/local. In desperation, GD.pm is grabbing the headers from the default location in /usr.

Try installing both the libgd3 and libgd-devel Cygwin packages and removing whatever parts of libgd is in /usr/local. In particular, make sure which gdlib-config points at /usr/bin/gdlib-config.