diff options
-rw-r--r-- | ChangeLog | 28 | ||||
-rw-r--r-- | Makerules | 32 | ||||
-rwxr-xr-x | configure | 13 | ||||
-rw-r--r-- | configure.in | 7 | ||||
-rw-r--r-- | elf/Makefile | 3 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/i386/setfsgid.c | 6 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/i386/setfsuid.c | 6 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/syscalls.list | 24 |
8 files changed, 82 insertions, 37 deletions
@@ -1,3 +1,31 @@ +2003-03-27 Roland McGrath <roland@redhat.com> + + * Makerules (check-abi) [$(enable-check-abi) = warn]: + Ignore exit status from diff. + * configure.in (enable_check_abi): Document possible value "warn". + Change default to no for now. + * configure: Regenerated. + + * sysdeps/unix/Makefile ($(objpfx)stub-syscalls.c): Emit stub_warning + macro calls and a #include <stub-tag.h> at the end. + * Makerules ($(objpfx)stubs): Tweak sed commands. + + * sysdeps/unix/sysv/linux/syscalls.list: Use - rather than EXTRA in + caller column for *xattr syscalls, since they are in sysdeps/generic. + + * sysdeps/unix/sysv/linux/i386/setfsuid.c: setfsgid -> setfsuid + * sysdeps/unix/sysv/linux/i386/setfsgid.c: setfsuid -> setfsgid + +2003-03-26 Roland McGrath <roland@redhat.com> + + * Makerules (check-abi-config): Use /thread instead of /tls when + use-thread and not just use-tls is set. + + * Makerules (update-abi): Put quotes around $(update-abi-config). + + * elf/Makefile (check-abi): Depend on check-abi-ld. + (update-abi): Depend on update-abi-ld. + 2003-03-26 GOTO Masanori <gotom@debian.or.jp> * sysdeps/unix/sysv/linux/i386/setfsuid.c: Use INTERNAL_SYSCALL and @@ -1190,15 +1190,23 @@ define check-abi LC_ALL=C \ $(AWK) -f $< -v 'config=$(check-abi-config)' \ $(filter %.abilist,$^) \ - | diff -pu0 - $(filter %.symlist,$^) + | { diff -pu0 - $(filter %.symlist,$^) $(check-abi-warn) ; } endef +ifeq ($(enable-check-abi),warn) +check-abi-warn = || echo '*** WARNING: $*.so failed ABI check' +endif ifeq ($(firstword $(sysd-sorted-done) f)$(firstword $(generating) f),tf) -include $(common-objpfx)tls.make -config-tls-yes := tls -config-tls-no := notls +config-tls := notls +ifeq ($(use-tls),yes) +config-tls := tls +endif +ifeq ($(use-thread),yes) +config-tls := thread +endif check-abi-config := \ - $(config-machine)-$(config-vendor)-$(config-os)/$(config-tls-$(use-thread)) + $(config-machine)-$(config-vendor)-$(config-os)/$(config-tls) endif update-abi-%: $(..)scripts/merge-abilist.awk $(..)abilist/%.abilist \ @@ -1213,7 +1221,7 @@ define update-abi endef else define update-abi -LC_ALL=C $(AWK) -v config=$(update-abi-config) -f $^ \ +LC_ALL=C $(AWK) -v config='$(update-abi-config)' -f $^ \ > $(..)abilist/$*.abilist.new @if cmp -s $(..)abilist/$*.abilist.new $(..)abilist/$*.abilist 2> /dev/null; \ then rm -f $(..)abilist/$*.abilist.new; \ @@ -1241,11 +1249,13 @@ update-abi: update-abi-libc common-generated += libc.symlist endif -ifeq ($(build-shared)$(enable-check-abi),yesyes) +ifeq ($(build-shared),yes) +ifneq ($(enable-check-abi),no) ifdef subdir tests: check-abi endif endif +endif endif @@ -1375,14 +1385,16 @@ ifdef objpfx .PHONY: stubs # The parent Makefile calls this target. stubs: $(objpfx)stubs endif -s = $(sysdep_dir)/generic $(objpfx)stubs: $(+depfiles) # Use /dev/null since `...` might expand to empty. - (s=`cd $s && $(PWD_P)`; \ + (s=`cd $(sysdep_dir) && $(PWD_P)`; \ $(patsubst %/,cd % &&,$(objpfx)) \ sed -n 's/^stub_warning *(\([^)]*\).*$$/#define __stub_\1/p' \ - `sed -n -e '\@ $s/[^ ]*\.c@{; s@^.* $s/\([^ ]*\.c\).*$$@'"$$s"'/\1@; h; }' \ - -e '/stub-tag\.h/{; g; p; }' \ + `sed -n -e 's@$(sysdep_dir)/@'"$$s"'/@g' \ + -e 's@\$$(common-objpfx)@$(..)@g' -e 's@\$$(objpfx)@@g' \ + -e '/: *[^ ]/{s@^.*: *\([^ ]*\) .*$$@\1@; h; }' \ + -e '/:$$/d' \ + -e '/stub-tag\.h/{; g; p; }' \ $(patsubst $(objpfx)%,%,$^) /dev/null` \ /dev/null) > $@T mv -f $@T $@ @@ -851,7 +851,8 @@ Optional Features: --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --disable-sanity-checks really do not use threads (should not be used except in special situations) [default=yes] - --disable-check-abi omit "make check-abi" from "make check" + --enable-check-abi do "make check-abi" in "make check" (no/warn/yes) + [default=no] --enable-shared build shared library [default=yes if GNU ld & ELF] --enable-profile build profiled library [default=yes] @@ -1486,7 +1487,7 @@ if test "${enable_check_abi+set}" = set; then enableval="$enable_check_abi" enable_check_abi=$enableval else - enable_check_abi=yes + enable_check_abi=no fi; static=yes @@ -5169,7 +5170,7 @@ if test "${libc_cv_asm_underscores+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat > conftest.$ac_ext <<EOF -#line 5172 "configure" +#line 5173 "configure" #include "confdefs.h" void underscore_test(void) { return; } @@ -5495,7 +5496,7 @@ if test "${libc_cv_gcc_dwarf2_unwind_info+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat > conftest.c <<EOF -#line 5498 "configure" +#line 5499 "configure" static char *__EH_FRAME_BEGIN__; _start () { @@ -5595,7 +5596,7 @@ if test "${libc_cv_gcc_builtin_expect+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat > conftest.c <<EOF -#line 5598 "configure" +#line 5599 "configure" int foo (int a) { a = __builtin_expect (a, 10); @@ -5663,7 +5664,7 @@ if test "${libc_cv_gcc_subtract_local_labels+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat > conftest.c <<EOF -#line 5666 "configure" +#line 5667 "configure" int foo (int a) { static const int ar[] = { &&l1 - &&l1, &&l2 - &&l1 }; diff --git a/configure.in b/configure.in index ee87699..1795a6a 100644 --- a/configure.in +++ b/configure.in @@ -115,10 +115,11 @@ AC_ARG_ENABLE([sanity-checks], AC_SUBST(enable_check_abi) AC_ARG_ENABLE([check-abi], - AC_HELP_STRING([--disable-check-abi], - [omit "make check-abi" from "make check"]), + AC_HELP_STRING([--enable-check-abi], + [do "make check-abi" in "make check" (no/warn/yes) + @<:@default=no@:>@]), [enable_check_abi=$enableval], - [enable_check_abi=yes]) + [enable_check_abi=no]) dnl Arguments to enable or disable building the static, shared, profiled, dnl and -fomit-frame-pointer libraries. diff --git a/elf/Makefile b/elf/Makefile index 7c3f0f1..52732ae 100644 --- a/elf/Makefile +++ b/elf/Makefile @@ -181,6 +181,9 @@ test-extras += $(modules-names) include ../Rules +check-abi: check-abi-ld +update-abi: update-abi-ld + ifeq (yes,$(build-shared)) # Make sure these things are built in the `make lib' pass so they can be used # to run programs during the `make others' pass. diff --git a/sysdeps/unix/sysv/linux/i386/setfsgid.c b/sysdeps/unix/sysv/linux/i386/setfsgid.c index e5bab90..dad61e2 100644 --- a/sysdeps/unix/sysv/linux/i386/setfsgid.c +++ b/sysdeps/unix/sysv/linux/i386/setfsgid.c @@ -45,14 +45,14 @@ setfsgid (gid_t gid) INTERNAL_SYSCALL_DECL (err); # if __ASSUME_32BITUIDS > 0 /* No error checking. */ - return INTERNAL_SYSCALL (setfsuid32, err, 1, uid); + return INTERNAL_SYSCALL (setfsgid32, err, 1, gid); # else # ifdef __NR_setfsgid32 if (__libc_missing_32bit_uids <= 0) { int result; - result = INTERNAL_SYSCALL (setfsuid32, err, 1, uid); + result = INTERNAL_SYSCALL (setfsgid32, err, 1, gid); if (! INTERNAL_SYSCALL_ERROR_P (result, err) || INTERNAL_SYSCALL_ERRNO (result, err) != ENOSYS) return result; @@ -67,7 +67,7 @@ setfsgid (gid_t gid) } /* No error checking. */ - return INTERNAL_SYSCALL (setfsuid, err, 1, uid); + return INTERNAL_SYSCALL (setfsgid, err, 1, gid); # endif } #endif diff --git a/sysdeps/unix/sysv/linux/i386/setfsuid.c b/sysdeps/unix/sysv/linux/i386/setfsuid.c index 9d425c0..f3d66d6 100644 --- a/sysdeps/unix/sysv/linux/i386/setfsuid.c +++ b/sysdeps/unix/sysv/linux/i386/setfsuid.c @@ -45,14 +45,14 @@ setfsuid (uid_t uid) INTERNAL_SYSCALL_DECL (err); # if __ASSUME_32BITUIDS > 0 /* No error checking. */ - return INTERNAL_SYSCALL (setfsgid32, err, 1, gid); + return INTERNAL_SYSCALL (setfsuid32, err, 1, uid); # else # ifdef __NR_setfsuid32 if (__libc_missing_32bit_uids <= 0) { int result; - result = INTERNAL_SYSCALL (setfsgid32, err, 1, gid); + result = INTERNAL_SYSCALL (setfsuid32, err, 1, uid); if (! INTERNAL_SYSCALL_ERROR_P (result, err) || INTERNAL_SYSCALL_ERRNO (result, err) != ENOSYS) return result; @@ -68,7 +68,7 @@ setfsuid (uid_t uid) } /* No error checking. */ - return INTERNAL_SYSCALL (setfsgid, err, 1, gid); + return INTERNAL_SYSCALL (setfsuid, err, 1, uid); # endif } #endif diff --git a/sysdeps/unix/sysv/linux/syscalls.list b/sysdeps/unix/sysv/linux/syscalls.list index f499db7..018add2 100644 --- a/sysdeps/unix/sysv/linux/syscalls.list +++ b/sysdeps/unix/sysv/linux/syscalls.list @@ -77,15 +77,15 @@ wait4 - wait4 i:iWiP __wait4 wait4 chown - chown i:sii __libc_chown __chown chown fcntl - fcntl Ci:iiF __libc_fcntl __fcntl fcntl -setxattr EXTRA setxattr i:sspii setxattr -lsetxattr EXTRA lsetxattr i:sspii lsetxattr -fsetxattr EXTRA fsetxattr i:ispii fsetxattr -getxattr EXTRA getxattr i:sspi getxattr -lgetxattr EXTRA lgetxattr i:sspi lgetxattr -fgetxattr EXTRA fgetxattr i:ispi fgetxattr -listxattr EXTRA listxattr i:ssi listxattr -llistxattr EXTRA llistxattr i:ssi llistxattr -flistxattr EXTRA flistxattr i:isi flistxattr -removexattr EXTRA removexattr i:ss removexattr -lremovexattr EXTRA lremovexattr i:ss lremovexattr -fremovexattr EXTRA fremovexattr i:is fremovexattr +setxattr - setxattr i:sspii setxattr +lsetxattr - lsetxattr i:sspii lsetxattr +fsetxattr - fsetxattr i:ispii fsetxattr +getxattr - getxattr i:sspi getxattr +lgetxattr - lgetxattr i:sspi lgetxattr +fgetxattr - fgetxattr i:ispi fgetxattr +listxattr - listxattr i:ssi listxattr +llistxattr - llistxattr i:ssi llistxattr +flistxattr - flistxattr i:isi flistxattr +removexattr - removexattr i:ss removexattr +lremovexattr - lremovexattr i:ss lremovexattr +fremovexattr - fremovexattr i:is fremovexattr |