* config/ia64/hpux.h (ASM_OUTPUT_EXTERNAL_LIBCALL): New
authorSteve Ellcey <sje@cup.hp.com>
Thu, 26 Sep 2002 21:34:46 +0000 (21:34 +0000)
committerSteve Ellcey <sje@gcc.gnu.org>
Thu, 26 Sep 2002 21:34:46 +0000 (21:34 +0000)
From-SVN: r57551

gcc/ChangeLog
gcc/config/ia64/hpux.h

index 65370cdf6518ec22eb446a024c759690f9f21055..74d76b050f4757a17869c2b076967900fa623007 100644 (file)
@@ -1,3 +1,7 @@
+2002-09-26  Steve Ellcey  <sje@cup.hp.com>
+
+       * config/ia64/hpux.h (ASM_OUTPUT_EXTERNAL_LIBCALL): New
+
 2002-09-26  Steve Ellcey  <sje@cup.hp.com>
 
        * config/ia64/hpux.h (TARGET_DEFAULT): Include TARGET_ILP32.
index fb73c654212d21d0419623d29a74026e3881b4a8..1b0f653f6129bf8b8627071b7ed5984bbfb2d85a 100644 (file)
@@ -115,6 +115,17 @@ do {                                                       \
    structure handling, this macro simply ensures that single field
    structures are always treated like structures.  */
 
+/* ASM_OUTPUT_EXTERNAL_LIBCALL defaults to just a globalize_label call,
+   but that doesn't put out the @function type information which causes
+   shared library problems.  */
+
+#undef ASM_OUTPUT_EXTERNAL_LIBCALL
+#define ASM_OUTPUT_EXTERNAL_LIBCALL(FILE, FUN)                 \
+do {                                                           \
+  (*targetm.asm_out.globalize_label) (FILE, XSTR (FUN, 0));    \
+  ASM_OUTPUT_TYPE_DIRECTIVE (FILE, XSTR (FUN, 0), "function"); \
+} while (0)
+
 #define MEMBER_TYPE_FORCES_BLK(FIELD, MODE) 1
 
 /* Override the setting of FUNCTION_ARG_REG_LITTLE_ENDIAN in