bug-libtool
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: libtool, gettext, and HP-UX ia64 shared libraries


From: Bob Proulx
Subject: Re: libtool, gettext, and HP-UX ia64 shared libraries
Date: Sat, 20 Jan 2007 11:50:04 -0700
User-agent: Mutt/1.5.9i

Let me keep this issue alive and kicking.  Libtool is still broken on
HP-UX ia64.  But with this change it works.  I just don't know enough
about libtool to suggest where libtool would need to be modified in
order to make this a proper fix.

> Adding -L ../intl/.libs allows this to succeed.  This following
> command successfully links the test-names program.
> 
>   cc -g -o .libs/test-names test-names.o libuniname.a -L ../intl/.libs 
> ../gnulib-lib/.libs/libgettextlib.so 
> /usr/local/build/coreutils/src/gettext-0.16.1/gettext-tools/intl/.libs/libintl.so
>  -lc -Wl,+b -Wl,/usr/local/build/coreutils/lib
> 
> Adding a -L path option seems to be required here.

Does anyone know where the right place is to add the -L option
suggested here into libtool so that it works on HP-UX ia64?

Thanks
Bob


Bob Proulx wrote:
> A while ago I raised an issue trying to build coreutils on HP-UX ia64.
> 
>   http://lists.gnu.org/archive/html/bug-gnu-utils/2006-08/msg00083.html
> 
> Things are still not working there and so I thought I would heat up
> the issue a little bit.  I had some time to dig into this and here is
> what I have found.  I can continue but I know nothing about libtool
> and would need some guidance.
> 
> I just tested the latest gettext-1.16.1 on HP-UX 11.23 ia64 and it
> still fails in exactly the same way as previously reported.  I am
> using the native HP ANSI C compiler.  (Getting coreutils up is really
> the first step in what will undoubtedly be a long bootstrap process.)
> 
> Let me walk through from top to bottom.  I propose a fix at the end.
> The problematic command seems to be the following, run from the
> gettext-tools/libuniname directory:
> 
>   /bin/sh ../libtool --tag=CC   --mode=link cc  -g   -o test-names 
> test-names.o libuniname.a ../gnulib-lib/libgettextlib.la
>   ld: Can't find dependent library "libintl.so.8"
> 
> The part of the libtool script that causes this is on 5177 of the
> script generated for me.  Hopefully this is enough context to identify
> the pertinent portion of the script.
> 
>       fi
>       fi
> 
>       # Replace the output file specification.
>       link_command=`$echo "X$link_command" | $Xsed -e 
> 'address@hidden@%'"$output_objdir/$outputname"'%g'`
> 
>       # Delete the old output files.
>       $run $rm $output $output_objdir/$outputname 
> $output_objdir/lt-$outputname
> 
>       $show "$link_command"
>       $run eval "$link_command" || exit $?
> 
>       # Now create the wrapper script.
>       $show "creating $output"
> 
>       # Quote the relink command for shipping.
> 
> The command run is:
> 
>   cc -g -o .libs/test-names test-names.o libuniname.a 
> ../gnulib-lib/.libs/libgettextlib.so 
> /usr/local/build/coreutils/src/gettext-0.16.1/gettext-tools/intl/.libs/libintl.so
>  -lc -Wl,+b -Wl,/usr/local/build/coreutils/lib
>   ld: Can't find dependent library "libintl.so.8"
>   Fatal error.
> 
> But the files all look okay.
> 
>   ls -ld 
> /usr/local/build/coreutils/src/gettext-0.16.1/gettext-tools/intl/.libs/libintl.so
>   lrwxrwxr-x    1 rwp      rwp            14 Dec 30 16:52 
> /usr/local/build/coreutils/src/gettext-0.16.1/gettext-tools/intl/.libs/libintl.so
>  -> libintl.so.8.1
> 
>   ls -ld 
> /usr/local/build/coreutils/src/gettext-0.16.1/gettext-tools/intl/.libs/libintl.so.8.1
>   -rwxrwxr-x    1 rwp      rwp        217744 Dec 30 16:52 
> /usr/local/build/coreutils/src/gettext-0.16.1/gettext-tools/intl/.libs/libintl.so.8.1
> 
>   ls -ld -L 
> /usr/local/build/coreutils/src/gettext-0.16.1/gettext-tools/intl/.libs/libintl.so
>   -rwxrwxr-x    1 rwp      rwp        217744 Dec 30 16:52 
> /usr/local/build/coreutils/src/gettext-0.16.1/gettext-tools/intl/.libs/libintl.so
> 
>   find .. -name 'libintl.so*' -print
>   ../intl/.libs/libintl.so.8.1
>   ../intl/.libs/libintl.so.8
>   ../intl/.libs/libintl.so
> 
> This step succeeds on HP-UX 11.23 hppa.  But the generated libtool
> scripts are so different between hppa and ia64 as to be almost
> unrelated making comparisons between them impractical.  However the
> hppa link command that succeeds on that platform is:
> 
>   cc -g -o .libs/test-names test-names.o  libuniname.a 
> ../gnulib-lib/.libs/libgettextlib.sl 
> /usr/local/build/coreutils/src/gettext-0.16.1/gettext-tools/intl/.libs/libintl.sl
>  -lc -Wl,+b 
> -Wl,/usr/local/build/coreutils/src/gettext-0.16.1/gettext-tools/gnulib-lib/.libs:/usr/local/build/coreutils/src/gettext-0.16.1/gettext-tools/intl/.libs:/usr/local/build/coreutils/lib
> 
> Note the additional paths in the -Wl option.
> Trying that same thing fails:
> 
>   cc -g -o .libs/test-names test-names.o libuniname.a 
> ../gnulib-lib/.libs/libgettextlib.so 
> /usr/local/build/coreutils/src/gettext-0.16.1/gettext-tools/intl/.libs/libintl.so
>  -lc -Wl,+b 
> -Wl,/usr/local/build/coreutils/src/gettext-0.16.1/gettext-tools/gnulib-lib/.libs:/usr/local/build/coreutils/src/gettext-0.16.1/gettext-tools/intl/.libs:/usr/local/build/coreutils/lib
>   ld: Can't find dependent library "libintl.so.8"
>   Fatal error.
> 
> However adding -L ../intl/.libs to the original failing command works.
> Let me repeat the original failing command on ia64 so that they are
> close together in this message.
> 
>   cc -g -o .libs/test-names test-names.o libuniname.a 
> ../gnulib-lib/.libs/libgettextlib.so 
> /usr/local/build/coreutils/src/gettext-0.16.1/gettext-tools/intl/.libs/libintl.so
>  -lc -Wl,+b -Wl,/usr/local/build/coreutils/lib
>   ld: Can't find dependent library "libintl.so.8"
>   Fatal error.
> 
> Adding -L ../intl/.libs allows this to succeed.  This following
> command successfully links the test-names program.
> 
>   cc -g -o .libs/test-names test-names.o libuniname.a -L ../intl/.libs 
> ../gnulib-lib/.libs/libgettextlib.so 
> /usr/local/build/coreutils/src/gettext-0.16.1/gettext-tools/intl/.libs/libintl.so
>  -lc -Wl,+b -Wl,/usr/local/build/coreutils/lib
> 
> Adding a -L path option seems to be required here.
> 
> Here is what (I think) are the interesting parts of chatr on the
> result.  This all appears to be as desired as far as I can tell.
> 
>          shared library dynamic path search:
>              LD_LIBRARY_PATH    enabled  first 
>              SHLIB_PATH         enabled  second
>              embedded path      enabled  third  /usr/local/build/coreutils/lib
>          shared library list:
>              libgettextlib-0.16.1.so
>              libintl.so.8
>              libc.so.1
> 
> Hopefully this helps to clarify the problem.
> 
> Thanks
> Bob
> 
> 
> _______________________________________________
> Bug-libtool mailing list
> address@hidden
> http://lists.gnu.org/mailman/listinfo/bug-libtool
> 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]