in reply to Re^4: Problem installing GD.pm under Solaris
in thread Problem installing GD.pm under Solaris

so, apparently, you have two Perl installations, which you should take care to not mix up. (BTW, I said perl -V (capital V) - this would've shown the compiler and other settings that the particular version of Perl has been built with. The same compiler should be used to build extensions...).

Just to recap (for me, I'm slowly beginning to get confused :), presuming you want to install the GD binding for the Perl 5.8.7 (in your home(?)), are you still getting the same error cannot find include file: <gd.h>, if you run /home/sadm/.perl/bin/perl Makefile.PL && make as your regular user, and if so, is the header file gd.h in fact accessible under the include path that is specified on the cc command line (i.e. -I/usr/local/include)?

Replies are listed 'Best First'.
Re^6: Problem installing GD.pm under Solaris
by neversaint (Deacon) on Apr 19, 2007 at 01:44 UTC
    so, apparently, you have two Perl installations, which you should take care to not mix up. (BTW, I said perl -V (capital V) - this would've shown the compiler and other settings that the particular version of Perl has been built with. The same compiler should be used to build extensions...).
    Ok in my home I have this
    sadm@bioinfo-z:~$ perl -V Summary of my perl5 (revision 5 version 8 subversion 4) configuration: Platform: osname=solaris, osvers=2.10, archname=sun4-solaris-64int uname='sunos localhost 5.10 sun4u sparc SUNW,Ultra-2' config_args='' hint=recommended, useposix=true, d_sigaction=define usethreads=undef use5005threads=undef useithreads=undef usemultipl +icity=undef useperlio=define d_sfio=undef uselargefiles=define usesocks=undef use64bitint=define use64bitall=undef uselongdouble=undef usemymalloc=n, bincompat5005=undef Compiler: cc='cc', ccflags ='-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -xar +ch=v8 -D_TS_ERRNO', optimize='-xO3 -xspace -xildoff', cppflags='' ccversion='Sun WorkShop', gccversion='', gccosandvers='' intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=87654321 d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=1 +6 ivtype='long long', ivsize=8, nvtype='double', nvsize=8, Off_t='of +f_t', lseeksize=8 alignbytes=8, prototype=define Linker and Libraries: ld='cc', ldflags ='' libpth=/lib /usr/lib /usr/ccs/lib libs=-lsocket -lnsl -ldl -lm -lc perllibs=-lsocket -lnsl -ldl -lm -lc libc=/lib/libc.so, so=so, useshrplib=true, libperl=libperl.so gnulibc_version='' Dynamic Linking: dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-R /usr/ +perl5/5.8.4/lib/sun4-solaris-64int/CORE' cccdlflags='-KPIC', lddlflags='-G' Characteristics of this binary (from libperl): Compile-time options: USE_64_BIT_INT USE_LARGE_FILES Locally applied patches: 22667 The optree builder was looping when constructing the ops + ... 22715 Upgrade to FileCache 1.04 22733 Missing copyright in the README. 22746 fix a coredump caused by rv2gv not fully converting a PV + ... 22755 Fix 29149 - another UTF8 cache bug hit by substr. 22774 [perl #28938] split could leave an array without ... 22775 [perl #29127] scalar delete of empty slice returned garb +age 22776 [perl #28986] perl -e "open m" crashes Perl 22777 add test for change #22776 ("open m" crashes Perl) 22778 add test for change #22746 ([perl #29102] Crash on assig +n ... 22781 [perl #29340] Bizarre copy of ARRAY make sure a pad op's + ... 22796 [perl #29346] Double warning for int(undef) and abs(unde +f) ... 22818 BOM-marked and (BOMless) UTF-16 scripts not working 22823 [perl #29581] glob() misses a lot of matches 22827 Smoke [5.9.2] 22818 FAIL(F) MSWin32 WinXP/.Net SP1 (x86/ +1 cpu) 22830 [perl #29637] Thread creation time is hypersensitive 22831 improve hashing algorithm for ptr tables in perl_clone: +... 22839 [perl #29790] Optimization busted: '@a = "b", sort @a' . +.. 22850 [PATCH] 'perl -v' fails if local_patches contains code s +nippets 22852 TEST needs to ignore SCM files 22886 Pod::Find should ignore SCM files and dirs 22888 Remove redundant %SIG assignments from FileCache 23006 [perl #30509] use encoding and "eq" cause memory leak 23074 Segfault using HTML::Entities 23106 Numeric comparison operators mustn't compare addresses o +f ... 23320 [perl #30066] Memory leak in nested shared data structur +es ... 23321 [perl #31459] Bug in read() SPRINTF0 - fixes for sprintf formatting issues - CVE-2005-3962 Built under solaris Compiled at Feb 13 2006 05:12:02 %ENV: PERL5LIB="/home/sadm/lib/site_perl/sun4-solaris-64int:/home/sadm/l +ib/site_perl/" @INC: /home/sadm/lib/site_perl/sun4-solaris-64int /home/sadm/lib/site_perl//5.8.4/sun4-solaris-64int /home/sadm/lib/site_perl//5.8.4 /home/sadm/lib/site_perl/ /usr/perl5/5.8.4/lib/sun4-solaris-64int /usr/perl5/5.8.4/lib /usr/perl5/site_perl/5.8.4/sun4-solaris-64int /usr/perl5/site_perl/5.8.4 /usr/perl5/site_perl /usr/perl5/vendor_perl/5.8.4/sun4-solaris-64int /usr/perl5/vendor_perl/5.8.4 /usr/perl5/vendor_perl
    presuming you want to install the GD binding for the Perl 5.8.7 (in your home(?)),
    Yes, that's my intention.
    are you still getting the same error cannot find include file: <gd.h>, if you run /home/sadm/.perl/bin/perl Makefile.PL && make as your regular user, and if so, is the header file gd.h in fact accessible under the include path that is specified on the cc command line (i.e. -I/usr/local/include)?
    Yes, the same error I have.

    ---
    neversaint and everlastingly indebted.......

      Something is inconsistent: in your previous post you had

      sadm@bioinfo-z:~$ perl -ve This is perl, v5.8.7 built for sun4-solaris-thread-multi

      and now, you have, apparently under the same circumstances (i.e. same user)

      sadm@bioinfo-z:~$ perl -V Summary of my perl5 (revision 5 version 8 subversion 4) configuration: (...)

      (note the different Perl version)

      As I said, do try not to mix them up :)   To build an extension for a particular version of Perl, you have to run Makefile.PL with that same version. Perl will then use the configuration belonging to that version to set things up correctly. The easiest way to make sure this happens is to call the desired perl with an absolute path.

      (...)
      Yes, the same error I have.

      Did you in fact call Perl with an absolute path (/home/sadm/.perl/bin/perl Makefile.PL), or just perl Makefile.PL? In case you've actually got the right Perl, you should see "5.8.7" (which I presume is the version in your home) somewhere in the make output.

      If you're still having problems with gd.h not being found, do check if it really is readable, e.g. run ls -l /usr/local/include/gd.h as the same user you ran make (and look at the permissions).

      If you're absolutely sure the header file is there and readable, but the compiler still won't find it (despite having -I/usr/local/include on its command line), you could use the system call tracer truss to figure out what going on:

      truss -f -t open,stat -o debug.out ...

      where ... is the entire cc command line that is failing (cut-n-paste it as is from the make output). Make sure you run the command from the directory that GD.c is in.

      Then inspect debug.out, specifically looking for stuff concerning gd.h (e.g. grep 'gd\.h' debug.out, etc...). This will tell you what paths are being tried, and if the open succeeded. In the latter case you'd see a filedescriptor number, e.g. '= 4' at the end of the line. Otherwise, you'd see the respective error, e.g. Err#2 ENOENT. (It's usually OK to get several errors, as long as at least one attempt to open the file is succeeding...)

      Good luck!