about summary refs log tree commit diff
path: root/sysdeps/unix/start.c
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>1995-02-21 06:02:58 +0000
committerRoland McGrath <roland@gnu.org>1995-02-21 06:02:58 +0000
commit37f91d336d8d93b1416c121627ffe88e548b251d (patch)
treea97e2e6f7a060d404c43bbc9ae12f0685f35f1fd /sysdeps/unix/start.c
parent41d43dbce0b5df750abf709a793195471b4c55e8 (diff)
downloadglibc-37f91d336d8d93b1416c121627ffe88e548b251d.tar.gz
glibc-37f91d336d8d93b1416c121627ffe88e548b251d.tar.xz
glibc-37f91d336d8d93b1416c121627ffe88e548b251d.zip
Tue Feb 21 00:10:50 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
	* csu/Makefile (crtstuff): New variable consolidates crti, crtn;
 	add crti_s, crtn_s.
	(install-lib, extra-objs, generated-, omit-deps): Use that.
	(initfini): New canned sequence, broken out of crt[in].s rule.
	(crt[in].s rule): Use it.
	(crt[in]_s.s): New rule.
	* csu/initfini.c (GLOBAL): New macro; define it to empty if undefined.
	(_init, _fini): Use GLOBAL as storage class.
	Add self reference to avoid GCC optimizing out the functions.

	* Makefile (headers): Remove $(stddef.h).
	* Makeconfig (stddef.h): Variable removed; now require gcc version
 	>= 2.2.
	* stddef.h: File removed.

Mon Feb 20 19:42:31 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* sysdeps/unix/bsd/ultrix4/mips/start.S: Remove `__environ'
 	definition.
	* sysdeps/unix/bsd/osf1/alpha/start.S: Likewise.

	* stdlib/strtod.c: Allow the string to start with a decimal point
 	without a leading zero.
Diffstat (limited to 'sysdeps/unix/start.c')
-rw-r--r--sysdeps/unix/start.c12
1 files changed, 4 insertions, 8 deletions
diff --git a/sysdeps/unix/start.c b/sysdeps/unix/start.c
index feb5f44fb8..62c9bd9f38 100644
--- a/sysdeps/unix/start.c
+++ b/sysdeps/unix/start.c
@@ -35,11 +35,8 @@ weak_alias (__data_start, data_start)
 #define	DECL_DUMMIES
 #endif
 
-VOLATILE int errno;
-
-#ifndef	HAVE_WEAK_SYMBOLS
-#undef	environ
-#define	__environ	environ
+#ifndef errno
+volatile int errno;
 #endif
 
 extern void EXFUN(__libc_init, (int argc, char **argv, char **envp));
@@ -66,11 +63,10 @@ DEFUN_VOID(_start)
   start1();
 }
 
-#if !defined (NO_UNDERSCORES) && defined (HAVE_GNU_LD) && !defined (__GNUC__)
+#if !defined (NO_UNDERSCORES) && defined (HAVE_WEAK_SYMBOLS)
 /* Make an alias called `start' (no leading underscore,
    so it can't conflict with C symbols) for `_start'.  */
-asm(".stabs \"start\",11,0,0,0");
-asm(".stabs \"__start\",1,0,0,0");
+asm (".weak start; start = _start");
 #endif
 
 #endif