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

View File

@ -109,7 +109,7 @@ _dl_sysdep_start_cleanup (void)
int
_dl_sysdep_open_zero_fill (void)
{
return open ("/dev/zero", O_RDONLY);
return __open ("/dev/zero", O_RDONLY);
}
#include <stdarg.h>
@ -123,7 +123,7 @@ _dl_sysdep_fatal (const char *msg, ...)
do
{
size_t len = strlen (msg);
write (STDERR_FILENO, msg, len);
__write (STDERR_FILENO, msg, len);
msg = va_arg (ap, const char *);
} while (msg);
va_end (ap);
@ -141,7 +141,7 @@ _dl_sysdep_message (const char *msg, ...)
do
{
size_t len = strlen (msg);
write (STDOUT_FILENO, msg, len);
__write (STDOUT_FILENO, msg, len);
msg = va_arg (ap, const char *);
} while (msg);
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.
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.
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
extending LEN bytes to PROT. Returns 0 if successful, -1 for errors
(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));
/* 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
# 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
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