aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog139
-rw-r--r--configure.in14
-rw-r--r--csu/initfini.c9
-rw-r--r--extra-lib.mk3
-rw-r--r--math/math_private.h2
-rw-r--r--stdlib/lcong48_r.c1
-rw-r--r--stdlib/seed48_r.c1
-rw-r--r--stdlib/strtod.c1
-rw-r--r--stdlib/strtol.c1
-rw-r--r--string/string.h5
-rw-r--r--sysdeps/alpha/_mcount.S2
-rw-r--r--sysdeps/alpha/bb_init_func.S9
-rw-r--r--sysdeps/alpha/bsd-_setjmp.S4
-rw-r--r--sysdeps/alpha/bsd-setjmp.S2
-rw-r--r--sysdeps/alpha/copysign.S2
-rw-r--r--sysdeps/alpha/divrem.h6
-rw-r--r--sysdeps/alpha/fabs.S2
-rw-r--r--sysdeps/alpha/ffs.S2
-rw-r--r--sysdeps/alpha/htonl.S2
-rw-r--r--sysdeps/alpha/htons.S2
-rw-r--r--sysdeps/alpha/memchr.S2
-rw-r--r--sysdeps/alpha/setjmp.S2
-rw-r--r--sysdeps/alpha/strlen.S2
-rw-r--r--sysdeps/gnu/utmpbits.h2
-rw-r--r--sysdeps/posix/tempname.c2
-rw-r--r--sysdeps/unix/alpha/sysdep.h4
-rw-r--r--sysdeps/unix/bsd/osf/alpha/brk.S2
-rw-r--r--sysdeps/unix/make-syscalls.sh3
-rw-r--r--sysdeps/unix/sysdep.h4
-rw-r--r--sysdeps/unix/sysv/linux/Makefile4
-rw-r--r--sysdeps/unix/sysv/linux/alpha/brk.S20
-rw-r--r--sysdeps/unix/sysv/linux/alpha/ieee_get_fp_control.S2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/ieee_set_fp_control.S2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/llseek.S2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/pipe.S2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/sigsuspend.S2
-rw-r--r--sysdeps/unix/sysv/linux/alpha/speed.c103
-rw-r--r--sysdeps/unix/sysv/linux/speed.c2
-rw-r--r--sysdeps/unix/sysv/linux/sys/io.h39
-rw-r--r--sysdeps/unix/sysv/linux/sys/kdaemon.h9
-rw-r--r--sysdeps/unix/sysv/linux/sys/klog.h10
-rw-r--r--sysdeps/unix/sysv/linux/sys/module.h36
-rw-r--r--sysdeps/unix/sysv/linux/sys/msq_buf.h22
-rw-r--r--sysdeps/unix/sysv/linux/sys/param.h2
-rw-r--r--sysdeps/unix/sysv/linux/sys/sem_buf.h21
-rw-r--r--sysdeps/unix/sysv/linux/sys/shm_buf.h37
-rw-r--r--sysdeps/unix/sysv/linux/syscalls.list10
-rw-r--r--time/Makefile2
-rw-r--r--time/clocktest.c31
-rw-r--r--time/test-tz.c57
-rw-r--r--time/tzset.c10
51 files changed, 483 insertions, 174 deletions
diff --git a/ChangeLog b/ChangeLog
index 25eb068779..ff74cae635 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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. */