diff options
author | Roland McGrath <roland@gnu.org> | 1995-02-21 06:02:58 +0000 |
---|---|---|
committer | Roland McGrath <roland@gnu.org> | 1995-02-21 06:02:58 +0000 |
commit | 37f91d336d8d93b1416c121627ffe88e548b251d (patch) | |
tree | a97e2e6f7a060d404c43bbc9ae12f0685f35f1fd /sysdeps | |
parent | 41d43dbce0b5df750abf709a793195471b4c55e8 (diff) | |
download | glibc-37f91d336d8d93b1416c121627ffe88e548b251d.tar glibc-37f91d336d8d93b1416c121627ffe88e548b251d.tar.gz glibc-37f91d336d8d93b1416c121627ffe88e548b251d.tar.bz2 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')
-rw-r--r-- | sysdeps/unix/bsd/Attic/osf1/alpha/start.S | 7 | ||||
-rw-r--r-- | sysdeps/unix/bsd/ultrix4/mips/start.S | 7 | ||||
-rw-r--r-- | sysdeps/unix/start.c | 12 |
3 files changed, 4 insertions, 22 deletions
diff --git a/sysdeps/unix/bsd/Attic/osf1/alpha/start.S b/sysdeps/unix/bsd/Attic/osf1/alpha/start.S index 8b7109a512..52eb03667f 100644 --- a/sysdeps/unix/bsd/Attic/osf1/alpha/start.S +++ b/sysdeps/unix/bsd/Attic/osf1/alpha/start.S @@ -18,13 +18,6 @@ Cambridge, MA 02139, USA. */ #include <sysdep.h> -#ifndef HAVE_WEAK_SYMBOLS -#define __environ environ -#else -weak_alias (__environ, environ) -#endif - -.comm __environ, 8 .comm errno, 4 !.sdata diff --git a/sysdeps/unix/bsd/ultrix4/mips/start.S b/sysdeps/unix/bsd/ultrix4/mips/start.S index ec0f9d833d..eec8ce08be 100644 --- a/sysdeps/unix/bsd/ultrix4/mips/start.S +++ b/sysdeps/unix/bsd/ultrix4/mips/start.S @@ -18,13 +18,6 @@ Cambridge, MA 02139, USA. */ #include <sysdep.h> -#ifndef HAVE_WEAK_SYMBOLS -#define __environ environ -#else -weak_alias (__environ, environ) -#endif - -.comm __environ, 4 .comm errno, 4 ENTRY(__start) 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 |