This is the mail archive of the
glibc-cvs@sourceware.org
mailing list for the glibc project.
GNU C Library master sources branch, master, updated. glibc-2.14-585-g154bfc1
- From: jsm28 at sourceware dot org
- To: glibc-cvs at sourceware dot org
- Date: 22 Dec 2011 18:23:49 -0000
- Subject: GNU C Library master sources branch, master, updated. glibc-2.14-585-g154bfc1
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".
The branch, master has been updated
via 154bfc16225aaa3d3104e758eed2a17297131599 (commit)
from 16c6f99208229d7222fd26499749e56137322a3c (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=154bfc16225aaa3d3104e758eed2a17297131599
commit 154bfc16225aaa3d3104e758eed2a17297131599
Author: Joseph Myers <joseph@codesourcery.com>
Date: Thu Dec 22 18:22:50 2011 +0000
Support building bits/syscall.h for any number of subarch variants.
diff --git a/ChangeLog b/ChangeLog
index a9cdf76..f74e0a5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,31 @@
+2011-12-22 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/unix/sysv/linux/Makefile (syscall-list-variants)
+ (syscall-list-default-options, syscall-list-default-condition)
+ (syscall-list-includes): Define.
+ ($(objpfx)syscall-%.h $(objpfx)syscall-%.d): Support arbitrary
+ list of ABIs and options and #if conditions for each ABI. Do not
+ handle common syscalls between ABIs specially.
+ * sysdeps/unix/sysv/linux/powerpc/Makefile (64bit-predefine):
+ Remove.
+ (syscall-list-variants, syscall-list-32bit-options)
+ (syscall-list-32bit-condition, syscall-list-64bit-options)
+ (syscall-list-64bit-condition): Define.
+ * sysdeps/unix/sysv/linux/s390/Makefile (64bit-predefine): Remove.
+ (syscall-list-variants, syscall-list-32bit-options)
+ (syscall-list-32bit-condition, syscall-list-64bit-options)
+ (syscall-list-64bit-condition): Define.
+ * sysdeps/unix/sysv/linux/sparc/Makefile (64bit-predefine):
+ Remove.
+ (syscall-list-variants, syscall-list-32bit-options)
+ (syscall-list-32bit-condition, syscall-list-64bit-options)
+ (syscall-list-64bit-condition): Define.
+ * sysdeps/unix/sysv/linux/x86_64/Makefile (64bit-predefine):
+ Remove.
+ (syscall-list-variants, syscall-list-32bit-options)
+ (syscall-list-32bit-condition, syscall-list-64bit-options)
+ (syscall-list-64bit-condition): Define.
+
2011-12-22 Ulrich Drepper <drepper@gmail.com>
* locale/iso-639.def: Add brx entry.
diff --git a/sysdeps/unix/sysv/linux/Makefile b/sysdeps/unix/sysv/linux/Makefile
index 3032026..e684b16 100644
--- a/sysdeps/unix/sysv/linux/Makefile
+++ b/sysdeps/unix/sysv/linux/Makefile
@@ -39,8 +39,27 @@ install-others += $(inst_includedir)/bits/syscall.h
tests += tst-clone
# Generate the list of SYS_* macros for the system calls (__NR_* macros).
-# For bi-arch platforms, the CPU/Makefile defines {32,64}bit-predefine and
-# we generate a file that uses <bits/wordsize.h>.
+
+# If there is more than one syscall list for different architecture
+# variants, the CPU/Makefile defines syscall-list-variants to be a
+# list of names for those variants (e.g. 32bit 64bit), and, for each
+# variant, defines syscall-list-$(variant)-options to be compiler
+# options to cause <asm/unistd.h> to define the desired list of
+# syscalls and syscall-list-$(variant)-condition to be the condition
+# for those options to use in a C #if condition.
+# syscall-list-includes may be defined to a list of headers to include
+# in the generated header, if the default does not suffice.
+
+ifndef syscall-list-variants
+syscall-list-variants := default
+syscall-list-default-options :=
+syscall-list-default-condition :=
+endif
+
+ifndef syscall-list-includes
+syscall-list-includes := bits/wordsize.h
+endif
+
$(objpfx)syscall-%.h $(objpfx)syscall-%.d: ../sysdeps/unix/sysv/linux/sys/syscall.h
$(make-target-directory)
{ \
@@ -50,37 +69,30 @@ $(objpfx)syscall-%.h $(objpfx)syscall-%.d: ../sysdeps/unix/sysv/linux/sys/syscal
echo '# error "Never use <bits/syscall.h> directly; include <sys/syscall.h> instead."'; \
echo '#endif'; \
echo ''; \
- $(CC) -E -MD -MP -MF $(@:.h=.d)-t1 -MT '$(@:.d=.h) $(@:.h=.d)' \
- -x c $(sysincludes) $< $(addprefix -U,$(64bit-predefine)) \
- $(addprefix -D,$(32bit-predefine)) -D_LIBC -dM | \
- sed -n 's@^#define __NR_\([^ ]*\) .*$$@#define SYS_\1 __NR_\1@p' | \
- LC_ALL=C sort > $(@:.d=.h).new32; \
- $(CC) -E -MD -MP -MF $(@:.h=.d)-t2 -MT '$(@:.d=.h) $(@:.h=.d)' \
- -x c $(sysincludes) $< $(addprefix -U,$(32bit-predefine)) \
- $(addprefix -D,$(64bit-predefine)) -D_LIBC -dM | \
+ $(foreach h,$(syscall-list-includes), echo '#include <$(h)>';) \
+ echo ''; \
+ $(foreach v,$(syscall-list-variants),\
+ $(CC) -E -MD -MP -MF $(@:.h=.d)-t$(v) -MT '$(@:.d=.h) $(@:.h=.d)' \
+ -x c $(sysincludes) $< $(syscall-list-$(v)-options) \
+ -D_LIBC -dM | \
sed -n 's@^#define __NR_\([^ ]*\) .*$$@#define SYS_\1 __NR_\1@p' | \
- LC_ALL=C sort > $(@:.d=.h).new64; \
- if cmp -s $(@:.d=.h).new32 $(@:.d=.h).new64; then \
- cat $(@:.d=.h).new32; \
- else \
- echo '#include <bits/wordsize.h>'; \
- echo ''; \
- LC_ALL=C comm -12 $(@:.d=.h).new32 $(@:.d=.h).new64; \
- echo '#if __WORDSIZE == 64'; \
- LC_ALL=C comm -13 $(@:.d=.h).new32 $(@:.d=.h).new64; \
- echo '#else'; \
- LC_ALL=C comm -23 $(@:.d=.h).new32 $(@:.d=.h).new64; \
- echo '#endif'; \
- fi; \
- rm -f $(@:.d=.h).new32 $(@:.d=.h).new64; \
+ LC_ALL=C sort > $(@:.d=.h).new$(v); \
+ $(if $(syscall-list-$(v)-condition),\
+ echo '#if $(syscall-list-$(v)-condition)';) \
+ cat $(@:.d=.h).new$(v); \
+ $(if $(syscall-list-$(v)-condition),echo '#endif';) \
+ rm -f $(@:.d=.h).new$(v); \
+ ) \
} > $(@:.d=.h).new
mv -f $(@:.d=.h).new $(@:.d=.h)
ifneq (,$(objpfx))
- sed $(sed-remove-objpfx) $(@:.h=.d)-t1 $(@:.h=.d)-t2 > $(@:.h=.d)-t3
+ sed $(sed-remove-objpfx) \
+ $(foreach v,$(syscall-list-variants),$(@:.h=.d)-t$(v)) > $(@:.h=.d)-t3
else
- cat $(@:.h=.d)-t1 $(@:.h=.d)-t2 > $(@:.h=.d)-t3
+ cat $(foreach v,$(syscall-list-variants),$(@:.h=.d)-t$(v)) \
+ > $(@:.h=.d)-t3
endif
- rm -f $(@:.h=.d)-t1 $(@:.h=.d)-t2
+ rm -f $(foreach v,$(syscall-list-variants),$(@:.h=.d)-t$(v))
mv -f $(@:.h=.d)-t3 $(@:.h=.d)
$(inst_includedir)/bits/syscall.h: $(objpfx)syscall-list.h $(+force)
diff --git a/sysdeps/unix/sysv/linux/powerpc/Makefile b/sysdeps/unix/sysv/linux/powerpc/Makefile
index d1281cf..55311a4 100644
--- a/sysdeps/unix/sysv/linux/powerpc/Makefile
+++ b/sysdeps/unix/sysv/linux/powerpc/Makefile
@@ -1,4 +1,9 @@
-64bit-predefine = __powerpc64__
+syscall-list-variants := 32bit 64bit
+syscall-list-32bit-options := -U__powerpc64__
+syscall-list-32bit-condition := __WORDSIZE == 32
+syscall-list-64bit-options := -D__powerpc64__
+syscall-list-64bit-condition := __WORDSIZE == 64
+
ifeq ($(subdir),rt)
librt-routines += rt-sysdep
endif
diff --git a/sysdeps/unix/sysv/linux/s390/Makefile b/sysdeps/unix/sysv/linux/s390/Makefile
index 72eae68..fb20fb0 100644
--- a/sysdeps/unix/sysv/linux/s390/Makefile
+++ b/sysdeps/unix/sysv/linux/s390/Makefile
@@ -1,4 +1,9 @@
-64bit-predefine = __s390x__
+syscall-list-variants := 32bit 64bit
+syscall-list-32bit-options := -U__s390x__
+syscall-list-32bit-condition := __WORDSIZE == 32
+syscall-list-64bit-options := -D__s390x__
+syscall-list-64bit-condition := __WORDSIZE == 64
+
ifeq ($(subdir),rt)
librt-routines += rt-sysdep
endif
diff --git a/sysdeps/unix/sysv/linux/sparc/Makefile b/sysdeps/unix/sysv/linux/sparc/Makefile
index 9cb2a63..96bf0bb 100644
--- a/sysdeps/unix/sysv/linux/sparc/Makefile
+++ b/sysdeps/unix/sysv/linux/sparc/Makefile
@@ -1,4 +1,8 @@
-64bit-predefine = __sparc_v9__ __arch64__
+syscall-list-variants := 32bit 64bit
+syscall-list-32bit-options := -U__sparc_v9__ -U__arch64__
+syscall-list-32bit-condition := __WORDSIZE == 32
+syscall-list-64bit-options := -D__sparc_v9__ -D__arch64__
+syscall-list-64bit-condition := __WORDSIZE == 64
ifeq ($(subdir),rt)
librt-routines += rt-sysdep
diff --git a/sysdeps/unix/sysv/linux/x86_64/Makefile b/sysdeps/unix/sysv/linux/x86_64/Makefile
index 6e2741a..9c9e615 100644
--- a/sysdeps/unix/sysv/linux/x86_64/Makefile
+++ b/sysdeps/unix/sysv/linux/x86_64/Makefile
@@ -1,5 +1,8 @@
-32bit-predefine = __i386__
-64bit-predefine = __x86_64__
+syscall-list-variants := 32bit 64bit
+syscall-list-32bit-options := -D__i386__ -U__x86_64__
+syscall-list-32bit-condition := __WORDSIZE == 32
+syscall-list-64bit-options := -U__i386__ -D__x86_64__
+syscall-list-64bit-condition := __WORDSIZE == 64
ifeq ($(subdir),misc)
sysdep_routines += ioperm iopl
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 28 +++++++++++++
sysdeps/unix/sysv/linux/Makefile | 66 +++++++++++++++++------------
sysdeps/unix/sysv/linux/powerpc/Makefile | 7 +++-
sysdeps/unix/sysv/linux/s390/Makefile | 7 +++-
sysdeps/unix/sysv/linux/sparc/Makefile | 6 ++-
sysdeps/unix/sysv/linux/x86_64/Makefile | 7 ++-
6 files changed, 89 insertions(+), 32 deletions(-)
hooks/post-receive
--
GNU C Library master sources