Yup, when I try those flags it seems to link correctly (I guess), then dumps core during the PerlInterpreter test. Unfortunately I haven't a clue what to try next.
-Ken > -----Original Message----- > From: Patrick LeBoutillier [mailto:[EMAIL PROTECTED] > Sent: Monday, May 31, 2004 8:04 PM > To: [EMAIL PROTECTED] > Cc: Williams, Kenneth (Ken) (TLR Corp); [EMAIL PROTECTED] > Subject: Re: Inline::Java 0.48_92 link failures > > > Ken, > > These are the flags we need (with gcc at least): > > PRE_WHOLE_ARCHIVE => '-Wl,-zallextract', > POST_WHOLE_ARCHIVE => > '-Wl,-zdefaultextract', > > But PerlInterpreter is still broken on Solaris. I finally > found a Solaris > machine, so I'll > try to debug it. > > Patrick > > ----- Original Message ----- > > Ken, > > > > The point of those flags is as follows. Using gcc, if you want the > > linker to "swallow" certain libraries when > > creating a shared object, you must use these flags around those > > libraries. Here's an example from linux: > > > > LD_RUN_PATH="" gcc -Wl,--whole-archive -rdynamic > > -Wl,-rpath,/usr/lib/perl5/5.8.0/i386-linux-thread-multi/CORE > > -L/usr/local/lib > > > /usr/lib/perl5/5.8.0/i386-linux-thread-multi/auto/DynaLoader/D > ynaLoader.a > > -L/usr/lib/perl5/5.8.0/i386-linux-thread-multi/CORE -lperl > -lnsl -ldl > > -lm -lpthread -lc -lcrypt -lutil -Wl,--no-whole-archive -shared > > -L/usr/local/lib PerlInterpreter.o -o > > ../../blib/arch/auto/Inline/Java/PerlInterpreter/PerlInterpreter.so > > > > This basically tells the linker that DynaLoader.a should be > included in > > PerlInterpreter.so. I think or else the > > Linux linker assumes that DynaLoader.a will already be > loaded and does > > not swallow it. On Windows > > however, swallowing seems to be the default, that's why > those flags are > > set to "". > > > > BTW: I got this stuff from someone else (Doug MacEachern) > and I'm no C > > compiler/linker expert, but that's > > what I make of it. > > > > Patrick > > > > > > Williams, Kenneth (Ken) (TLR Corp) wrote: > > > >>Hi Patrick, > >> > >>If I knew what the point of those flags was, I might be > able to help find > >> out what their equivalents are using the Solaris ld. I > can't promise > >> much expertise, but I'm interested in getting this stuff > working here so > >> I'll help out if needed. > >> > >> -Ken > >> > >> > >> > >>>-----Original Message----- > >>>From: Patrick LeBoutillier [mailto:[EMAIL PROTECTED] > >>>Sent: Wednesday, May 26, 2004 8:06 AM > >>>To: Williams, Kenneth (Ken) (TLR Corp) > >>>Cc: [EMAIL PROTECTED] > >>>Subject: Re: Inline::Java 0.48_92 link failures > >>> > >>> > >>>Ken, > >>> > >>>Williams, Kenneth (Ken) (TLR Corp) wrote: > >>> > >>> > >>> > >>>>Update: > >>>> > >>>>I dug around in some source files, and without ANY > >>>> > >>>> > >>>understanding of the ramifications, I just added > >>> > >>> > >>>> PRE_WHOLE_ARCHIVE => '', > >>>> POST_WHOLE_ARCHIVE => '', > >>>> > >>>>to the Solaris part of Java/Portable.pm. It built without > >>>> > >>>> > >>>errors, but then produced the following errors during 'make > >>>test'. So I'm guessing the link still didn't happen correctly... > >>> > >>> > >>>> > >>>> > >>>> > >>>> > >>>I do not have access to a Solaris machine, so I haven't had a > >>>chance to > >>>test the PerlInterpreter > >>>extension on that platform. Thoses flags are really gcc/ld > flags that > >>>work on Linux, and it so happens > >>>that removing them on Win32 gives the desired results. > >>> > >>>I'll try to get my hands on a Sun box and give it a try. > >>> > >>>Thanks, > >>> > >>>Patrick > >>> > >>> > >>>-- > >>>===================== > >>>Patrick LeBoutillier > >>>Laval, Quebec, Canada > >>> > >>> > >>> > >> > >> > >> > >> > > > > > > -- > > ===================== > > Patrick LeBoutillier > > Laval, Quebec, Canada > > > > > > > >