diff options
51 files changed, 483 insertions, 174 deletions
@@ -1,5 +1,144 @@ +Wed May 29 00:57:37 1996 David Mosberger-Tang <davidm@azstarnet.com> + + * time/Makefile (tests): Add test-tz. + + * time/test-tz.c: New test. + + * time/clocktest.c: Rewrite to test more meaningfully. + + * sysdeps/unix/sysv/linux/syscalls.list: Add bdflush, + create_module, delete_module, get_kernel_syms, init_module, + klogctl. + + * sysdeps/unix/sysv/linux/sys/param.h (MAXSYMLINKS): Define as 5 + instead of SYMLOOP_MAX, which is nowhere to be found. + + * sysdeps/unix/sysv/linux/sys/msq_buf.h, + sysdeps/unix/sysv/linux/sys/sem_buf.h, + sysdeps/unix/sysv/linux/sys/shm_buf.h [__USE_MISC]: Add more + control ops and datastructures. + + * sysdeps/unix/sysv/linux/sys/io.h: New file declaring low-level + I/O related functions. + + * sysdeps/unix/sysv/linux/sys/kdaemon.h: New file declaring kernel + daemon related functions/operations. + + * sysdeps/unix/sysv/linux/sys/klog.h: New file declaring kernel + logging related functions/operations. + + * sysdeps/unix/sysv/linux/sys/module.h: New file declaring kernel + module related functions/operations. + + * sysdeps/unix/sysv/linux/speed.c: Only do "mention this twice" hack + for non-Alpha based Linux systems. + + * sysdeps/unix/sysv/linux/alpha/speed.c: Remove. + + * sysdeps/unix/sysv/linux/Makefile (headers): Add sys/module.h, + sys/io.h, sys/klog.h, and sys/kdaemon.h. + + * sysdeps/unix/sysdep.h (END): Define empty END macro for + platforms that don't need some sort of end directive at the + end of functions. + + * sysdeps/unix/make-syscalls.sh: Emit END($strong) at end of + syscall wrapper to allow correct generation of debugging + information. + + * sysdeps/unix/alpha/sysdep.h (END): Redefine to use .end + directive for both ELF and ECOFF. + (ret): Delete macro. It was a dangerous macro and unnecessary + since the Alpha assemblers recognizes "ret" as a macro themselves. + + * sysdeps/gnu/utmpbits.h (struct utmp): Move ut_tv behind + ut_session to guarantee long alignment. This is important for + Linux/Alpha since ut_tv.tv_sec is 32 bits and time_t is 64 bits. + This will all get cleaned up as programs start to use ut_tv + instead ut_time. + + * sysdeps/alpha/divrem.h: Include <sysdep.h> instead of <*/regdef.h>. + + * sysdeps/alpha/bsd-_setjmp.S (setjmp): Renamed entry point to + _setjmp. + + * sysdeps/alpha/_mcount.S, sysdeps/alpha/bb_init_func.S, + sysdeps/alpha/bsd-_setjmp.S, sysdeps/alpha/bsd-setjmp.S, + sysdeps/alpha/copysign.S, sysdeps/alpha/divrem.h, + sysdeps/alpha/fabs.S, sysdeps/alpha/ffs.S, sysdeps/alpha/htonl.S, + sysdeps/alpha/htons.S, sysdeps/alpha/memchr.S, + sysdeps/alpha/setjmp.S, sysdeps/alpha/strlen.S, + sysdeps/unix/sysv/linux/alpha/ieee_get_fp_control.S, + sysdeps/unix/sysv/linux/alpha/ieee_set_fp_control.S, + sysdeps/unix/sysv/linux/alpha/llseek.S, + sysdeps/unix/sysv/linux/alpha/pipe.S, + sysdeps/unix/sysv/linux/alpha/sigsuspend.S, + sysdeps/unix/sysv/linux/alpha/sysdep.S: Use END macro instead of + .end directive. + + * csu/initfini.c (_fini): Tell gcc that _fini is not a leaf + function by having it contain a dummy function call. + + * configure.in (config_machine): Don't make ELF the default for + Linux/Alpha just yet (use --with-elf instead). + (.init/.fini check): Generate .text to ensure function start and + end are in same section. + + * sysdeps/unix/bsd/osf/alpha/brk.S, + sysdeps/unix/sysv/linux/alpha/brk.S (__curbrk): Store the entire + break value, not just the low 32 bits to accomodate large + memories. + +Tue May 28 10:46:04 1996 Richard Henderson <rth@tamu.edu> + + * sysdeps/unix/sysv/linux/alpha/brk.S: Rather than attempt to + dynamically resolve _end for initializing __curbrk, support the + brk(0) query idiom. + + * sysdeps/alpha/bb_init_func.S: Don't make `init' an external symbol. + + * sysdeps/alpha/bsd-_setjmp.S: The function is _setjmp not setjmp. + +Sun May 26 22:17:38 1996 Richard Henderson <rth@tamu.edu> + + * stdlib/lcong48_r.c, stdlib/seed48_r.c, stdlib/strtod.c, + stdlib/strtol.c: Include <string.h> for mem* and str* fns used. + +Thu May 23 02:15:56 1996 David Mosberger-Tang <davidm@azstarnet.com> + + * sysdeps/unix/sysv/linux/Makefile (headers): Add sys/io.h, + sys/klog.h, and sys/kdaemon.h. + + * sysdeps/unix/sysv/linux/sys/io.h: New file. + * sysdeps/unix/sysv/linux/sys/klog.h: Ditto. + * sysdeps/unix/sysv/linux/sys/kdaemon.h: Ditto. + + * sysdeps/unix/alpha/sysdep.h (ret): Remove macro. It is + dangerous and unnecessary since both OSF/1 as and gas define "ret" + as a pseudo-instruction. + +Sat Jun 1 17:18:21 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu> + + * time/tzset.c (__tzset): Clear tz_rules name pointers after freeing + them. Bug found by David Mosberger-Tang. + + * sysdeps/posix/tempname.c (__stdio_gen_tempname): Use __ptr_t instead + of PTR. + + * extra-lib.mk (extra-objs): Use patsubst intead of $(A:=B) syntax + to work around Make bug when A contains var ref. + +Fri May 31 18:27:52 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu> + + * string/string.h [__USE_MISC]: Declare basename; OSF/1 puts it here. + + * sysdeps/unix/sysv/linux/syscalls.list (getpgid, setpgid): Define __ + strong names and [gs]etpgid as weak aliases. + Thu May 30 11:24:05 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu> + * math/math_private.h (GET_LDOUBLE_EXP): Add missing backslash. + * po/header.pot: Replace with exact boilerplate pinard dictates. * sysdeps/i386/strtok.S (Lillegal_argument): Remove this code to set diff --git a/configure.in b/configure.in index 1f7a8ae6f9..e3154b6a7c 100644 --- a/configure.in +++ b/configure.in @@ -86,13 +86,10 @@ esac case "$host_os" in gnu* | linux* | sysv4* | solaris2*) # These systems always use the ELF format. - elf=yes ;; -esac - -# Linux/Alpha does not use ELF yet. -case "$host_cpu-$host_os" in -alpha*-linux*) - gnu_ld=no elf=no ;; + if test "$host_cpu" != alpha; then # Linux/Alpha is not fully ELF yet + elf=yes + fi + ;; esac machine=$config_machine @@ -406,7 +403,8 @@ fi if test $elf != yes; then AC_CACHE_CHECK(for .init and .fini sections, libc_cv_have_initfini, [AC_TRY_COMPILE(, [asm (".section .init"); - asm (".section .fini");], + asm (".section .fini"); + asm (".text");], libc_cv_have_initfini=yes, libc_cv_have_initfini=no)]) AC_SUBST(libc_cv_have_initfini)dnl diff --git a/csu/initfini.c b/csu/initfini.c index a91c3de7a4..2727596a4c 100644 --- a/csu/initfini.c +++ b/csu/initfini.c @@ -99,6 +99,15 @@ _fini (void) to crtn.s-new, followed by the function epilogue. */ asm ("\nEOF.crti.fini\ \n\ +cat > /dev/null <<\\EOF.fini.skip"); + + /* Let GCC know that _fini is not a leaf function by having a dummy + function call here. We arrange for this call to be omitted from + either crt file. */ + i_am_not_a_leaf(); + + asm ("\nEOF.fini.skip\ +\n\ fgrep .fini crti.s-new >>crtn.s-new\n\ cat >> crtn.s-new <<\\EOF.crtn.fini"); } diff --git a/extra-lib.mk b/extra-lib.mk index 99fce5b110..283da06b93 100644 --- a/extra-lib.mk +++ b/extra-lib.mk @@ -19,7 +19,8 @@ extra-objs := $(extra-objs) # Add each flavor of library to the lists of things to build and install. install-lib += $(foreach o,$(object-suffixes-$(lib)),$(lib:lib%=$(libtype$o))) -extra-objs += $(foreach o,$(object-suffixes-$(lib)),$($(lib)-routines:=$o)) +extra-objs += $(foreach o,$(object-suffixes-$(lib)),\ + $(patsubst %,%$o,$($(lib)-routines))) alltypes-$(lib) := $(foreach o,$(object-suffixes-$(lib)),\ $(objpfx)$(patsubst %,$(libtype$o),\ $(lib:lib%=%))) diff --git a/math/math_private.h b/math/math_private.h index c4ac857607..850442ca95 100644 --- a/math/math_private.h +++ b/math/math_private.h @@ -219,7 +219,7 @@ do { \ #define GET_LDOUBLE_EXP(exp,d) \ do { \ ieee_long_double_shape_type ge_u; \ - ge_u.value = (d); + ge_u.value = (d); \ (exp) = ge_u.parts.sign_exponent; \ } while (0) diff --git a/stdlib/lcong48_r.c b/stdlib/lcong48_r.c index f607bc5b84..8584eddf0b 100644 --- a/stdlib/lcong48_r.c +++ b/stdlib/lcong48_r.c @@ -18,6 +18,7 @@ not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include <stdlib.h> +#include <string.h> int lcong48_r (param, buffer) diff --git a/stdlib/seed48_r.c b/stdlib/seed48_r.c index e45c3d2ad3..24511343c7 100644 --- a/stdlib/seed48_r.c +++ b/stdlib/seed48_r.c @@ -18,6 +18,7 @@ not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include <stdlib.h> +#include <string.h> int seed48_r (seed16v, buffer) diff --git a/stdlib/strtod.c b/stdlib/strtod.c index f32ffc6162..aff0045542 100644 --- a/stdlib/strtod.c +++ b/stdlib/strtod.c @@ -57,6 +57,7 @@ Boston, MA 02111-1307, USA. */ #include "../locale/localeinfo.h" #include <math.h> #include <stdlib.h> +#include <string.h> /* The gmp headers need some configuration frobs. */ #define HAVE_ALLOCA 1 diff --git a/stdlib/strtol.c b/stdlib/strtol.c index dd92fb250c..06639a763a 100644 --- a/stdlib/strtol.c +++ b/stdlib/strtol.c @@ -39,6 +39,7 @@ extern int errno; #ifdef STDC_HEADERS # include <stddef.h> # include <stdlib.h> +# include <string.h> #else # ifndef NULL # define NULL 0 diff --git a/string/string.h b/string/string.h index 0df63d0653..905eb7e3c9 100644 --- a/string/string.h +++ b/string/string.h @@ -213,6 +213,11 @@ extern char *strfry __P ((char *__string)); extern __ptr_t memfrob __P ((__ptr_t __s, size_t __n)); #endif +#ifdef __USE_MISC +/* Return the file name within directory of FILENAME. */ +extern char *basename __P ((__const char *filename)); +#endif + __END_DECLS #endif /* string.h */ diff --git a/sysdeps/alpha/_mcount.S b/sysdeps/alpha/_mcount.S index 7944544e18..1730760316 100644 --- a/sysdeps/alpha/_mcount.S +++ b/sysdeps/alpha/_mcount.S @@ -106,4 +106,4 @@ LEAF(_mcount, 0xb0) addq sp, 0xb0, sp ret zero,($at),1 - .end _mcount + END(_mcount) diff --git a/sysdeps/alpha/bb_init_func.S b/sysdeps/alpha/bb_init_func.S index cd860b8303..dfa8c1d07b 100644 --- a/sysdeps/alpha/bb_init_func.S +++ b/sysdeps/alpha/bb_init_func.S @@ -41,10 +41,11 @@ ENTRY(__bb_init_func) beq t0, init /* not initialized yet -> */ ret - .end __bb_init_func +END(__bb_init_func) - -LEAF(init, 0x38) +.ent init +init: + .frame sp, 0x38, ra, 0 subq sp, 0x38, sp .prologue 0 @@ -84,4 +85,4 @@ leave: ldq pv, 0x30(sp) addq sp, 0x38, sp ret - .end init +.end init diff --git a/sysdeps/alpha/bsd-_setjmp.S b/sysdeps/alpha/bsd-_setjmp.S index 16709dfc09..da60442c23 100644 --- a/sysdeps/alpha/bsd-_setjmp.S +++ b/sysdeps/alpha/bsd-_setjmp.S @@ -23,8 +23,8 @@ Cambridge, MA 02139, USA. */ #include <sysdep.h> -ENTRY(setjmp) +ENTRY(_setjmp) lda $27, __sigsetjmp /* Load address to jump to. */ bis $31, $31, $17 /* Pass a second argument of zero. */ |
