Mon Jun 10 02:22:24 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>

* sysdeps/unix/sysv/linux/configure.in: New file, start with configure.
	Add check for installed <linux/version.h> being v2.0 or later.

	* sysdeps/generic/dl-sysdep.c (_dl_sysdep_open_zero_fill): Call __open
	instead of open.
	(_dl_sysdep_fatal): Call __write instead of write.
	(_dl_sysdep_message): Likewise.

Sun Jun  9 20:40:00 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sysdeps/m68k/fpu/e_acosl.c: New file.

	* Makerules (o-objects): New variable.  Use it in place of
	$(objects:.o=$o); it filters out $(elide-routines$o).
	Use o-iterator for ar and ranlib rules so they use the per-type object
	list.

	* sysdeps/unix/bsd/ultrix4/sys/mman.h: Likewise.
This commit is contained in:
Roland McGrath 1996-06-10 09:41:16 +00:00
parent 6d9756c910
commit 564210fe2f
7 changed files with 127 additions and 28 deletions

View File

@ -1,5 +1,24 @@
Mon Jun 10 02:22:24 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* sysdeps/unix/sysv/linux/configure.in: New file, start with configure.
Add check for installed <linux/version.h> being v2.0 or later.
* sysdeps/generic/dl-sysdep.c (_dl_sysdep_open_zero_fill): Call __open
instead of open.
(_dl_sysdep_fatal): Call __write instead of write.
(_dl_sysdep_message): Likewise.
Sun Jun 9 20:40:00 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/m68k/fpu/e_acosl.c: New file.
Sun Jun 9 01:11:49 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu> Sun Jun 9 01:11:49 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* Makerules (o-objects): New variable. Use it in place of
$(objects:.o=$o); it filters out $(elide-routines$o).
Use o-iterator for ar and ranlib rules so they use the per-type object
list.
* elf/dl-load.c (_dl_map_object_from_fd): Close FD before return. * elf/dl-load.c (_dl_map_object_from_fd): Close FD before return.
* sysdeps/mach/mprotect.c: Define with __ name and weak alias. * sysdeps/mach/mprotect.c: Define with __ name and weak alias.
@ -10,6 +29,7 @@ Sun Jun 9 01:11:49 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
* sysdeps/unix/sysv/linux/sys/mman.h: Likewise. * sysdeps/unix/sysv/linux/sys/mman.h: Likewise.
* sysdeps/unix/bsd/sun/sunos4/sys/mman.h: Likewise. * sysdeps/unix/bsd/sun/sunos4/sys/mman.h: Likewise.
* sysdeps/unix/bsd/osf/sys/mman.h: Likewise. * sysdeps/unix/bsd/osf/sys/mman.h: Likewise.
* sysdeps/unix/bsd/ultrix4/sys/mman.h: Likewise.
* Make-dist ($(tardir).tar): Use sed to check for file names longer * Make-dist ($(tardir).tar): Use sed to check for file names longer
than 14 chars, instead of doschk which checks for other things we than 14 chars, instead of doschk which checks for other things we

View File

@ -363,9 +363,15 @@ lib: lib-noranlib $(foreach l,$(libtypes),$(patsubst %,$(common-objpfx)$l,c))
# Pattern rule for libraries: depend on the __.SYMDEF member updated by ranlib. # Pattern rule for libraries: depend on the __.SYMDEF member updated by ranlib.
lib%.a: lib%.a($(ar-symtab-name)) ; lib%.a: lib%.a($(ar-symtab-name)) ;
# For object-suffix $o, the list of objects with that suffix.
# Makefiles can define `elide-routines.so = foo' to leave foo.so out.
o-objects = $(patsubst %.o,%$o,$(filter-out $(patsubst %,$(objpfx)%.o,\
$(elide-routines$o)),\
$(objects)))
libobjs: $(foreach o,$(object-suffixes),\ libobjs: $(foreach o,$(object-suffixes),\
$(common-objpfx)$(patsubst %,$(libtype$o),c)(\ $(common-objpfx)$(patsubst %,$(libtype$o),c)(\
$(notdir $(objects:.o=$o)))) $(notdir $(o-objects))))
lib-noranlib: libobjs lib-noranlib: libobjs
others: $(addprefix $(objpfx),$(install-lib)) others: $(addprefix $(objpfx),$(install-lib))
@ -374,28 +380,33 @@ ifdef objects
# Define a pattern rule that will match many targets libc.a(foo.%), for # Define a pattern rule that will match many targets libc.a(foo.%), for
# each foo.o in $(objects) (% will just happen always to match `o'). This is # each foo.o in $(objects) (% will just happen always to match `o'). This is
# the only way to define a rule that updates many targets at once with one # the only way to define a rule that updates many targets at once with one
# sequence of commands. We in fact define the pattern rule to match # sequence of commands.
# targets libc.a(foo.%), libc_pic.a(foo.%), etc, to avoid repeating the rule. define o-iterator-doit
# Each match will only ever be called upon to make member objects of $(common-objpfx)$(patsubst %,$(libtype$o),c)(\
# the appropriate type in each library (i.e. libc_pic.a(foo.so)). $(addsuffix .%,$(filter-out $(elide-routines$o),$(notdir $(objects:.o=))))): \
$(foreach l,$(libtypes),\
$(common-objpfx)$(patsubst %,$l,c)($(notdir $(objects:.o=.%)))): \
$(objpfx)stamp.%-$(subdir) ; $(objpfx)stamp.%-$(subdir) ;
endef
object-suffixes-left := $(object-suffixes)
include $(o-iterator)
# The pattern rule tells Make to remake $(objpfx)stamp.%-$(subdir) as # The pattern rule tells Make to remake $(objpfx)stamp.%-$(subdir) as
# the way to update all the foo.% object files in $(objects). # the way to update all the foo.% object files in $(objects). Now we
# Now we define a static pattern rule to update each # define explicit rules to update each $(objpfx)stamp.SUFFIX-$(subdir)
# $(objpfx)stamp.SUFFIX-$(subdir) timestamp file; # timestamp file; these rules (one explicit rule is generated for each
# these rules (one explicit rule is generated for each object suffix) # object suffix) will update the parent archive with ar. Use a static
# will update the parent archive with # pattern rule so $* is set to the object type during the commands.
$(foreach o,$(object-suffixes),$(objpfx)stamp$o-$(subdir)): \ define o-iterator-doit
$(objpfx)stamp%-$(subdir): $(objects:.o=%) $(objpfx)stamp$o-$(subdir): $(objpfx)stamp%-$(subdir): $(o-objects); $$(do-ar)
$(patsubst %,cd %;,$(objdir)) \ endef
$(AR) cru$(verbose) ${O%-lib} \ object-suffixes-left := $(object-suffixes)
$(patsubst $(objpfx)%,%,$^) include $(o-iterator)
# `touch' won't let me touch a world-writable file I don't own. Sigh. define do-ar
rm -f $@ $(patsubst %,cd %;,$(objdir)) \
touch $@ $(AR) cru$(verbose) ${O%-lib} \
$(patsubst $(objpfx)%,%,$^)
rm -f $@
touch $@
endef
ifdef subdir ifdef subdir
O%-lib = $(filter ../,$(firstword $(objdir) ../))$(patsubst %,$(libtype$*),c) O%-lib = $(filter ../,$(firstword $(objdir) ../))$(patsubst %,$(libtype$*),c)
else else
@ -409,7 +420,7 @@ endif
define o-iterator-doit define o-iterator-doit
$(common-objpfx)$(patsubst %,$(libtype$o),c)($(ar-symtab-name)): \ $(common-objpfx)$(patsubst %,$(libtype$o),c)($(ar-symtab-name)): \
$(common-objpfx)$(patsubst %,$(libtype$o),c)(\ $(common-objpfx)$(patsubst %,$(libtype$o),c)(\
$(patsubst $(objpfx)%.o,%$o,$(objects))) \ $(patsubst $(objpfx)%,%,$(o-objects))) \
$(filter subdir_lib,$(firstword $(subdir) subdir_lib)); \ $(filter subdir_lib,$(firstword $(subdir) subdir_lib)); \
$$(RANLIB) $$(common-objpfx)$$(patsubst %,$$(libtype$o),c) $$(RANLIB) $$(common-objpfx)$$(patsubst %,$$(libtype$o),c)
endef endef
@ -419,7 +430,7 @@ include $(o-iterator)
# This makes all the object files. # This makes all the object files.
.PHONY: objects objs .PHONY: objects objs
objects objs: $(foreach o,$(object-suffixes),$(objects:.o=$o)) \ objects objs: $(foreach o,$(object-suffixes),$(o-objects)) \
$(addprefix $(objpfx),$(extra-objs)) $(addprefix $(objpfx),$(extra-objs))
# Canned sequence for building an extra library archive. # Canned sequence for building an extra library archive.
@ -748,7 +759,7 @@ common-mostlyclean:
$(rmobjs) $(rmobjs)
define rmobjs define rmobjs
$(foreach o,$(object-suffixes), $(foreach o,$(object-suffixes),
-rm -f $(addprefix $(objpfx),stamp$o-$(subdir)) $(objects:.o=$o)) -rm -f $(addprefix $(objpfx),stamp$o-$(subdir)) $(o-objects))
endef endef
# Also remove the dependencies and generated source files. # Also remove the dependencies and generated source files.

View File

@ -109,7 +109,7 @@ _dl_sysdep_start_cleanup (void)
int int
_dl_sysdep_open_zero_fill (void) _dl_sysdep_open_zero_fill (void)
{ {
return open ("/dev/zero", O_RDONLY); return __open ("/dev/zero", O_RDONLY);
} }
#include <stdarg.h> #include <stdarg.h>
@ -123,7 +123,7 @@ _dl_sysdep_fatal (const char *msg, ...)
do do
{ {
size_t len = strlen (msg); size_t len = strlen (msg);
write (STDERR_FILENO, msg, len); __write (STDERR_FILENO, msg, len);
msg = va_arg (ap, const char *); msg = va_arg (ap, const char *);
} while (msg); } while (msg);
va_end (ap); va_end (ap);
@ -141,7 +141,7 @@ _dl_sysdep_message (const char *msg, ...)
do do
{ {
size_t len = strlen (msg); size_t len = strlen (msg);
write (STDOUT_FILENO, msg, len); __write (STDOUT_FILENO, msg, len);
msg = va_arg (ap, const char *); msg = va_arg (ap, const char *);
} while (msg); } while (msg);
va_end (ap); va_end (ap);

View File

@ -0,0 +1,5 @@
#ifndef FUNC
#define FUNC __ieee754_acosl
#endif
#define float_type long double
#include <e_acos.c>

View File

@ -1,5 +1,5 @@
/* Definitions for BSD-style memory management. Ultrix 4 version. /* Definitions for BSD-style memory management. Ultrix 4 version.
Copyright (C) 1994, 1995 Free Software Foundation, Inc. Copyright (C) 1994, 1995, 1996 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or The GNU C Library is free software; you can redistribute it and/or
@ -79,6 +79,7 @@ int munmap __P ((__caddr_t __addr, size_t __len));
/* Change the memory protection of the region starting at ADDR and /* Change the memory protection of the region starting at ADDR and
extending LEN bytes to PROT. Returns 0 if successful, -1 for errors extending LEN bytes to PROT. Returns 0 if successful, -1 for errors
(and sets errno). */ (and sets errno). */
int __mprotect __P ((__caddr_t __addr, size_t __len, int __prot));
int mprotect __P ((__caddr_t __addr, size_t __len, int __prot)); int mprotect __P ((__caddr_t __addr, size_t __len, int __prot));
/* Ultrix 4 does not implement `msync' or `madvise'. */ /* Ultrix 4 does not implement `msync' or `madvise'. */

View File

@ -1,7 +1,44 @@
# On Linux, the default is to use libio instead of stdio. # Local configure fragment for sysdeps/unix/sysv/linux.
# On Linux, the default is to use libio instead of stdio.
test $stdio = default && stdio=libio test $stdio = default && stdio=libio
# Don't bother trying to generate any glue code to be compatible with the # Don't bother trying to generate any glue code to be compatible with the
# existing system library, because we are the only system library. # existing system library, because we are the only system library.
inhibit_glue=yes inhibit_glue=yes
echo $ac_n "checking installed Linux kernel header files""... $ac_c" 1>&6
if eval "test \"`echo '$''{'libc_cv_linux2'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
#line 16 "configure"
#include "confdefs.h"
#include <linux/version.h>
int main() { return 0; }
int t() {
#if LINUX_VERSION_CODE < (2 *65536+ 0 *256+ 0) /* 2.0.0 */
eat flaming death
#endif
; return 0; }
EOF
if { (eval echo configure:26: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
libc_cv_linux2='2.0 or later'
else
rm -rf conftest*
libc_cv_linux2='TOO OLD!'
fi
rm -f conftest*
fi
echo "$ac_t""$libc_cv_linux2" 1>&6
if test "$libc_cv_linux2" != '2.0 or later'; then
{ echo "configure: error: GNU libc requires kernel header files from Linux 2.0
or later to be installed before configuring. The kernel header files
are found usually in /usr/include/asm and /usr/include/linux; make sure
these directories use files from Linux 2.0 or later. This check uses
<linux/version.h>, so make sure that file was built correctly when
installing the kernel header files." 1>&2; exit 1; }
fi

View File

@ -0,0 +1,25 @@
sinclude(./aclocal.m4)dnl Autoconf lossage
GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
# Local configure fragment for sysdeps/unix/sysv/linux.
# On Linux, the default is to use libio instead of stdio.
test $stdio = default && stdio=libio
# Don't bother trying to generate any glue code to be compatible with the
# existing system library, because we are the only system library.
inhibit_glue=yes
AC_CACHE_CHECK(installed Linux kernel header files, libc_cv_linux2, [dnl
AC_TRY_COMPILE([#include <linux/version.h>],
[#if LINUX_VERSION_CODE < (2 *65536+ 0 *256+ 0) /* 2.0.0 */
eat flaming death
#endif],
libc_cv_linux2='2.0 or later', libc_cv_linux2='TOO OLD!')])
if test "$libc_cv_linux2" != '2.0 or later'; then
AC_MSG_ERROR([GNU libc requires kernel header files from Linux 2.0
or later to be installed before configuring. The kernel header files
are found usually in /usr/include/asm and /usr/include/linux; make sure
these directories use files from Linux 2.0 or later. This check uses
<linux/version.h>, so make sure that file was built correctly when
installing the kernel header files.])
fi