Remove common-objdir-compile and related sysdeps/unix/Makefile code.

This commit is contained in:
Joseph Myers 2012-03-19 16:23:26 +00:00
parent bd37f2ee31
commit 83d1aec8fc
9 changed files with 62 additions and 674 deletions

View File

@ -1,3 +1,64 @@
2012-03-19 Joseph Myers <joseph@codesourcery.com>
* Makerules (common-objdir-compile): Remove.
* sysdeps/unix/Makefile (config-generated): Do not add
$(unix-generated) to variable.
[generic bits/local_lim.h] (mk-local_lim-CFLAGS): Remove variable.
[generic bits/local_lim.h] ($(common-objpfx)bits/local_lim.h):
Remove rule.
[generic bits/local_lim.h] ($(common-objpfx)mk-local_lim):
Likewise.
[generic bits/local_lim.h] (before-compile): Do not append to
variable.
[generic bits/local_lim.h] (common-generated): Likewise.
[generic sys/param.h] (before-compile): Do not append to variable.
[generic sys/param.h] ($(common-objpfx)sys/param.h): Remove rule.
[generic sys/param.h] ($(common-objpfx)param.h.c): Likewise.
[generic sys/param.h] ($(common-objpfx)param.h.dep): Likewise.
[generic sys/param.h] ($(common-objpfx)param.h.dep): Do not
include.
[generic sys/param.h] (sys/param.h-includes): Remove variable.
[generic sys/param.h] (sys/param.h-includes): Remove rule.
[generic sys/param.h] ($(addprefix
$(common-objpfx),$(sys/param.h-includes))): Likewise.
[generic sys/param.h] (common-generated): Do not append to
variable.
[generic sys/param.h] (sysdep_headers): Likewise.
[generic bits/errno.h] (before-compile): Do not append to
variable.
[generic bits/errno.h] ($(common-objpfx)bits/errno.h): Remove
rule.
[generic bits/errno.h] ($(common-objpfx)make-errnos): Likewise.
[generic bits/errno.h] ($(common-objpfx)make-errnos.c): Likewise.
[generic bits/errno.h] ($(common-objpfx)errnos): Likewise.
[generic bits/errno.h] (common-generated): Do not append to
variable.
[generic bits/ioctls.h] (before-compile): Do not append to
variable.
[generic bits/ioctls.h] ($(common-objpfx)bits/ioctls.h): Remove
rule.
[generic bits/ioctls.h] (ioctl-includes): Remove variable.
[generic bits/ioctls.h] (make-ioctls-CFLAGS): Likewise.
[generic bits/ioctls.h] ($(common-objpfx)make-ioctls): Remove
rule.
[generic bits/ioctls.h] ($(common-objpfx)make-ioctls.c): Likewise.
[generic bits/ioctls.h] (bits_termios.h): Remove variable.
[generic bits/ioctls.h] ($(common-objpfx)ioctls): Remove rule.
[generic bits/ioctls.h] (common-generated): Do not append to
variable.
[generic sys/syscall.h] (syscall.h): Remove variable.
[generic sys/syscall.h] ($(common-objpfx)sys/syscall.h): Remove
rule.
[generic sys/syscall.h] (before-compile): Do not append to
variable.
[generic sys/syscall.h] (common-generated): Likewise.
* sysdeps/unix/errnos-tmpl.c: Remove file.
* sysdeps/unix/errnos.awk: Likewise.
* sysdeps/unix/ioctls-tmpl.c: Likewise.
* sysdeps/unix/ioctls.awk: Likewise.
* sysdeps/unix/mk-local_lim.c: Likewise.
* sysdeps/unix/snarf-ioctls: Likewise.
2012-03-19 Richard Henderson <rth@twiddle.net>
* sysdeps/i386/fpu/fenv_private.h: New file.

View File

@ -1122,14 +1122,6 @@ $(BUILD_CC) $($(basename $(<F))-CFLAGS) $(ALL_BUILD_CFLAGS) \
$(firstword $(filter /%,$< $(shell pwd)/$<)) -o $(@F)
endef
# Command to compile $< in $(common-objdir) using the native libraries.
# We must cd to $(objdir) anyway so that $(..)config.h is valid.
define common-objdir-compile
$(patsubst %/,cd % &&,$(objpfx)) \
$(BUILD_CC) $($(basename $(<F))-CFLAGS) $(ALL_BUILD_CFLAGS) \
$(firstword $(filter /%,$< $(shell pwd)/$<)) -o $(..)$(@F)
endef
# We always want to use configuration definitions.
# Note that this is only used for commands running in $(objpfx).
ALL_BUILD_CFLAGS = $(BUILD_CFLAGS) -include $(..)config.h

View File

@ -1,5 +1,4 @@
# Copyright (C) 1991,1992,1993,1994,1995,1996,1997,1998,1999,2003,2006,2008,2009
# Free Software Foundation, Inc.
# Copyright (C) 1991-2012 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
@ -16,243 +15,6 @@
# License along with the GNU C Library; if not, see
# <http://www.gnu.org/licenses/>.
# The unix-specific configure fragment writes `unix-generated' in config.make.
config-generated := $(config-generated) $(unix-generated)
ifeq (,$(filter-out $(sysdep_dir)/generic/ $(common-objpfx),\
$(dir $(firstword $(wildcard $(+sysdep_dirs:%=%/bits/local_lim.h))))))
ifneq (,$(wildcard $(sysincludedir)/sys/param.h))
mk-local_lim-CFLAGS += -DHAVE_SYS_PARAM_H
endif
ifneq (,$(wildcard $(sysincludedir)/sys/limits.h))
mk-local_lim-CFLAGS += -DHAVE_SYS_LIMITS_H
endif
ifneq (,$(wildcard $(sysincludedir)/limits.h))
mk-local_lim-CFLAGS += -DHAVE_LIMITS_H
endif
$(common-objpfx)bits/local_lim.h: $(common-objpfx)mk-local_lim
$(dir $<)$(notdir $<) > $@-t
mv -f $@-t $@
$(common-objpfx)mk-local_lim: $(sysdep_dir)/unix/mk-local_lim.c
$(common-objdir-compile)
before-compile += $(common-objpfx)bits/local_lim.h
common-generated += bits/local_lim.h mk-local_lim
endif
ifeq (,$(filter-out $(sysdep_dir)/generic/ $(common-objpfx),\
$(patsubst %/sys/param.h,%/,\
$(firstword $(wildcard $(+sysdep_dirs:%=%/sys/param.h))))))
before-compile := $(before-compile) $(common-objpfx)sys/param.h
$(common-objpfx)sys/param.h: $(sysincludedir)/sys/param.h
$(make-target-directory)
(echo '#ifndef _SYS_PARAM_H'; \
echo '#define _SYS_PARAM_H 1'; \
echo '#include <endian.h>'; \
$(AWK) < $< \
'/^#define[ ]*NULL/ { print "#ifndef NULL"; \
print $$0; \
print "#endif"; \
was_null = 1 } \
{ if (!was_null) print $$0; \
was_null = 0 }'; \
echo '#ifndef MAXHOSTNAMELEN'; \
echo '#define MAXHOSTNAMELEN 64 /* XXX */'; \
echo '#endif /* No MAXHOSTNAMELEN. */'; \
echo '#endif /* sys/param.h */') > $@-tmp
mv $@-tmp $@
$(common-objpfx)param.h.c: $(sysincludedir)/sys/param.h
rm -f $@
cp $< $@
$(common-objpfx)param.h.dep: $(common-objpfx)param.h.c \
$(sysdep_dir)/unix/Makefile
$(+mkdep) -I$(sysincludedir) $< \
| sed > $@-t \
-e 's@$(sysincludedir)/sys/param.h@@' \
-e 's@^.*:@@' \
-e 's@$<@@g' \
-e 's@$(sysincludedir)/*@@g' \
-e 's@\\$$@@' \
-e 's@^@sys/param.h-includes := $$(sys/param.h-includes) @'
mv $@-t $@
# Get the generated definition of sys/param.h-includes.
ifndef no_deps
-include $(common-objpfx)param.h.dep
endif
# Don't preempt our own headers.
sys/param.h-includes := \
$(filter-out $(patsubst $(..)%,%,\
$(wildcard $(addprefix $(..),\
$(sys/param.h-includes)))),\
$(sys/param.h-includes))
.PHONY: sys/param.h-includes
sys/param.h-includes: $(addprefix $(common-objpfx),$(sys/param.h-includes))
ifdef sys/param.h-includes
# Copy the system files to $(common-objdir).
$(addprefix $(common-objpfx),$(sys/param.h-includes)): $(common-objpfx)%: \
$(sysincludedir)/%
$(make-target-directory)
# Some of these files sometimes contain conflicting declarations for htons,
# ntohs, etc. They also often contain definitions of *_ENDIAN and
# BYTE_ORDER, which we define ourselves in <endian.h>.
sed -e '/[ ]*[hn]to[nh][sl][ (]*/d' \
-e '/^#define[ ]*[A-Z]*_ENDIAN/d' \
-e '/^#define[ ]*BYTE_ORDER/d' \
$< > $@-t
mv $@-t $@
endif
common-generated := $(common-generated) \
sys/param.h $(sys/param.h-includes) param.h.c param.h.dep
ifeq ($(subdir),misc)
# Install system headers the system sys/param.h uses.
sysdep_headers := $(sysdep_headers) $(sys/param.h-includes)
endif # misc
endif # No sysdep sys/param.h.
ifeq (,$(filter-out $(sysdep_dir)/generic/ $(common-objpfx),\
$(dir $(firstword $(wildcard $(+sysdep_dirs:%=%/bits/errno.h))))))
# These need to exist before any compiling is done,
# so cpp doesn't instead find the generic versions.
before-compile := $(before-compile) $(common-objpfx)bits/errno.h
$(common-objpfx)bits/errno.h: $(common-objpfx)make-errnos
$(dir $<)$(notdir $<) > $@-tmp
mv $@-tmp $@
$(common-objpfx)make-errnos: $(common-objpfx)make-errnos.c
$(common-objdir-compile)
$(common-objpfx)make-errnos.c: $(sysdep_dir)/unix/errnos-tmpl.c \
$(sysdep_dir)/unix/errnos.awk $(common-objpfx)errnos
$(AWK) -f $(word 2,$^) errnos="`tr '\012' ' ' < $(word 3,$^)`" $< > $@T
mv $@T $@
$(common-objpfx)errnos: $(wildcard $(sysincludedir)/errno.h \
$(sysincludedir)/sys/errno.h)
sed -n 's/^#define[ ]*\(E[A-Z0-9][A-Z0-9]*\)[ ].*$$/\1/p' \
$^ > $@-tmp
mv $@-tmp $@
common-generated := $(common-generated) \
errnos.h errnos make-errnos make-errnos.c
endif
ifeq (,$(filter-out $(sysdep_dir)/generic/ $(common-objpfx),\
$(dir $(firstword $(wildcard $(+sysdep_dirs:%=%/bits/ioctls.h))))))
before-compile := $(before-compile) $(common-objpfx)bits/ioctls.h
$(common-objpfx)bits/ioctls.h: $(common-objpfx)make-ioctls
$(dir $<)$(notdir $<) > $@-tmp
mv $@-tmp $@
ioctl-includes := sys/termios.h net/nit.h
ioctl-includes := $(wildcard $(addprefix $(sysincludedir)/,$(ioctl-includes)))
make-ioctls-CFLAGS := $(subst /,_,$(subst .,_,\
$(patsubst $(sysincludedir)/%,-DHAVE_%,\
$(ioctl-includes))))
$(common-objpfx)make-ioctls: $(common-objpfx)make-ioctls.c
$(common-objdir-compile)
$(common-objpfx)make-ioctls.c: $(sysdep_dir)/unix/ioctls-tmpl.c \
$(sysdep_dir)/unix/ioctls.awk \
$(common-objpfx)ioctls
$(AWK) -f $(word 2,$^) requests="`cat $(word 3,$^)`" $< > $@T
mv $@T $@
bits_termios.h := $(firstword $(wildcard $(+sysdep_dirs:%=%/bits/termios.h)))
ifeq ($(bits_termios.h),$(sysdep_dir)/generic/bits/termios.h)
bits_termios.h := # Ignore the generic version.
endif
# If there is a system-specific <bits/termios.h> file, we want to omit
# all the symbols it defines from ioctls. Otherwise, both
# <bits/ioctls.h> and <bits/termios.h> would define them. The
# system-specific <bits/termios.h> file presumably defines them with
# the same values as we find from the system's headers. We also want
# to omit from ioctls the symbols defined in our own
# <sys/ttydefaults.h>, to avoid multiple definition conflicts. We use
# snarf-ioctls on these files to find what symbols we want to omit.
# fgrep -xv gives all lines which do not match in their entirety;
# without -x, CSTOP's presence elided TIOCSTOP.
$(common-objpfx)ioctls: $(sysdep_dir)/unix/snarf-ioctls \
$(sysincludedir)/sys/ioctl.h $(ioctl-includes)
$(dir $<)$(notdir $<) $(filter-out $<,$^) \
| fgrep -xv "`($(dir $<)$(notdir $<) $(bits_termios.h) \
$(..)sysdeps/generic/sys/ttydefaults.h; \
echo NULL) \
| sort | uniq`" \
| sort | uniq | tr '\012' ' ' > $@-tmp
mv $@-tmp $@
common-generated := $(common-generated) \
bits/ioctls.h ioctls make-ioctls make-ioctls.c
endif
ifeq (,$(filter-out $(sysdep_dir)/generic/ $(common-objpfx),\
$(dir $(firstword $(wildcard $(+sysdep_dirs:%=%/sys/syscall.h))))))
# The syscall code assumes a file <sys/syscall.h> that defines macros
# `SYS_call' for syscall `call'. Variations on this I have seen include:
# it's in <sys/syscall.h>;
# it's in <sys.s>;
# it defines `CALL' instead of `SYS_call'.
# Irix has a <syscall.h> which is not what we want, so check for <sys.s> first.
# Find a file that might have these. NOTE: This list of possibilities is
# repeated in sysdeps/unix/configure and the two should be kept in sync.
syscall.h := $(firstword $(wildcard $(addprefix $(sysincludedir)/, \
sys.s sys/sys.s \
sys.S sys/sys.S \
syscall.h sys/syscall.h \
)))
ifdef syscall.h
# Transmogrify any of several formats of the file into the one we want.
$(common-objpfx)sys/syscall.h: $(syscall.h)
$(make-target-directory)
tr '[A-Z]' '[a-z]' < $< | \
sed -e 's/[ ]sys_/ /' \
-e 's/^#define[ ]*\([a-z0-9_]*\)[ ]*/#define SYS_\1 /' \
-e 's/[ ]sys_/ SYS_/' \
-e 's/SYS_syscall_basenum/syscall_basenum/g' \
-e 's/SYS_kerncall_basenum/kerncall_basenum/g' \
-e 's/SYS_sysvoffset/sysvoffset/g' \
-e '/^#/!d' \
-e '/^#ident/d' \
-e 's-\(/\*[^*]*\)$$-\1\*/-' \
> $@-tmp
mv $@-tmp $@
before-compile += $(common-objpfx)sys/syscall.h
common-generated += sys/syscall.h
endif
endif
ifndef inhibit-unix-syscalls
# Sysdep dirs unix/... can contain a file syscalls.list,

View File

@ -1,98 +0,0 @@
/* Copyright (C) 1991, 1993, 1997 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 Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 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
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
#include <errno.h>
static char iferrno[] = "#ifdef _ERRNO_H";
static char endiferrno[] = "#endif /* <errno.h> included. */";
static char ifEmath[] = "#if !defined(__Emath_defined) && \
(defined(_ERRNO_H) || defined(__need_Emath))";
static char endifEmath[] = "#endif /* Emath not defined and <errno.h> \
included or need Emath. */";
static int biggest_value = 0;
static int done_ENOSYS = 0;
static int done_ERANGE = 0, done_EDOM = 0;
static void
DO(name, value)
char *name;
int value;
{
int is_ERANGE = !done_ERANGE && !strcmp(name, "ERANGE");
int is_EDOM = !done_EDOM && !strcmp(name, "EDOM");
int is_Emath = is_ERANGE || is_EDOM;
if (is_Emath)
{
puts(endiferrno);
puts(ifEmath);
}
if (!strcmp (name, "EWOULDBLOCK"))
{
puts ("#define EWOULDBLOCK EAGAIN /* Translated in glibc. */");
name = "EWOULDBLOCK_sys /* Value actually returned by kernel. */";
}
printf ("#define %s %d\n", name, value);
if (is_Emath)
{
puts(endifEmath);
puts(iferrno);
}
if (value > biggest_value)
biggest_value = value;
if (is_ERANGE)
done_ERANGE = 1;
else if (is_EDOM)
done_EDOM = 1;
else if (!done_ENOSYS && !strcmp(name, "ENOSYS"))
done_ENOSYS = 1;
}
int
main()
{
puts(iferrno);
ERRNOS;
if (!done_EDOM || !done_ERANGE)
{
puts(endiferrno);
puts(ifEmath);
if (!done_EDOM)
printf("#define EDOM %d\n", ++biggest_value);
if (!done_ERANGE)
printf("#define ERANGE %d\n", ++biggest_value);
puts(endifEmath);
}
if (!done_ENOSYS)
printf("#define ENOSYS %d\n", ++biggest_value);
puts(endiferrno);
puts("#undef __need_Emath");
puts("#ifndef __Emath_defined\n#define __Emath_defined 1\n#endif");
exit(0);
}

View File

@ -1,12 +0,0 @@
BEGIN { special = 0 }
/ERRNOS/ { nerrnos = split(errnos, errs)
for (i = 1; i <= nerrnos; ++i)
# Some systems define errno codes inside undefined #ifdefs,
# and then never actually use them.
printf "#ifdef %s\n DO(\"%s\", %s);\n#endif\n", \
errs[i], errs[i], errs[i]
special = 1 }
{ if (special == 0) print $0; special = 0 }

View File

@ -1,134 +0,0 @@
/* On SVR4, this #define is necessary to make <sys/ioctl.h> define
many of the ioctls. */
#define BSD_COMP
#include <sys/types.h>
#include <sys/param.h>
/* On SunOS 4.1, <sys/ioctl.h> and <sys/termios.h> define some symbols
with different values, but <sys/termios.h> defines some ioctl symbols
not in <sys/ioctl.h>, so we need it. Our <sys/ioctl.h> should define
them with the values from Sun's <sys/ioctl.h>, not <sys/termios.h>.
So we include <sys/termios.h> and let <sys/ioctl.h> redefine things.
This produces some spurious warnings. */
#ifdef HAVE_sys_termios_h
#include <sys/termios.h>
#endif
/* This causes <sys/ioctl.h> to define some necessary data structure. */
#ifdef sony_news
#define KANJI
#endif
#include <sys/ioctl.h>
#ifdef SIOCGIFCONF
#include <sys/socket.h>
#include <sys/time.h>
#include <net/if.h>
#include <net/route.h>
#if defined(SIOCGARP) && !defined(ARPOP_REQUEST)
#include <net/if_arp.h>
#endif
#ifdef SIOCGNIT
#ifdef HAVE_net_nit_h
#include <net/nit.h>
#else /* No net/nit.h. */
#undef SIOCGNIT
#undef SIOCSNIT
#endif /* net/nit.h. */
#endif /* SIOCGNIT. */
#endif /* SIOCGIFCONF. */
/* These exist on Sequents. */
#ifdef SMIOSTATS
#include <sec/sec.h>
#include <sec/sm.h>
#endif
#ifdef SMIOGETREBOOT0
#include <i386/cfg.h>
#endif
#ifdef ZIOCBCMD
#include <zdc/zdc.h>
#endif
/* These exist under Ultrix, but I figured there may be others. */
#ifdef DIOCGETPT
#include <ufs/fs.h> /* for DIOC* */
#endif
#ifdef DEVGETGEOM
#include <sys/devio.h>
#endif
#ifdef ultrix
/* Ultrix has a conditional include that brings these in; we have to force
their inclusion when we actually compile them. */
#undef TCGETA
#undef TCSETA
#undef TCSETAW
#undef TCSETAF
#undef TCGETP
#undef TCSANOW
#undef TCSADRAIN
#undef TCSAFLUSH
#ifdef ELSETPID
#include <sys/un.h> /* get sockaddr_un for elcsd.h */
#include <elcsd.h>
#endif
#ifdef DKIOCDOP
#include <sys/dkio.h>
#endif
/* Couldn't find the header where the structures used by these are
defined; it looks like an unbundled LAT package or something. */
#undef LIOCSOL
#undef LIOCRES
#undef LIOCCMD
#undef LIOCINI
#undef LIOCTTYI
#undef LIOCCONN
/* struct mtop hasn't been in sys/mtio.h since 4.1 */
#undef MTIOCTOP
#undef MTIOCGET
#endif
#if defined(__osf__) && defined(__alpha__)
#include <sys/ioctl_compat.h> /* To get TIOCGETP, etc. */
#include <alpha/pt.h> /* for DIOC* */
#include <sys/mtio.h> /* for MTIOC* */
/* The binlog_getstatus structure doesn't seem to be defined. */
#undef BINLOG_GETSTATUS
/* Can't find `struct ifdata' anywhere. */
#undef SIOCMANREQ
#undef SIOCGETEVENTS
/* OSF/1 smells an awful lot like Ultrix. */
#undef TCGETA
#undef TCSETA
#undef TCSETAF
#undef TCSETAW
/* This macro looks screwed in sys/devio.h. */
#undef DEV_DISKPART
/* This is in sys/dkio.h, but we don't need it. */
#undef DKIOCACC
#undef DKIOCDOP
#undef DKIOCEXCL
#undef DKIOCGET
#undef DKIOCHDR
/* Introduced by OSF/1 2.0. */
#undef FIOPIPESTAT
#undef SIOCSRREQR
#undef SIOCSRREQW
#undef SRVC_REQUEST
#endif
#define DEFINE(name, value) \
printf("#define %s 0x%.8x\n", (name), (value))
int
main()
{
REQUESTS
exit(0);
return 0;
}

View File

@ -1,10 +0,0 @@
BEGIN { special = 0 }
/REQUESTS/ { nreqs = split(requests, reqs)
for (i = 1; i <= nreqs; ++i)
printf "#ifdef\t%s\n DEFINE(\"%s\", %s);\n#endif\n", \
reqs[i], reqs[i], reqs[i]
special = 1 }
{ if (special == 0) print $0; special = 0 }

View File

@ -1,125 +0,0 @@
/* Copyright (C) 1993, 1996, 1997 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 Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 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
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <sys/types.h>
#ifdef HAVE_SYS_PARAM_H
#include <sys/param.h>
#endif
#ifdef HAVE_LIMITS_H
#include <limits.h>
#endif
#ifdef HAVE_SYS_LIMITS_H
#include <sys/limits.h>
#endif
/* Generate bits/local_lim.h from the values defined in the system's
headers. */
struct param
{
char *name;
int value;
};
static struct param params[] =
{
#if !defined (ARG_MAX) && defined (NCARGS)
#define ARG_MAX NCARGS
#endif
#ifdef ARG_MAX
{ "ARG_MAX", ARG_MAX },
#endif
#if !defined (CHILD_MAX) && defined (MAXUPRC)
#define CHILD_MAX MAXUPRC
#endif
#ifdef CHILD_MAX
{ "CHILD_MAX", CHILD_MAX },
#endif
#if !defined (LINK_MAX) && defined (MAXLINK)
#define LINK_MAX MAXLINK
#endif
#ifdef LINK_MAX
{ "LINK_MAX", LINK_MAX },
#endif
#if !defined (OPEN_MAX) && defined (NOFILE)
#define OPEN_MAX NOFILE
#endif
#ifdef OPEN_MAX
{ "OPEN_MAX", OPEN_MAX },
#endif
#if !defined (MAX_CANON) && defined (CANBSIZ)
#define MAX_CANON CANBSIZ
#endif
#ifdef MAX_CANON
{ "MAX_CANON", MAX_CANON },
#endif
#if !defined (NAME_MAX) && defined (MAXNAMLEN)
#define NAME_MAX MAXNAMLEN
#endif
#ifndef NAME_MAX
#define NAME_MAX 255 /* XXX ? */
#endif
{ "NAME_MAX", NAME_MAX },
#if !defined (PATH_MAX) && defined (MAXPATHLEN)
#define PATH_MAX MAXPATHLEN
#endif
#ifdef PATH_MAX
{ "PATH_MAX", PATH_MAX },
#endif
#if !defined (SYMLOOP_MAX) && defined (MAXSYMLINKS)
#define SYMLOOP_MAX MAXSYMLINKS
#endif
#ifdef SYMLOOP_MAX
{ "SYMLOOP_MAX", SYMLOOP_MAX },
#endif
{ NULL, 0 }
};
int
main()
{
extern char *ctime ();
extern time_t time ();
time_t now = time ((time_t *) NULL);
register struct param *p;
if (! params[0].name)
/* We have no information to give, so let the caller know. */
exit (1);
printf ("\
/* Implementation-specific limits.\n\
Generated at %.24s. */\n\n", ctime (&now));
for (p = params; p->name != NULL; ++p)
printf ("#define %s %d\n", p->name, p->value);
exit (0);
}

View File

@ -1,48 +0,0 @@
#!/bin/sh
# Copyright (C) 1991, 1992, 1995, 1997 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 Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 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
# Lesser General Public License for more details.
# You should have received a copy of the GNU Lesser General Public
# License along with the GNU C Library; if not, see
# <http://www.gnu.org/licenses/>.
sysincludedir=${sysincludedir-/usr/include}
if [ ! "$snarfexclude" ]; then
# Filter out some headers which cause trouble.
# Reportedly a bug in sunos4.1.2's sed makes this lose if
# the two cmds are in a single sed invocation.
snarfexclude="`echo !${sysincludedir}/sys/param.h! \
!${sysincludedir}/sys/time.h! \
!${sysincludedir}/sys/types.h! \
| sed 's,/,\\\\/,g' \
| sed 's,!\\([^!]*\\)!,-e /\\1/d,g'`"
fi
for file in $*; do
sed -n 's/^#define[ ]*\([A-Z][A-Z0-9_]*\)[ ][ ]*[^ ].*$/\1/p' \
< $file
snarfexclude="$snarfexclude \
`echo $file | sed -e 's,/,\\\\/,g' -e 's,^.*$,-e /&/d,'`"
export snarfexclude
included="`sed -n < $file \
-e 's,^#include[ ]*<\(.*\)>.*$,'${sysincludedir}'/\1,p'\
| sed $snarfexclude`"
if [ "$included" ]; then
$0 $included
fi
done
exit 0