After some reconsideration I have changed my patch to fix the
-static-libstdc++ build on HP-UX and the bootstrap with C++ build
problem.  Originally, I set gcc_cv_ld_static_option to "-aarchive" to
only search archive libraries and this caused problems on IA64 HP-UX
where we used the system unwind library and which only existed as a
shared library.

In this patch, I use "-aarchive_shared" instead of "-aarchive" so that
the linker will look for archive libraries first and then for shared
libraries.  This has the advantage of fixing the HP-UX problem while not
requiring any changes that are not specific to HP-UX.

The reason I didn't do this initially is that when using
"-aarchive_shared", the linker will search directory "a" for archive
libraries, then if it didn't find one, search "a" for a shared library. 
Only then will it go on to search directory "b" for an archive library. 
I wasn't sure this would give us the behaviour we wanted but after some
testing, it seems to work OK so I would like to check it in.

Dave, I tested this on HPPA as well as IA64, and it looks OK to me.  Does
it look good to you?  If so I will go ahead and check it in.

Steve Ellcey
s...@cup.hp.com


2011-08-17  Steve Ellcey  <s...@cup.hp.com>

        PR target/49967
        * configure.ac (gcc_cv_ld_static_dynamic): Define for *-*-hpux*.
        (gcc_cv_ld_static_option): Ditto.
        (gcc_cv_ld_dynamic_option): Ditto.
        * configure: Regenerate.


Index: configure.ac
===================================================================
--- configure.ac        (revision 177820)
+++ configure.ac        (working copy)
@@ -3239,6 +3239,14 @@ elif test x$gcc_cv_ld != x; then
        gcc_cv_ld_static_option="-noso"
        gcc_cv_ld_dynamic_option="-so_archive"
         ;;
+      # HP-UX ld uses -a flags to select between shared and archive.
+      *-*-hpux*)
+       if test x"$gnu_ld" = xno; then
+         gcc_cv_ld_static_dynamic=yes
+         gcc_cv_ld_static_option="-aarchive_shared"
+         gcc_cv_ld_dynamic_option="-adefault"
+       fi
+       ;;
       # IRIX 6 ld supports -Bstatic/-Bdynamic.
       mips-sgi-irix6*)
         gcc_cv_ld_static_dynamic=yes

Reply via email to