From: Jason Merrill Date: Wed, 19 Oct 1994 22:09:20 +0000 (+0000) Subject: (NM_FLAGS): Define to "-h" (SysV output, no header). X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=f311b280766d9f2ea37f00f4318a62482512691a;p=gcc.git (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 --- 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; \ +}