This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: IA64 HP-UX patch (ASM_OUTPUT_EXTERNAL_LIBCALL)
- From: Steve Ellcey <sje at cup dot hp dot com>
- To: rth at redhat dot com
- Cc: zack at codesourcery dot com, gcc-patches at gcc dot gnu dot org
- Date: Thu, 26 Sep 2002 11:18:45 -0700 (PDT)
- Subject: Re: IA64 HP-UX patch (ASM_OUTPUT_EXTERNAL_LIBCALL)
> On Wed, Sep 25, 2002 at 11:25:30AM -0700, Steve Ellcey wrote:
> > * config/ia64/hpux.h (ASM_OUTPUT_EXTERNAL_LIBCALL): New
>
> This is ok.
Richard,
Zack Weinberg suggested I use ASM_OUTPUT_TYPE_DIRECTIVE in this patch,
would the following replacement patch be OK instead of the one you
approved. I tested it and it generates the same output.
2002-09-26 Steve Ellcey <sje@cup.hp.com>
* config/ia64/hpux.h (ASM_OUTPUT_EXTERNAL_LIBCALL): New
*** gcc.orig/gcc/config/ia64/hpux.h Wed Sep 25 11:21:43 2002
--- gcc/gcc/config/ia64/hpux.h Thu Sep 26 11:14:59 2002
*************** do { \
*** 115,120 ****
--- 115,131 ----
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