aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/pa
diff options
context:
space:
mode:
authorJason Merrill <merrill@gnu.org>1994-10-19 22:09:20 +0000
committerJason Merrill <merrill@gnu.org>1994-10-19 22:09:20 +0000
commitf311b280766d9f2ea37f00f4318a62482512691a (patch)
treecc422ef182e815fd458910a3edb6fe57c78e81ab /gcc/config/pa
parent05ca35c718e8540c9365559e517fb1e4aa5e1b14 (diff)
downloadgcc-f311b280766d9f2ea37f00f4318a62482512691a.zip
gcc-f311b280766d9f2ea37f00f4318a62482512691a.tar.gz
gcc-f311b280766d9f2ea37f00f4318a62482512691a.tar.bz2
(NM_FLAGS): Define to "-h" (SysV output, no header).
(COLLECT_QUALIFY_MATCH): Define to ignore all symbols of types other than code. (REAL_NM_FILE_NAME): Define to "/bin/nm" to force use of the vendor nm. From-SVN: r8316
Diffstat (limited to 'gcc/config/pa')
-rw-r--r--gcc/config/pa/pa-hpux.h25
1 files changed, 22 insertions, 3 deletions
diff --git a/gcc/config/pa/pa-hpux.h b/gcc/config/pa/pa-hpux.h
index 4ba244e..45ea1b2 100644
--- a/gcc/config/pa/pa-hpux.h
+++ b/gcc/config/pa/pa-hpux.h
@@ -48,6 +48,25 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
pretend they are `extern "C"'. */
#define NO_IMPLICIT_EXTERN_C
-/* The HPUX linker duplicates all text symbols when given -E; this confuses
- collect2. */
-#define COLLECT_SUPPRESS_OPTIONS "E"
+/* We need to use the vendor nm for collect, since GNU nm isn't clever
+ enough to distinguish between the duplicate symbols used with shared
+ libraries under HPUX. */
+#define REAL_NM_FILE_NAME "/bin/nm"
+
+/* To the hpux nm, -p means BSD-style output; we don't want that. */
+#define NM_FLAGS "-h"
+
+/* When dealing with shared libraries, the hpux ld can create duplicate
+ symbols. The fourth field of nm's output distinguishes between the real
+ one (type "code") and the fake one (type "entry"). */
+#define COLLECT_QUALIFY_MATCH \
+{ \
+ char *p = end; \
+ int cnt = 0; \
+ for (; *p != '\n';) \
+ if (*p++ == '|' \
+ && ++cnt == 3) \
+ break; \
+ if (*p != 'c') \
+ continue; \
+}