This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: 2.95.4 plans
- To: "H . J . Lu" <hjl at lucon dot org>
- Subject: Re: 2.95.4 plans
- From: Bernd Schmidt <bernds at redhat dot com>
- Date: Tue, 3 Apr 2001 11:32:12 +0100 (BST)
- Cc: <gcc-patches at gcc dot gnu dot org>
On Tue, 20 Mar 2001, H . J . Lu wrote:
> On Tue, Mar 20, 2001 at 10:16:16AM +0000, Bernd Schmidt wrote:
> > On Mon, 19 Mar 2001, H . J . Lu wrote:
> >
> > > > > Now that 2.95.3 is out, I'll again accept suggestions what to include in
> > > > > 2.95.4, so please send candidate patches and bug reports.
> > > >
> > >
> > > This patch
> > >
> > > http://gcc.gnu.org/ml/gcc-patches/2001-03/msg01187.html
> > >
> > > is a must-have for glibc in CVS.
> >
> > You'll have to send a better explanation than that.
> >
>
> You can go from:
>
> http://sources.redhat.com/ml/libc-alpha/2001-03/msg00080.html
> http://gcc.gnu.org/ml/gcc-patches/2001-03/msg01164.html
>
> The problem is atexit. There should be no references to atexit
> in crt*.o for glibc 2.2 in CVS since it has been removed from
> libc.so.6 in glibc.
Ok. I'll install the following patch on the 2.95 branch.
Bernd
Index: ChangeLog
===================================================================
RCS file: /cvs/gcc/egcs/gcc/ChangeLog,v
retrieving revision 1.3667.4.347
diff -u -p -r1.3667.4.347 ChangeLog
--- ChangeLog 2001/03/30 14:05:10 1.3667.4.347
+++ ChangeLog 2001/04/03 10:00:51
@@ -1,3 +1,10 @@
+2001-04-03 Bernd Schmidt <bernds@redhat.com>
+
+ 2001-03-16 Jakub Jelinek <jakub@redhat.com>
+ * crtstuff.c (init_dummy): Use CRT_END_INIT_DUMMY if defined.
+ Remove ia32 linux PIC kludge and move it...
+ * config/i386/linux.h (CRT_END_INIT_DUMMY): ...here.
+
2001-03-30 Bernd Schmidt <bernds@redhat.com>
* jump.c (delete_barrier_successors): Fix error in last change.
Index: crtstuff.c
===================================================================
RCS file: /cvs/gcc/egcs/gcc/crtstuff.c,v
retrieving revision 1.18
diff -u -p -r1.18 crtstuff.c
--- crtstuff.c 1999/03/23 00:43:51 1.18
+++ crtstuff.c 2001/04/03 10:00:52
@@ -380,19 +380,8 @@ init_dummy (void)
#endif
asm (TEXT_SECTION_ASM_OP);
-/* This is a kludge. The i386 GNU/Linux dynamic linker needs ___brk_addr,
- __environ and atexit (). We have to make sure they are in the .dynsym
- section. We accomplish it by making a dummy call here. This
- code is never reached. */
-
-#if defined(__linux__) && defined(__PIC__) && defined(__i386__)
- {
- extern void *___brk_addr;
- extern char **__environ;
-
- ___brk_addr = __environ;
- atexit ();
- }
+#ifdef CRT_END_INIT_DUMMY
+ CRT_END_INIT_DUMMY;
#endif
}
Index: config/i386/linux.h
===================================================================
RCS file: /cvs/gcc/egcs/gcc/config/i386/linux.h,v
retrieving revision 1.15
diff -u -p -r1.15 linux.h
--- linux.h 1999/04/08 00:32:13 1.15
+++ linux.h 2001/04/03 10:00:53
@@ -234,3 +234,21 @@ Boston, MA 02111-1307, USA. */
} \
} while (0)
#endif
+
+#if defined(__PIC__) && defined (USE_GNULIBC_1)
+/* This is a kludge. The i386 GNU/Linux dynamic linker needs ___brk_addr,
+ __environ and atexit (). We have to make sure they are in the .dynsym
+ section. We accomplish it by making a dummy call here. This
+ code is never reached. */
+
+#define CRT_END_INIT_DUMMY \
+ do \
+ { \
+ extern void *___brk_addr; \
+ extern char **__environ; \
+ \
+ ___brk_addr = __environ; \
+ atexit (0); \
+ } \
+ while (0)
+#endif