From bd78530f155fa3c5c57af42457541072326fe16a Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Mon, 1 Jun 1998 13:41:16 +0000 Subject: [PATCH] Update. 1998-05-31 Philip Blundell * sysdeps/unix/sysv/linux/arm/sysdep.S: Use C_SYMBOL_NAME when referring to errno and _errno. * sysdeps/arm/fpu/feholdexcpt.c: New file. * sysdeps/i386/fpu_control.h: Fix typo. * sysdeps/arm/bits/setjmp.h (__jmp_buf): Remove floating-point support. (_JMPBUF_UNWINDS): Added. * sysdeps/arm/fpu/bits/setjmp.h: New file. 1998-05-25 Gordon Matzigkeit * sysdeps/mach/hurd/Makefile: Use the `before-compile' target in order to build header files, not `generated'. * Rules (before-compile): New target which depends on all $(before-compile) files. --- ChangeLog | 21 ++++++++++++++++ Rules | 5 ++++ sysdeps/arm/bits/setjmp.h | 14 +++++++---- sysdeps/arm/fpu/bits/setjmp.h | 36 +++++++++++++++++++++++++++ sysdeps/arm/fpu/feholdexcpt.c | 37 ++++++++++++++++++++++++++++ sysdeps/i386/fpu_control.h | 2 +- sysdeps/mach/hurd/Makefile | 4 +-- sysdeps/unix/sysv/linux/arm/sysdep.S | 16 ++++++------ timezone/README | 4 +-- 9 files changed, 122 insertions(+), 17 deletions(-) create mode 100644 sysdeps/arm/fpu/bits/setjmp.h create mode 100644 sysdeps/arm/fpu/feholdexcpt.c diff --git a/ChangeLog b/ChangeLog index fe910c2e7a..92354a5e6b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,24 @@ +1998-05-31 Philip Blundell + + * sysdeps/unix/sysv/linux/arm/sysdep.S: Use C_SYMBOL_NAME when + referring to errno and _errno. + + * sysdeps/arm/fpu/feholdexcpt.c: New file. + + * sysdeps/i386/fpu_control.h: Fix typo. + + * sysdeps/arm/bits/setjmp.h (__jmp_buf): Remove floating-point support. + (_JMPBUF_UNWINDS): Added. + * sysdeps/arm/fpu/bits/setjmp.h: New file. + +1998-05-25 Gordon Matzigkeit + + * sysdeps/mach/hurd/Makefile: Use the `before-compile' target in + order to build header files, not `generated'. + + * Rules (before-compile): New target which depends on all + $(before-compile) files. + 1998-06-01 Thorsten Kukuk * nis/nis_call.c: Make directory search faster. diff --git a/Rules b/Rules index d50072b27e..0f9116b628 100644 --- a/Rules +++ b/Rules @@ -176,6 +176,11 @@ subdir_dist: dist generated: $(addprefix $(common-objpfx),$(common-generated)) \ $(addprefix $(objpfx),$(generated)) +# Target required by the Hurd to ensure that all the MiG-generated +# headers are in place before building a subdirectory. +.PHONY: before-compile +before-compile: $(before-compile) + define o-iterator-doit $(common-objpfx)empty$o: $(common-objpfx)empty.c $(before-compile); $$(compile-command.c) diff --git a/sysdeps/arm/bits/setjmp.h b/sysdeps/arm/bits/setjmp.h index ea25a9ba87..6d8737970b 100644 --- a/sysdeps/arm/bits/setjmp.h +++ b/sysdeps/arm/bits/setjmp.h @@ -23,10 +23,14 @@ #endif #ifndef _ASM -/* Jump buffer contains v1-v6, sl, fp, sp, pc and (f4-f7) if we do FP. */ -# if __ARM_USES_FP -typedef int __jmp_buf[22]; -# else +/* Jump buffer contains v1-v6, sl, fp, sp and pc. Other registers are not + saved. */ typedef int __jmp_buf[10]; -# endif #endif + +#define __JMP_BUF_SP 8 + +/* Test if longjmp to JMPBUF would unwind the frame + containing a local variable at ADDRESS. */ +#define _JMPBUF_UNWINDS(jmpbuf, address) \ + ((void *) (address) < (void *) (jmpbuf[__JMP_BUF_SP])) diff --git a/sysdeps/arm/fpu/bits/setjmp.h b/sysdeps/arm/fpu/bits/setjmp.h new file mode 100644 index 0000000000..895356fe0a --- /dev/null +++ b/sysdeps/arm/fpu/bits/setjmp.h @@ -0,0 +1,36 @@ +/* Copyright (C) 1997, 1998 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with the GNU C Library; see the file COPYING.LIB. If not, + write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +/* Define the machine-dependent type `jmp_buf'. ARM version. */ + +#ifndef _SETJMP_H +# error "Never include directly; use instead." +#endif + +#ifndef _ASM +/* Jump buffer contains v1-v6, sl, fp, sp and pc. Other registers are not + saved. */ +typedef int __jmp_buf[22]; +#endif + +#define __JMP_BUF_SP 8 + +/* Test if longjmp to JMPBUF would unwind the frame + containing a local variable at ADDRESS. */ +#define _JMPBUF_UNWINDS(jmpbuf, address) \ + ((void *) (address) < (void *) (jmpbuf[__JMP_BUF_SP])) diff --git a/sysdeps/arm/fpu/feholdexcpt.c b/sysdeps/arm/fpu/feholdexcpt.c new file mode 100644 index 0000000000..5679ccc243 --- /dev/null +++ b/sysdeps/arm/fpu/feholdexcpt.c @@ -0,0 +1,37 @@ +/* Store current floating-point environment and clear exceptions. + Copyright (C) 1997, 1998 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with the GNU C Library; see the file COPYING.LIB. If not, + write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +#include +#include + +int +feholdexcept (fenv_t *envp) +{ + unsigned long int temp; + + /* Store the environment. */ + _FPU_GETCW(temp); + envp->cw = temp; + + /* Now set all exceptions to non-stop. */ + temp &= ~(FE_ALL_EXCEPT << FE_EXCEPT_SHIFT); + _FPU_SETCW(temp); + + return 1; +} diff --git a/sysdeps/i386/fpu_control.h b/sysdeps/i386/fpu_control.h index f0fb2fe9c1..8474f7199b 100644 --- a/sysdeps/i386/fpu_control.h +++ b/sysdeps/i386/fpu_control.h @@ -21,7 +21,7 @@ #ifndef _FPU_CONTROL_H #define _FPU_CONTROL_H 1 -/* Here is the dirty part. Settup up your 387 through the control word +/* Here is the dirty part. Set up your 387 through the control word * (cw) register. * * 15-13 12 11-10 9-8 7-6 5 4 3 2 1 0 diff --git a/sysdeps/mach/hurd/Makefile b/sysdeps/mach/hurd/Makefile index 7e5dee6740..55b333f929 100644 --- a/sysdeps/mach/hurd/Makefile +++ b/sysdeps/mach/hurd/Makefile @@ -47,13 +47,13 @@ hurd-objpfx = $(common-objpfx)hurd/ # These are all the generated headers that includes. before-compile += $(patsubst %,$(hurd-objpfx)hurd/%.h,auth io fs process) $(patsubst %,$(hurd-objpfx)hurd/%.%,auth io fs process): - $(MAKE) -C $(..)hurd generated no_deps=t + $(MAKE) -C $(..)hurd before-compile no_deps=t endif # Hurd profil.c includes this file, so give a rule to make it. ifeq ($(subdir),gmon) $(common-objpfx)hurd/../mach/RPC_task_get_sampled_pcs.c: - $(MAKE) -C $(..)mach generated no_deps=t + $(MAKE) -C $(..)mach before-compile no_deps=t endif diff --git a/sysdeps/unix/sysv/linux/arm/sysdep.S b/sysdeps/unix/sysv/linux/arm/sysdep.S index 482535bea5..f6cb3e4648 100644 --- a/sysdeps/unix/sysv/linux/arm/sysdep.S +++ b/sysdeps/unix/sysv/linux/arm/sysdep.S @@ -20,13 +20,15 @@ /* We define errno here, to be consistent with Linux/i386. */ .bss - .globl errno - .type errno,%object - .size errno,4 -errno: .zero 4 - .globl _errno - .type _errno,%object -_errno = errno /* This name is expected by hj's libc.so.5 startup code. */ + .globl C_SYMBOL_NAME(errno) + .type C_SYMBOL_NAME(errno),%object + .size C_SYMBOL_NAME(errno),4 +C_SYMBOL_NAME(errno): .zero 4 + .globl C_SYMBOL_NAME(_errno) + .type C_SYMBOL_NAME(_errno),%object +/* This name is expected by hj's libc.so.5 startup code. It seems to be needed + by pthreads as well. */ +C_SYMBOL_NAME(_errno) = C_SYMBOL_NAME(errno) .text /* The syscall stubs jump here when they detect an error. diff --git a/timezone/README b/timezone/README index 009a7973bc..8d043ba627 100644 --- a/timezone/README +++ b/timezone/README @@ -1,14 +1,14 @@ The files zic.c zdump.c ialloc.c scheck.c tzfile.h private.h tzselect.ksh checktab.awk -come from the tzcode1998b package by Arthur David Olson et.al. +come from the tzcode1998f package by Arthur David Olson et.al. The files africa antarctica asia australasia europe northamerica southamerica pacificnew etcetera factory backward systemv solar87 solar88 solar89 iso3166.tab zone.tab leapseconds yearistype -come from the tzdata1998b package by Arthur David Olson et.al. +come from the tzdata1998e package by Arthur David Olson et.al. These packages may be found at ftp://elsie.nci.nih.gov/pub/. Commentary should be addressed to tz@elsie.nci.nih.gov.