From 613a76ff52a680e71db772306a260b9cb7f95b49 Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Fri, 24 May 1996 20:16:39 +0000 Subject: Fri May 24 02:31:36 1996 Ulrich Drepper * sysdeps/unix/sysv/linux/speed.c: Add new speed value 460800. Thu May 23 23:09:33 1996 Ulrich Drepper * FAQ: Add answer for 100% source code compatibility to Linux libc by David Mosberger-Tang. Update from bind-4.3.4-T3B. * inet/arpa/inet.h: Add prototypes for inet_pton, inet_ntop, inet_nsap_addr, and inet_nsap_ntoa. * resolv/gethnamaddr.c: Correct compatibility problems (sprintf), remove fourth argument to inet_pton and correct handling of host_addr passing. * resolv/inet_ntop.c: Correct compatibility problems (sprintf). * resolv/inet_pton.c: Remove fourth argument. * resolv/resolv.h: Remove prototypes for inet_nsap_addr and inet_nsap_ntoa. Now on . * stdlib/gmp-impl.h: Add prototypes for internal functions. Thu May 23 22:49:15 1996 Roland McGrath * Rules (subdir_install): Remove dep on sor-$(subdir). (static-only-routines): Removed variable and associated rules. * sysdeps/unix/sysv/linux/alpha/Makefile (headers): Add sysdeps/alpha/bsd-_setjmp.S, sysdeps/alpha/ffs.S, sysdeps/unix/sysv/linux/alpha/sigsuspend.S, sysdeps/unix/sysv/linux/alpha/start.S, --- sysdeps/unix/sysv/linux/alpha/Makefile | 2 +- sysdeps/unix/sysv/linux/alpha/sigsuspend.S | 8 +++---- sysdeps/unix/sysv/linux/alpha/start.S | 35 +++++++++++++++++++++--------- 3 files changed, 30 insertions(+), 15 deletions(-) (limited to 'sysdeps/unix/sysv/linux/alpha') diff --git a/sysdeps/unix/sysv/linux/alpha/Makefile b/sysdeps/unix/sysv/linux/alpha/Makefile index 9e12a0daa2..beb8441b46 100644 --- a/sysdeps/unix/sysv/linux/alpha/Makefile +++ b/sysdeps/unix/sysv/linux/alpha/Makefile @@ -1,5 +1,5 @@ ifeq ($(subdir), misc) -headers += alpha/regdef.h +headers += alpha/ptrace.h alpha/regdef.h sysdep_routines := $(sysdep_routines) \ ieee_get_fp_control ieee_set_fp_control fpu_control setfpucw \ diff --git a/sysdeps/unix/sysv/linux/alpha/sigsuspend.S b/sysdeps/unix/sysv/linux/alpha/sigsuspend.S index 29cba8d312..00c02de72b 100644 --- a/sysdeps/unix/sysv/linux/alpha/sigsuspend.S +++ b/sysdeps/unix/sysv/linux/alpha/sigsuspend.S @@ -17,12 +17,13 @@ not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ /* sigsuspend is a special syscall since it needs to dereference the -sigset. */ + sigset. */ #include .text -ENTRY(sigsuspend) + +LEAF(sigsuspend, 0) .prologue 0 ldq a0, 0(a0) @@ -33,7 +34,6 @@ ENTRY(sigsuspend) error: br gp, 1f 1: ldgp gp, 0(gp) - lda pv, syscall_error - jmp zero, (pv) + jmp zero, syscall_error .end sigsuspend diff --git a/sysdeps/unix/sysv/linux/alpha/start.S b/sysdeps/unix/sysv/linux/alpha/start.S index d1966a82ba..a7099f6840 100644 --- a/sysdeps/unix/sysv/linux/alpha/start.S +++ b/sysdeps/unix/sysv/linux/alpha/start.S @@ -18,11 +18,16 @@ Cambridge, MA 02139, USA. */ #include -.comm errno, 4 + .comm errno, 4 +#ifdef __ELF__ + .type errno, @object +#endif .text -ENTRY(__start) +LEAF(__start, 16) lda sp, -16(sp) + .prologue 0 + stq zero, 8(sp) /* terminate frame chain */ br t0, 1f @@ -33,8 +38,7 @@ ENTRY(__start) ldgp gp, 0(ra) /* clear out errno. */ - lda t0, errno - stl zero, 0(t0) + stl zero, (errno) ldl a0, 16(sp) /* get argc */ lda a1, 24(sp) /* get argv */ @@ -45,26 +49,32 @@ ENTRY(__start) addq a2, 0x8, a2 stq a2, 0(t0) -#ifndef HAVE_INITFINI mov a0, s0 mov a1, s1 mov a2, s2 - jsr ra, __libc_init +#ifdef HAVE_INITFINI + /* register the _fini sections to ensure destructors get run: */ + lda a0, _fini + jsr ra, atexit ldgp gp, 0(ra) - mov s0, a0 - mov s1, a1 - mov s2, a2 + /* Now run the _init section of the program itself. The _init + sections of shared libraries will be run by the dynamic linker. */ + jsr ra, _init + ldgp gp, 0(ra) /* initialize constructors: */ jsr ra, __main ldgp gp, 0(ra) +#else + jsr ra, __libc_init + ldgp gp, 0(ra) +#endif mov s0, a0 mov s1, a1 mov s2, a2 -#endif jsr ra, main ldgp gp, 0(ra) @@ -90,4 +100,9 @@ ENTRY(__start) __data_start: .long 0 +#ifdef __ELF__ + .size __data_start, 4 + .type __data_start, @object +#endif + weak_alias(__data_start, data_start) -- cgit v1.2.3