RE: Errors when doing 'use Tk::ExecuteCommand'
<[email protected]> Thu, 30 Nov 2006 08:38:50 +0100
| Newsgroups | gmane.comp.lang.perl.tk |
|---|---|
| Message-ID | <5A2C73EEAC2539458E55C514A51DCC5D029294A9@mucse304.eu.infineon.com> |
Hi Ray, for me it seems that your build has problems in finding the shared libperl.so library. You could try to build Perl without that, there is one question during ./Configure: Build shared perl library? (wording may be slightly different). Answer 'n' for no, and see whether that works. But maybe there is some different, general problem on your host regarding dynamic loading. I am not familiar with AIX, so you may want to start by reading the perl-5.8.8/README.aix in the Perl source distribution. Hope this helps, Marek -----Original Message----- From: Ray Gebbie [mailto:[email protected]] Sent: Wednesday, November 29, 2006 7:25 PM To: [email protected] Cc: [email protected]; Rouchal Marek (IFAG COM BTS DF R2G) Subject: RE: Errors when doing 'use Tk::ExecuteCommand' Does anyone have any ideas how to solve my perl 5.8.8 build problem? Ray Gebbie Federated Systems Group San Francisco, CA 94102 415-422-1662 Ray Gebbie/FIELD/FSG/ FDS To <[email protected]> 11/27/2006 05:42 cc PM [email protected] Subject RE: Errors when doing 'use Tk::ExecuteCommand'(Document link: Ray Gebbie) I really appreciate everyone's help. I decided to build perl 5.8.8 using 'gcc'. After doing the configure and make, I get the following error a lot when doing 'make test', and it also happens when I do 'make install'. I have no idea what to do about this. if [ -n "" ]; then cd utils; make compile; cd ../x2p; make compile; cd ../pod; make compile; else :; fi ./perl installperl --destdir= Can't load 'lib/auto/File/Glob/Glob.so' for module File::Glob: dlopen: lib/auto/File/Glob/Glob.so: (ld 3 1 PL_memory_wrap lib/auto/File/Glob/Glob.so(ld 3 1 Perl_croak lib/auto/File/Glob/Glob.so(ld 3 1 Perl_safesysrealloc lib/auto/File/Glob/Glob.so(ld 3 1 Perl_safesysmalloc lib/auto/File/Glob/Glob.so(ld 3 1 Perl_safesysfree lib/auto/File/Glob/Glob.so(ld 3 1 PL_markstack_ptr lib/auto/File/Glob/Glob.so(ld 3 1 PL_stack_base lib/auto/File/Glob/Glob.so(ld 3 1 PL_stack_sp lib/auto/File/Glob/Glob.so(ld 3 1 Perl_sv_2pv_flags lib/auto/File/Glob/Glob.so(ld 3 1 Perl_form lib/auto/File/Glob/Glob.so(ld 3 1 Perl_get_sv lib/auto/File/Glob/Glob.so(l d 3 1 Perl_newXS lib/auto/File/Glob/Glob.so(ld 3 1 Perl_sv_setpv lib/auto/File/Glob/Glob.so(ld 3 1 PL_sv_yes lib/auto/File/Glob/Glob.so(ld 3 1 PL_op lib/auto/File/Glob/Glob.so(ld 3 1 PL_curpad lib/auto/File/Glob/Glob.so(ld 3 1 Perl_sv_newmortal lib/auto/File/Glob/Glob.so(ld 3 1 PL_stack_max lib/auto/File/Glob/Glob.so(ld 3 1 Perl_newSVpvf lib/auto/File/Glob/Glob.so(ld 3 1 Perl_sv_2mortal lib/auto/File/Glob/Glob.so(ld 3 1 Perl_stack_grow lib/auto/File/Glob/Glob.so(ld 3 1 PL_sv_undef lib/auto/File/Glob/Glob.so(ld 3 1 Perl_sv_setiv lib/auto/File/Glob/Glob.so(ld 3 1 Perl_mg_set lib/auto/File/Glob/Glob.so(ld 3 1 Perl_sv_2iv lib/auto/File/Glob/Glob.so(ld 3 1 PL_tainted lib/auto/File/Glob/Glob.so(ld 3 1 PL_tainting lib/auto/File/Glob/Glob.so(ld 3 1 Perl_newSVpvn lib/auto/File/Glob/Glob.so(ld 3 1 Perl_sv_taint lib/auto/File/Glob/Glob.so at lib/XSLoader.pm line 70. at lib/File/Glob.pm line 96 Compilation failed in require at installperl line 132. BEGIN failed--compilation aborted at installperl line 132. I have searched the internet and user group messages, but could not find any solution. Thank you. Ray Gebbie Federated Systems Group San Francisco, CA 94102 415-422-1662 <marek.rouchal@in fineon.com> To 11/22/2006 11:18 <[email protected]> PM cc <[email protected]> Subject RE: Errors when doing 'use Tk::ExecuteCommand' Hi Ray, Ken is right - the clean way is to build your own Perl with gcc and you won't have these problems. If this is not an option for you, then either you have to check whether there is cc (the native AIX C compiler) somewhere on your machine, or some administrator can make it available for you. Could be that IBM charges extra license fees for cc. If you feel like hacking, then you still have some chance to make it work. After perl Makefile.PL for Proc::ProcessTable, you can edit the generated Makefile. Check the CFLAGS, LDFLAGS, etc. and remove all non-gcc options: gcc: unrecognized option '-qmaxmem=-1' gcc: unrecognized option '-qnoansialias' gcc: unrecognized option '-q32' gcc: unrecognized option '-qlonglong' I think you should replace -q32 by -m32. This should give you a clean compile&link. Then however the tricky part starts: you need to find the (system) library where the missing symbols are in; I suggest you run ldd /usr/local/bin/perl ldd /usr/local/lib/perl5/5.8.8/aix/CORE/libperl.so (could be that the paths are a little bit different - but you get the idea). This should give you the list of link- libraries Perl is using. On each of these libs, run nm <lib> | grep __floatdidf (where __floatdidf is one of the missing symbols). You may also want to check the libperl.so itself and the gcc runtime lib, which is supposedly in /usr/local/lib/libgcc_s.so Now you should have found the library which contains the missing symbols. Just add this library to the link libs by adding these options to LDLOADLIBS/EXTRALIBS in Makefile: -L<path> -l<name> where <path> is the full path leading to the library and <name> is the library name as in lib<name>.so Then run make and make test, and see what happens. Hope this helps, Marek PS. nm, ldd are normally available on every decent UNIX system. I don't know AIX, but worst case could be that these utilities are not available on AIX, or have a different name. Check with some local AIX guru in case you don't have nm and ldd. -----Original Message----- From: Fox, Ken (K.C.) [mailto:[email protected]] Sent: Wednesday, November 22, 2006 3:06 PM To: Ray Gebbie Cc: Rouchal Marek (IFAG COM BTS DF R2G) Subject: RE: Errors when doing 'use Tk::ExecuteCommand' I don't know about AIX. I've only used a couple AIX machines and the compilers were always installed. This was in an engineering shop though and FORTRAN was standard equipment too. If you can't find AIX cc, you should download the Perl source and build it with gcc. This will give you a consistent development environment and much better debugging options. Install it in /usr/local/ to keep it separate from the Perl that ships with AIX. - Ken -----Original Message----- From: Ray Gebbie [mailto:[email protected]] Sent: Tuesday, November 21, 2006 5:57 PM To: Fox, Ken (K.C.) Cc: [email protected] Subject: RE: Errors when doing 'use Tk::ExecuteCommand' We don't seem to have 'cc' installed. Is this something that normally comes with AIX, or would we have to purchase it? Ray Gebbie Federated Systems Group San Francisco, CA 94102 415-422-1662 -----Original Message----- From: Ken Fox <[email protected]> You should never see "unrecognized option" warnings from your C compiler. That's a sign that you are using a different C compiler than what was used to compile Perl. Check your version of Perl with: perl -V and look for the C compiler configuration. Frequently we've been able to get away with changing C compilers because most operating systems have good binary compatibility (ABI) between C compilers. It looks like you've run into a spot where it matters. I'd try building with the original C compiler and see if your gcc warnings go away. Then you can focus on the link errors if they still exist. - Ken -----Original Message----- From: [email protected] [mailto:[email protected]] On Behalf Of Ray Gebbie Sent: Tuesday, November 21, 2006 3:16 PM To: [email protected] Cc: [email protected] Subject: RE: Errors when doing 'use Tk::ExecuteCommand' I had just installed from Proc-ProcessTable-0.41. I did the following: perl Makefile.PL CC=/usr/local/bin/gcc Processing hints file hints/aix_5.pl Writing Makefile for Proc::ProcessTable::Process Writing Makefile for Proc::ProcessTable Then I do 'make': /usr/local/bin/gcc -c -D_ALL_SOURCE -D_ANSI_C_SOURCE -D_POSIX_SOURCE -qmaxmem=-1 -qnoansialias -DUSE_NATIVE_DLOPEN -I/usr/local/include -q32 -D_LARGE_FILES -qlonglong -O -DVERSION=\"0.41\" -DXS_VERSION=\"0.41\" "-I/usr/local/lib/perl5/5.8.8 /aix/CORE" ProcessTable.c gcc: unrecognized option '-qmaxmem=-1' gcc: unrecognized option '-qnoansialias' gcc: unrecognized option '-q32' gcc: unrecognized option '-qlonglong' --++**==--++**==--++**==--++**==--++**==--++**==--++**== ptk mailing list [email protected] https://mailman.stanford.edu/mailman/listinfo/ptk