This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: analysis: arch=i686, -fPIC won't play nice on OSR5
- To: Ulrich Drepper <drepper at cygnus dot com>, egcs-patches at cygnus dot com
- Subject: Re: analysis: arch=i686, -fPIC won't play nice on OSR5
- From: Robert Lipe <robertl at dgii dot com>
- Date: Tue, 30 Jun 1998 22:39:44 -0500
- References: <19980618145503.L4401@dgii.com>, <19980629225242.A18742.cygnus.egcs@dgii.com> <r2g1gmq2js.fsf@happy.cygnus.com>
[ moved to egcs-patches. Discussion was on egcs. ]
> > If this sounds like the right solution, let me know and I'll do the
> > patch thing.
>
> It's correct that the internal labels need no type information. If
> your patch simply avoids adding the .type line it is correct.
I've run this code through the testsuite on every i386 host/target that
I can (i586 and i686, linux and openserver, elf, elf + pic, coff) and
don't think I have have any reason to distrust it so far.
Unfortunately, I have completely too many build trees right now
so I cannot say with absolute certainty that it hasn't caused any
regressions.
Here's the patch.
Index: ChangeLog
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/ChangeLog,v
retrieving revision 1.1635
diff -u -p -r1.1635 ChangeLog
--- ChangeLog 1998/06/30 16:19:04 1.1635
+++ ChangeLog 1998/07/01 03:35:21
@@ -1,3 +1,9 @@
+
+Tue Jun 30 22:32:02 1998 Robert Lipe <robertl@dgii.com>
+
+ * i386.c (asm_output_function_prefix): Make 686 function
+ prologues not issue .types for non-global lables.
+
Tue Jun 30 16:01:01 1998 Richard Henderson <rth@cygnus.com>
* rtl.def (CONSTANT_P_RTX): New.
Index: config/i386/i386.c
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/gcc/config/i386/i386.c,v
retrieving revision 1.32
diff -u -p -r1.32 i386.c
--- i386.c 1998/06/21 00:26:50 1.32
+++ i386.c 1998/07/01 03:35:25
@@ -1914,9 +1914,7 @@ asm_output_function_prefix (file, name)
prologue_node = make_node (FUNCTION_DECL);
DECL_RESULT (prologue_node) = 0;
-#ifdef ASM_DECLARE_FUNCTION_NAME
- ASM_DECLARE_FUNCTION_NAME (file, pic_label_name, prologue_node);
-#endif
+ ASM_OUTPUT_LABEL (file, pic_label_name);
output_asm_insn ("movl (%1),%0", xops);
output_asm_insn ("ret", xops);
}