This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: 2.95.4 plans


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]