Split sys/param.h out into common file and sysdeps bits/param.h file.
authorRoland McGrath <roland@hack.frob.com>
Fri, 17 Aug 2012 16:55:17 +0000 (09:55 -0700)
committerRoland McGrath <roland@hack.frob.com>
Fri, 17 Aug 2012 16:55:17 +0000 (09:55 -0700)
ChangeLog
bits/param.h [new file with mode: 0644]
include/sys/param.h [new file with mode: 0644]
misc/Makefile
misc/sys/param.h [moved from sysdeps/generic/sys/param.h with 52% similarity]
sysdeps/mach/hurd/bits/param.h [moved from sysdeps/mach/hurd/sys/param.h with 73% similarity]
sysdeps/unix/sysv/linux/bits/param.h [new file with mode: 0644]
sysdeps/unix/sysv/linux/sys/param.h [deleted file]

index 672409ef0b918043aca7ea7b8fd78e7b384bfe17..f050559d83d9be6edffa8069ad1d0ead49ec7635 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,15 @@
 2012-08-17  Roland McGrath  <roland@hack.frob.com>
 
+       * bits/param.h: New file.
+       * misc/sys/param.h: New file.
+       * include/sys/param.h: New file.
+       * misc/Makefile (headers): Add bits/param.h.
+       * sysdeps/generic/sys/param.h: File removed.
+       * sysdeps/unix/sysv/linux/bits/param.h: New file.
+       * sysdeps/unix/sysv/linux/sys/param.h: File removed.
+       * sysdeps/mach/hurd/bits/param.h: New file.
+       * sysdeps/mach/hurd/sys/param.h: New file.
+
        * elf/dl-close.c (_dl_close_worker): Add a cast and a comment to the
        last change.
 
diff --git a/bits/param.h b/bits/param.h
new file mode 100644 (file)
index 0000000..8a2bc71
--- /dev/null
@@ -0,0 +1,33 @@
+/* Old-style Unix parameters and limits.  Stub version.
+   Copyright (C) 1995-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
+   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/>.  */
+
+#ifndef _SYS_PARAM_H
+# error "Never use <bits/param.h> directly; include <sys/param.h> instead."
+#endif
+
+/* This header is expected to define a few particular macros.
+
+   The traditional BSD macros that correspond directly to POSIX <limits.h>
+   macros don't need to be defined here if <bits/local_lim.h> defines the
+   POSIX limit macro, as the common <sys/param.h> code will define each
+   traditional name to its POSIX name if available.
+
+   This file should define at least:
+
+        EXEC_PAGESIZE
+*/
diff --git a/include/sys/param.h b/include/sys/param.h
new file mode 100644 (file)
index 0000000..7a0cfb1
--- /dev/null
@@ -0,0 +1 @@
+#include <misc/sys/param.h>
index d35654cc3f4a5f0f22ac39c6322153fc77413226..e5e9b9f1527007ff74acc2eecc192f1b7b449a4c 100644 (file)
@@ -25,7 +25,8 @@ headers       := sys/uio.h bits/uio.h sys/ioctl.h bits/ioctls.h bits/ioctl-types.h \
           sys/ptrace.h sys/file.h sys/dir.h sys/cdefs.h \
           ar.h a.out.h libgen.h stab.h bits/stab.def sgtty.h \
           ttyent.h paths.h sys/reboot.h \
-          sys/mman.h sys/param.h fstab.h mntent.h search.h err.h error.h \
+          sys/mman.h sys/param.h bits/param.h \
+          fstab.h mntent.h search.h err.h error.h \
           sys/queue.h sysexits.h syscall.h sys/syscall.h sys/swap.h \
           sys/select.h ustat.h sys/ustat.h bits/ustat.h sys/sysinfo.h \
           regexp.h bits/select.h bits/mman.h sys/xattr.h \
similarity index 52%
rename from sysdeps/generic/sys/param.h
rename to misc/sys/param.h
index c829e9767af5a907add449eefeb1e88b553e35c6..0eafd680da9a9aa49b66766e0b08c1b2b107d55c 100644 (file)
@@ -1,5 +1,5 @@
-/* Compatibility header for old-style Unix parameters and limits.  Stub version.
-   Copyright (C) 2012 Free Software Foundation, Inc.
+/* Compatibility header for old-style Unix parameters and limits.
+   Copyright (C) 1995-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
    <http://www.gnu.org/licenses/>.  */
 
 #ifndef _SYS_PARAM_H
-
 #define _SYS_PARAM_H    1
-#include <features.h>
 
 #define __need_NULL
 #include <stddef.h>
 
 #include <sys/types.h>
-#include <errno.h>
-#include <signal.h>
-#include <endian.h>
 #include <limits.h>
+#include <endian.h>                     /* Define BYTE_ORDER et al.  */
+#include <signal.h>                     /* Define NSIG.  */
+
+/* This file defines some things in system-specific ways.  */
+#include <bits/param.h>
+
 
+/* BSD names for some <limits.h> values.  */
 
-/* BSD names for some <limits.h> values.  We do not define the BSD names
-   for the values which are not statically limited, such as NOFILE.  */
+#define NBBY           CHAR_BIT
 
-#define NBBY            CHAR_BIT
-#ifdef NGROUPS_MAX
-# define NGROUPS         NGROUPS_MAX
+#if !defined NGROUPS && defined NGROUPS_MAX
+# define NGROUPS       NGROUPS_MAX
 #endif
-#ifdef SYMLOOP_MAX
-# define MAXSYMLINKS     SYMLOOP_MAX
+#if !defined MAXSYMLINKS && defined SYMLOOP_MAX
+# define MAXSYMLINKS   SYMLOOP_MAX
 #endif
-#define CANBSIZ         MAX_CANON /* XXX ? */
-
+#if !defined CANBSIZ && defined MAX_CANON
+# define CANBSIZ       MAX_CANON
+#endif
+#if !defined MAXPATHLEN && defined PATH_MAX
+# define MAXPATHLEN    PATH_MAX
+#endif
+#if !defined NOFILE && defined OPEN_MAX
+# define NOFILE                OPEN_MAX
+#endif
+#ifndef NCARGS
+# ifdef ARG_MAX
+#  define NCARGS       ARG_MAX
+# else
 /* ARG_MAX is unlimited, but we define NCARGS for BSD programs that want to
    compare against some fixed limit.  */
-#define NCARGS          INT_MAX
+# define NCARGS                INT_MAX
+# endif
+#endif
 
 
 /* Magical constants.  */
-#define NOGROUP 65535           /* Marker for empty group set member.  */
-#define NODEV   ((dev_t) -1)    /* Non-existent device.  */
+#ifndef NOGROUP
+# define NOGROUP       65535     /* Marker for empty group set member.  */
+#endif
+#ifndef NODEV
+# define NODEV         ((dev_t) -1)    /* Non-existent device.  */
+#endif
+
+
+/* Unit of `st_blocks'.  */
+#define DEV_BSIZE       512
 
 
 /* Bit map related macros.  */
 
 /* Macros for counting and rounding.  */
 #ifndef howmany
-# define howmany(x, y)  (((x)+((y)-1))/(y))
+# define howmany(x, y)  (((x) + ((y) - 1)) / (y))
+#endif
+#ifdef __GNUC__
+# define roundup(x, y)  (__builtin_constant_p (y) && powerof2 (y)             \
+                         ? (((x) + (y) - 1) & ~((y) - 1))                     \
+                         : ((((x) + ((y) - 1)) / (y)) * (y)))
+#else
+# define roundup(x, y)  ((((x) + ((y) - 1)) / (y)) * (y))
 #endif
-#define roundup(x, y)   ((((x)+((y)-1))/(y))*(y))
-#define powerof2(x)     ((((x)-1)&(x))==0)
+#define powerof2(x)     ((((x) - 1) & (x)) == 0)
 
 /* Macros for min/max.  */
 #define MIN(a,b) (((a)<(b))?(a):(b))
 #define MAX(a,b) (((a)>(b))?(a):(b))
 
 
-/* Unit of `st_blocks'.  */
-#define DEV_BSIZE       512
-
-
-#endif   /* sys/param.h */
+#endif  /* sys/param.h */
similarity index 73%
rename from sysdeps/mach/hurd/sys/param.h
rename to sysdeps/mach/hurd/bits/param.h
index e58d5175bdbc62d85ad44c194c4f9c937a8afa5d..d52c1edcb6f2bf954989dd0d6bef70f1904add18 100644 (file)
@@ -1,4 +1,5 @@
-/* Copyright (C) 1993-2012 Free Software Foundation, Inc.
+/* Old-style Unix parameters and limits.  Hurd version.
+   Copyright (C) 1993-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
    License along with the GNU C Library; if not, see
    <http://www.gnu.org/licenses/>.  */
 
+#ifndef _SYS_PARAM_H
+# error "Never use <bits/param.h> directly; include <sys/param.h> instead."
+#endif
+
 /* This file is deprecated and is provided only for compatibility with
    Unix systems.  It is unwise to include this file on programs which
    are intended only for GNU systems.
  */
 
 
-#ifndef        _SYS_PARAM_H
-
-#define        _SYS_PARAM_H    1
-#include <features.h>
-
-#define __need_NULL
-#include <stddef.h>
-
-#include <sys/types.h>
-#include <errno.h>
-#include <signal.h>
-#include <endian.h>
-#include <limits.h>
-#ifdef notyet
-# include <ufs/param.h>
-#endif
-
-
 /* What versions of BSD we are compatible with.  */
 #define        BSD     199306          /* System version (year & month). */
 #define BSD4_3 1
 /* BSD names for some <limits.h> values.  We do not define the BSD names
    for the values which are not statically limited, such as NOFILE.  */
 
-#define        NBBY            CHAR_BIT
-#define        NGROUPS         NGROUPS_MAX
-#define        CANBSIZ         MAX_CANON /* XXX ? */
-
-/* ARG_MAX is unlimited, but we define NCARGS for BSD programs that want to
-   compare against some fixed limit.  */
-#define        NCARGS          INT_MAX
 
 /* There is nothing quite equivalent in GNU to Unix "mounts", but there is
    no limit on the number of simultaneously attached filesystems.  */
 #define NMOUNT         INT_MAX
 
 
-/* Magical constants.  */
-#define        NOGROUP 65535           /* Marker for empty group set member.  */
-#define        NODEV   ((dev_t) -1)    /* Non-existent device.  */
-
-
-/* Bit map related macros.  */
-#define        setbit(a,i)     ((a)[(i)/NBBY] |= 1<<((i)%NBBY))
-#define        clrbit(a,i)     ((a)[(i)/NBBY] &= ~(1<<((i)%NBBY)))
-#define        isset(a,i)      ((a)[(i)/NBBY] & (1<<((i)%NBBY)))
-#define        isclr(a,i)      (((a)[(i)/NBBY] & (1<<((i)%NBBY))) == 0)
-
-/* Macros for counting and rounding.  */
-#ifndef howmany
-# define howmany(x, y) (((x)+((y)-1))/(y))
-#endif
-#define        roundup(x, y)   ((((x)+((y)-1))/(y))*(y))
-#define powerof2(x)    ((((x)-1)&(x))==0)
-
-/* Macros for min/max.  */
-#define        MIN(a,b) (((a)<(b))?(a):(b))
-#define        MAX(a,b) (((a)>(b))?(a):(b))
-
-
-/* Unit of `st_blocks'.  */
-#define DEV_BSIZE       512
-
-
 /* Scale factor for scaled integers used to count %cpu time and load avgs.
 
    The number of CPU `tick's that map to a unique `%age' can be expressed
diff --git a/sysdeps/unix/sysv/linux/bits/param.h b/sysdeps/unix/sysv/linux/bits/param.h
new file mode 100644 (file)
index 0000000..36ca088
--- /dev/null
@@ -0,0 +1,42 @@
+/* Old-style Unix parameters and limits.  Linux version.
+   Copyright (C) 1995-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
+   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/>.  */
+
+#ifndef _SYS_PARAM_H
+# error "Never use <bits/param.h> directly; include <sys/param.h> instead."
+#endif
+
+#ifndef ARG_MAX
+# define __undef_ARG_MAX
+#endif
+
+#include <linux/limits.h>
+#include <linux/param.h>
+
+/* The kernel headers define ARG_MAX.  The value is wrong, though.  */
+#ifdef __undef_ARG_MAX
+# undef ARG_MAX
+# undef __undef_ARG_MAX
+#endif
+
+#define        MAXSYMLINKS     20
+
+/* The following are not really correct but it is a value we used for a
+   long time and which seems to be usable.  People should not use NOFILE
+   and NCARGS anyway.  */
+#define NOFILE         256
+#define        NCARGS          131072
diff --git a/sysdeps/unix/sysv/linux/sys/param.h b/sysdeps/unix/sysv/linux/sys/param.h
deleted file mode 100644 (file)
index c419b86..0000000
+++ /dev/null
@@ -1,82 +0,0 @@
-/* Copyright (C) 1995-1997,2000,2001,2003,2008,2011
-   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/>.  */
-
-#ifndef _SYS_PARAM_H
-#define _SYS_PARAM_H   1
-
-#ifndef ARG_MAX
-# define __undef_ARG_MAX
-#endif
-
-#include <limits.h>
-#include <linux/limits.h>
-#include <linux/param.h>
-
-/* The kernel headers defines ARG_MAX.  The value is wrong, though.  */
-#ifdef __undef_ARG_MAX
-# undef ARG_MAX
-# undef __undef_ARG_MAX
-#endif
-
-/* BSD names for some <limits.h> values.  */
-
-#define        NBBY            CHAR_BIT
-#ifndef        NGROUPS
-# define NGROUPS       NGROUPS_MAX
-#endif
-#define        MAXSYMLINKS     20
-#define        CANBSIZ         MAX_CANON
-#define MAXPATHLEN     PATH_MAX
-/* The following are not really correct but it is a value we used for a
-   long time and which seems to be usable.  People should not use NOFILE
-   and NCARGS anyway.  */
-#define NOFILE         256
-#define        NCARGS          131072
-
-
-#include <sys/types.h>
-
-/* Bit map related macros.  */
-#define        setbit(a,i)     ((a)[(i)/NBBY] |= 1<<((i)%NBBY))
-#define        clrbit(a,i)     ((a)[(i)/NBBY] &= ~(1<<((i)%NBBY)))
-#define        isset(a,i)      ((a)[(i)/NBBY] & (1<<((i)%NBBY)))
-#define        isclr(a,i)      (((a)[(i)/NBBY] & (1<<((i)%NBBY))) == 0)
-
-/* Macros for counting and rounding.  */
-#ifndef howmany
-# define howmany(x, y) (((x) + ((y) - 1)) / (y))
-#endif
-#ifdef __GNUC__
-# define roundup(x, y) (__builtin_constant_p (y) && powerof2 (y)             \
-                        ? (((x) + (y) - 1) & ~((y) - 1))                     \
-                        : ((((x) + ((y) - 1)) / (y)) * (y)))
-#else
-# define roundup(x, y) ((((x) + ((y) - 1)) / (y)) * (y))
-#endif
-#define powerof2(x)    ((((x) - 1) & (x)) == 0)
-
-/* Macros for min/max.  */
-#define        MIN(a,b) (((a)<(b))?(a):(b))
-#define        MAX(a,b) (((a)>(b))?(a):(b))
-
-
-/* Unit of `st_blocks'.  */
-#define DEV_BSIZE       512
-
-
-#endif /* sys/param.h */