From 81e5bc3dff4fcaeb3ea0014e3df0eab477c1124f Mon Sep 17 00:00:00 2001 From: John David Anglin Date: Wed, 6 Nov 2002 19:13:34 +0000 Subject: [PATCH] * pa64-hpux.h (LDD_SUFFIX, PARSE_LDD_OUTPUT): Define. From-SVN: r58863 --- gcc/ChangeLog | 4 ++++ gcc/config/pa/pa64-hpux.h | 15 +++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 75e18c71adb..9610b5364b0 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2002-11-06 John David Anglin + + * pa64-hpux.h (LDD_SUFFIX, PARSE_LDD_OUTPUT): Define. + 2002-11-06 Alexandre Oliva * config/mips/mips.md (call_value_multiple_internal2): Use dla for diff --git a/gcc/config/pa/pa64-hpux.h b/gcc/config/pa/pa64-hpux.h index 2ed1e141bb7..6d9728d6bff 100644 --- a/gcc/config/pa/pa64-hpux.h +++ b/gcc/config/pa/pa64-hpux.h @@ -135,6 +135,21 @@ do { \ #undef STARTFILE_SPEC #define STARTFILE_SPEC "%{!shared: %{!symbolic: crt0.o%s}}" + +/* Since we are not yet using .init and .fini sections, we need to + explicitly arrange to run the global constructors and destructors. + HPUX 11 has ldd and we use it to determine the dependencies of + dynamic objects. It might be possible to use the ld options for + running initializers and terminators and thereby avoid the necessity + of running ldd, but unfortunately the options are different for + the two linkers. */ +#define LDD_SUFFIX "/usr/ccs/bin/ldd" +/* Skip to first '>' then advance to '/' at the beginning of the filename. */ +#define PARSE_LDD_OUTPUT(PTR) \ +do { \ + while (*PTR != '>') PTR++; \ + while (*PTR != '/') PTR++; \ +} while (0) #endif /* Switch into a generic section. */ -- 2.30.2