Marc Mettes <[EMAIL PROTECTED]> writes: >Nick Ing-Simmons wrote: >> >> Marc Mettes <[EMAIL PROTECTED]> writes: >> >I'm working on a project embedding and extending perl ... >> >I've had great success on Solaris8/gcc with the external executable >> >using a statically built perl >> >> Can you send us the perl -V of that perl? >> ... use Config; print Config::myconfig(); ... > > >Summary of my perl5 (revision 5.0 version 6 subversion 1) configuration: > Platform: > osname=solaris, osvers=2.6, archname=sun4-solaris > uname='sunos penq 5.6 generic_105181-21 sun4u sparc sunw,ultra-60 ' > config_args='-Dinstallprefix=/usr/perl -Dprefix=/usr/perl -des' > hint=recommended, useposix=true, d_sigaction=define > usethreads=undef use5005threads=undef useithreads=undef usemultiplicity=undef > useperlio=undef d_sfio=undef uselargefiles=define usesocks=undef > use64bitint=undef use64bitall=undef uselongdouble=undef > Compiler: > cc='gcc', ccflags =' -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64', > optimize='-O', > cppflags='' > ccversion='', gccversion='2.8.1', gccosandvers='solaris2.6' > intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=4321 > d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16 > ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8 > alignbytes=8, usemymalloc=y, prototype=define > Linker and Libraries: > ld='gcc', ldflags =' -L/usr/local/lib ' > libpth=/usr/local/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=false, libperl=libperl.a > Dynamic Linking: > dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags=' ' > cccdlflags='-fPIC', lddlflags='-G -L/usr/local/lib'
I valuely recall that gcc-2.8.? had some problems, but I don't think they would cause these symptoms. I also would not use perl's malloc() when embedding - having perl use same malloc() as rest of the application leads to less muddle, but again it does not explain the symptoms. (FWIW I used system malloc on Solaris even when not embedding.) > > >> And if you have "customized" the link step can you explain what you did? > >The compile and link lines look like this: > >gcc -c -fPIC -DPRO_MACHINE=19 -DPRO_OS=3 -DSOLARIS -I. -Iincludes > -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 > -I/usr/perl/lib/5.6.1/sun4-solaris/CORE properl.c > >ld -G -Bsymbolic -o properl.dll properl.o ./protk_dll.a > /usr/perl/lib/5.6.1/sun4-solaris/auto/DynaLoader/DynaLoader.a > -L/usr/perl/lib/5.6.1/sun4-solaris/CORE -lperl > -L/opt/gcc-2.95.3/lib/gcc-lib/sparc-sun-solaris2.6/2.95.3 -lgcc > -lsocket -lnsl -lw -lm -ldl -lc > >The link step (using ld) is modified by setting '-G -Bsymbolic', then linking >in the cad api library (protk_dll.a), 'libgcc' (probably should just use gcc >for linking), and 'libw'. Can you try without the -Bsymbolic ? Or explain why you need it (I don't have a Solaris machine anymore so I can't look it up - and Linux man pages are unreliable for Solaris features! they are similar but not exactly the same.) -- Nick Ing-Simmons http://www.ni-s.u-net.com/
