[Top][All Lists]
[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
>
- Re: libtool, gettext, and HP-UX ia64 shared libraries,
Bob Proulx <=