summaryrefslogtreecommitdiff
path: root/gcc/config/pa/pa-hpux.h
diff options
context:
space:
mode:
authormerrill <merrill@138bc75d-0d04-0410-961f-82ee72b054a4>1994-10-19 22:09:20 +0000
committermerrill <merrill@138bc75d-0d04-0410-961f-82ee72b054a4>1994-10-19 22:09:20 +0000
commitd13c3d69dcac87195b5c933643ff269f85a77e18 (patch)
treecc422ef182e815fd458910a3edb6fe57c78e81ab /gcc/config/pa/pa-hpux.h
parente67da37196da4e89ebdd45a492b0eb9520d0c7ac (diff)
downloadgcc-d13c3d69dcac87195b5c933643ff269f85a77e18.tar.gz
(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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@8316 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/pa/pa-hpux.h')
-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 4ba244e23d6..45ea1b279ab 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; \
+}