RE: Errors when doing 'use Tk::ExecuteCommand'

Ray Gebbie <[email protected]> Mon, 4 Dec 2006 16:07:02 -0800
Newsgroups gmane.comp.lang.perl.tk
Message-ID <OFFC93FD03.9EECF34C-ON8525723B.00004309-8825723B.0000A4FB@FDS.com>
I really appreciate all of your help.  I had to leave this for a few days
to deal with other problems, and just got back to it today.

I am still having no luck building perl 5.8.8 on AIX 5.3 using gcc.  The
shared library setting you mentioned was already set to 'N'.  I read the
README.aix, but that was no help.

This should not be so difficult, and I should not have to spend so many
hours trying to get this to work,  Is there anyone who has been able to
build perl on AIX using gcc?

Thanks again.

Ray Gebbie
Federated Systems Group
San Francisco, CA 94102
415-422-1662



                                                                           
             <marek.rouchal@in                                             
             fineon.com>                                                   
                                                                        To 
             11/29/2006 11:38          <[email protected]>                
             PM                                                         cc 
                                       <[email protected]>,                    
                                       <[email protected]>            
                                                                   Subject 
                                       RE: Errors when doing 'use          
                                       Tk::ExecuteCommand'                 
                                                                           
                                                                           
                                                                           
                                                                           
                                                                           
                                                                           




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