diff options
| author | Joseph Myers <joseph@codesourcery.com> | 2012-07-25 21:19:13 +0000 |
|---|---|---|
| committer | Joseph Myers <joseph@codesourcery.com> | 2012-07-25 21:19:13 +0000 |
| commit | 89b4b02f421d2a6d24eb632d9c6977dbe786e6ee (patch) | |
| tree | cfb4d8f06f24847cb5214a0bb2bc476085415706 | |
| parent | 842a39cd1ad9391af7a63a19c87f66a730e027a9 (diff) | |
| download | glibc-89b4b02f421d2a6d24eb632d9c6977dbe786e6ee.tar.xz glibc-89b4b02f421d2a6d24eb632d9c6977dbe786e6ee.zip | |
Remove pre-2.4.21 Linux kernel support.
23 files changed, 185 insertions, 516 deletions
@@ -1,3 +1,95 @@ +2012-07-25 Joseph Myers <joseph@codesourcery.com> + + [BZ #13717] + * sysdeps/unix/sysv/linux/configure.in (arch_minimum_kernel): + Change to 2.4.21 where previously 2.4.1. + * sysdeps/unix/sysv/linux/configure: Regenerated. + * sysdeps/unix/sysv/linux/kernel-features.h [(__powerpc__ || + __sh__) && !__powerpc64__] (__ASSUME_FCNTL64): Do not condition on + Linux kernel version. + (__ASSUME_STD_AUXV): Remove. + [__powerpc__] (__ASSUME_VFORK_SYSCALL): Do not condition on Linux + kernel version. + [__powerpc__ && !__powerpc64] (__ASSUME_MMAP2_SYSCALL): Likewise. + (__ASSUME_NEW_PRCTL_SYSCALL): Remove. + (__ASSUME_FIXED_CLONE_SYSCALL): Likewise. + (__ASSUME_NEW_RT_SIGRETURN_SYSCALL): Likewise. + (__ASSUME_NETLINK_SUPPORT): Likewise. + * nscd/gai.c [NEED_NETLINK && __ASSUME_NETLINK_SUPPORT == 0] + (__no_netlink_support): Remove conditional definition. + * sysdeps/unix/sysv/linux/check_pf.c (__no_netlink_support): + Remove. + (__check_pf) [!__ASSUME_NETLINK_SUPPORT]: Remove conditional code. + [__ASSUME_NETLINK_SUPPORT]: Make code unconditional. + * sysdeps/unix/sysv/linux/if_index.c [!__ASSUME_NETLINK_SUPPORT] + (if_nameindex_ioctl): Remove. + (if_nameindex_netlink): Do not handle __no_netlink_support. + (if_nameindex) [!__ASSUME_NETLINK_SUPPORT]: Remove conditional + code. + * sysdeps/unix/sysv/linux/ifaddrs.c [!__ASSUME_NETLINK_SUPPORT]: + Remove conditional code. + (__netlink_open) [!__ASSUME_NETLINK_SUPPORT]: Remove conditional + code. + (getifaddrs_internal) [__ASSUME_NETLINK_SUPPORT]: Make code + unconditional. + [!__ASSUME_NETLINK_SUPPORT]: Remove conditional code. + [__ASSUME_NETLINK_SUPPORT] (freeifaddrs): Make code unconditional. + * sysdeps/unix/sysv/linux/netlinkaccess.h (__no_netlink_support): + Remove. + * sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c + [!__ASSUME_STD_AUXV]: Remove conditional code. + * sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S (__clone) + [!__ASSUME_FIXED_CLONE_SYSCALL]: Remove conditional code. + [__ASSUME_FIXED_CLONE_SYSCALL]: Make code unconditional. + * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/fe_mask.c + [!__ASSUME_NEW_PRCTL_SYSCALL] (fe_mask_handler): Remove. + (__fe_mask_env) [!__ASSUME_NEW_PRCTL_SYSCALL]: Remove conditional + code. + [__ASSUME_NEW_PRCTL_SYSCALL]: Make code unconditional. + * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/fe_nomask.c + [!__ASSUME_NEW_PRCTL_SYSCALL] (fe_nomask_handler): Remove. + (__fe_nomask_env) [!__ASSUME_NEW_PRCTL_SYSCALL]: Remove + conditional code. + [__ASSUME_NEW_PRCTL_SYSCALL]: Make code unconditional. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/fe_mask.c + (__fe_mask_env) [!__ASSUME_NEW_PRCTL_SYSCALL]: Remove conditional + code. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/fe_nomask.c + (__fe_nomask_env) [!__ASSUME_NEW_PRCTL_SYSCALL]: Remove + conditional code. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/getcontext.S + (__novec_getcontext) [__ASSUME_NEW_RT_SIGRETURN_SYSCALL]: Make + code unconditional. + (__novec_getcontext) [!__ASSUME_NEW_RT_SIGRETURN_SYSCALL]: Remove + conditional code. + (__getcontext) [__ASSUME_NEW_RT_SIGRETURN_SYSCALL]: Make code + unconditional. + (__getcontext) [!__ASSUME_NEW_RT_SIGRETURN_SYSCALL]: Remove + conditional code. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/makecontext.S + (__makecontext) [__ASSUME_NEW_RT_SIGRETURN_SYSCALL]: Make code + unconditional. + (__makecontext) [!__ASSUME_NEW_RT_SIGRETURN_SYSCALL]: Remove + conditional code. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/setcontext.S + (__novec_setcontext) [__ASSUME_NEW_RT_SIGRETURN_SYSCALL]: Make + code unconditional. + (__novec_setcontext) [!__ASSUME_NEW_RT_SIGRETURN_SYSCALL]: Remove + conditional code. + (__setcontext) [__ASSUME_NEW_RT_SIGRETURN_SYSCALL]: Make code + unconditional. + (__setcontext) [!__ASSUME_NEW_RT_SIGRETURN_SYSCALL]: Remove + conditional code. + * sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S + (__novec_swapcontext) [__ASSUME_NEW_RT_SIGRETURN_SYSCALL]: Make + code unconditional. + (__novec_swapcontext) [!__ASSUME_NEW_RT_SIGRETURN_SYSCALL]: Remove + conditional code. + (__swapcontext) [__ASSUME_NEW_RT_SIGRETURN_SYSCALL]: Make code + unconditional. + (__swapcontext) [!__ASSUME_NEW_RT_SIGRETURN_SYSCALL]: Remove + conditional code. + 2012-07-25 Andreas Schwab <schwab@linux-m68k.org> * sysdeps/unix/sysv/linux/i386/accept4.S: Remove pseudo_end label. diff --git a/nscd/gai.c b/nscd/gai.c index 2df7ea7487..1c6527cf0c 100644 --- a/nscd/gai.c +++ b/nscd/gai.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2004, 2005, 2006, 2007 Free Software Foundation, Inc. +/* Copyright (C) 2004-2012 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@cygnus.com>, 2004. @@ -43,7 +43,3 @@ /* Some variables normally defined in libc. */ service_user *__nss_hosts_database; - -#if defined NEED_NETLINK && __ASSUME_NETLINK_SUPPORT == 0 -int __no_netlink_support attribute_hidden; -#endif diff --git a/ports/ChangeLog.arm b/ports/ChangeLog.arm index 3da39269fc..b921a769c5 100644 --- a/ports/ChangeLog.arm +++ b/ports/ChangeLog.arm @@ -1,3 +1,8 @@ +2012-07-25 Joseph Myers <joseph@codesourcery.com> + + * sysdeps/unix/sysv/linux/arm/kernel-features.h + (__ASSUME_FCNTL64): Define unconditionally. + 2012-07-25 Florian Weimer <fweimer@redhat.com> * sysdeps/unix/sysv/linux/arm/nptl/libc.abilist: Add diff --git a/ports/ChangeLog.m68k b/ports/ChangeLog.m68k index 7ae6f4139f..f26c052e59 100644 --- a/ports/ChangeLog.m68k +++ b/ports/ChangeLog.m68k @@ -1,3 +1,11 @@ +2012-07-25 Joseph Myers <joseph@codesourcery.com> + + * sysdeps/unix/sysv/linux/m68k/kernel-features.h + (__ASSUME_MMAP2_SYSCALL): Define unconditionally. + (__ASSUME_STAT64_SYSCALL): Likewise. + (__ASSUME_FCNTL64): Likewise. + (__ASSUME_VFORK_SYSCALL): Likewise. + 2012-07-25 Florian Weimer <fweimer@redhat.com> * sysdeps/unix/sysv/linux/m68k/coldfire/nptl/libc.abilist: diff --git a/ports/sysdeps/unix/sysv/linux/arm/kernel-features.h b/ports/sysdeps/unix/sysv/linux/arm/kernel-features.h index 90c59efead..9092df7192 100644 --- a/ports/sysdeps/unix/sysv/linux/arm/kernel-features.h +++ b/ports/sysdeps/unix/sysv/linux/arm/kernel-features.h @@ -28,9 +28,7 @@ #define __ASSUME_STAT64_SYSCALL 1 /* Arm got fcntl64 in 2.4.4. */ -#if __LINUX_KERNEL_VERSION >= 132100 -# define __ASSUME_FCNTL64 1 -#endif +#define __ASSUME_FCNTL64 1 /* The vfork syscall on arm was definitely available in 2.4. */ #define __ASSUME_VFORK_SYSCALL 1 diff --git a/ports/sysdeps/unix/sysv/linux/m68k/kernel-features.h b/ports/sysdeps/unix/sysv/linux/m68k/kernel-features.h index c12be9e07c..3b0b441aa4 100644 --- a/ports/sysdeps/unix/sysv/linux/m68k/kernel-features.h +++ b/ports/sysdeps/unix/sysv/linux/m68k/kernel-features.h @@ -18,12 +18,10 @@ <http://www.gnu.org/licenses/>. */ /* These features were surely available with 2.4.12. */ -#if __LINUX_KERNEL_VERSION >= 132108 -# define __ASSUME_MMAP2_SYSCALL 1 -# define __ASSUME_STAT64_SYSCALL 1 -# define __ASSUME_FCNTL64 1 -# define __ASSUME_VFORK_SYSCALL 1 -#endif +#define __ASSUME_MMAP2_SYSCALL 1 +#define __ASSUME_STAT64_SYSCALL 1 +#define __ASSUME_FCNTL64 1 +#define __ASSUME_VFORK_SYSCALL 1 /* Many syscalls were added in 2.6.10 for m68k. */ #if __LINUX_KERNEL_VERSION >= 132618 diff --git a/sysdeps/unix/sysv/linux/check_pf.c b/sysdeps/unix/sysv/linux/check_pf.c index 793d27db4e..950498acd4 100644 --- a/sysdeps/unix/sysv/linux/check_pf.c +++ b/sysdeps/unix/sysv/linux/check_pf.c @@ -1,5 +1,5 @@ /* Determine protocol families for which interfaces exist. Linux version. - Copyright (C) 2003, 2006-2008, 2010, 2011 Free Software Foundation, Inc. + Copyright (C) 2003-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 @@ -289,16 +289,6 @@ out_fail: } -/* We don't know if we have NETLINK support compiled into our - Kernel. */ -#if __ASSUME_NETLINK_SUPPORT == 0 -/* Define in ifaddrs.h. */ -extern int __no_netlink_support attribute_hidden; -#else -# define __no_netlink_support 0 -#endif - - void attribute_hidden __check_pf (bool *seen_ipv4, bool *seen_ipv6, @@ -307,12 +297,10 @@ __check_pf (bool *seen_ipv4, bool *seen_ipv6, *in6ai = NULL; *in6ailen = 0; - if (! __no_netlink_support) - { - struct cached_data *olddata = NULL; - struct cached_data *data = NULL; + struct cached_data *olddata = NULL; + struct cached_data *data = NULL; - __libc_lock_lock (lock); + __libc_lock_lock (lock); #ifdef IS_IN_nscd # define cache_valid() nl_timestamp != 0 && cache->timestamp == nl_timestamp @@ -321,90 +309,59 @@ __check_pf (bool *seen_ipv4, bool *seen_ipv6, ({ uint32_t val = __nscd_get_nl_timestamp (); \ val != 0 && cache->timestamp == val; }) #endif - if (cache != NULL && cache_valid ()) - { - data = cache; - atomic_increment (&cache->usecnt); - } - else - { - int fd = __socket (PF_NETLINK, SOCK_RAW, NETLINK_ROUTE); - - if (__builtin_expect (fd >= 0, 1)) - { - struct sockaddr_nl nladdr; - memset (&nladdr, '\0', sizeof (nladdr)); - nladdr.nl_family = AF_NETLINK; + if (cache != NULL && cache_valid ()) + { + data = cache; + atomic_increment (&cache->usecnt); + } + else + { + int fd = __socket (PF_NETLINK, SOCK_RAW, NETLINK_ROUTE); - socklen_t addr_len = sizeof (nladdr); + if (__builtin_expect (fd >= 0, 1)) + { + struct sockaddr_nl nladdr; + memset (&nladdr, '\0', sizeof (nladdr)); + nladdr.nl_family = AF_NETLINK; - if(__bind (fd, (struct sockaddr *) &nladdr, sizeof (nladdr)) == 0 - && __getsockname (fd, (struct sockaddr *) &nladdr, - &addr_len) == 0) - data = make_request (fd, nladdr.nl_pid); + socklen_t addr_len = sizeof (nladdr); - close_not_cancel_no_status (fd); - } + if (__bind (fd, (struct sockaddr *) &nladdr, sizeof (nladdr)) == 0 + && __getsockname (fd, (struct sockaddr *) &nladdr, + &addr_len) == 0) + data = make_request (fd, nladdr.nl_pid); - if (data != NULL) - { - olddata = cache; - cache = data; - } + close_not_cancel_no_status (fd); } - __libc_lock_unlock (lock); - if (data != NULL) { - /* It worked. */ - *seen_ipv4 = data->seen_ipv4; - *seen_ipv6 = data->seen_ipv6; - *in6ailen = data->in6ailen; - *in6ai = data->in6ai; - - if (olddata != NULL && olddata->usecnt > 0 - && atomic_add_zero (&olddata->usecnt, -1)) - free (olddata); - - return; + olddata = cache; + cache = data; } - -#if __ASSUME_NETLINK_SUPPORT == 0 - /* Remember that there is no netlink support. */ - __no_netlink_support = 1; -#else - /* We cannot determine what interfaces are available. Be - pessimistic. */ - *seen_ipv4 = true; - *seen_ipv6 = true; -#endif } -#if __ASSUME_NETLINK_SUPPORT == 0 - /* No netlink. Get the interface list via getifaddrs. */ - struct ifaddrs *ifa = NULL; - if (getifaddrs (&ifa) != 0) + __libc_lock_unlock (lock); + + if (data != NULL) { - /* We cannot determine what interfaces are available. Be - pessimistic. */ - *seen_ipv4 = true; - *seen_ipv6 = true; + /* It worked. */ + *seen_ipv4 = data->seen_ipv4; + *seen_ipv6 = data->seen_ipv6; + *in6ailen = data->in6ailen; + *in6ai = data->in6ai; + + if (olddata != NULL && olddata->usecnt > 0 + && atomic_add_zero (&olddata->usecnt, -1)) + free (olddata); + return; } - struct ifaddrs *runp; - for (runp = ifa; runp != NULL; runp = runp->ifa_next) - if (runp->ifa_addr != NULL) - { - if (runp->ifa_addr->sa_family == PF_INET) - *seen_ipv4 = true; - else if (runp->ifa_addr->sa_family == PF_INET6) - *seen_ipv6 = true; - } - - (void) freeifaddrs (ifa); -#endif + /* We cannot determine what interfaces are available. Be + pessimistic. */ + *seen_ipv4 = true; + *seen_ipv6 = true; } diff --git a/sysdeps/unix/sysv/linux/configure b/sysdeps/unix/sysv/linux/configure index b86b763ad7..0650067e47 100644 --- a/sysdeps/unix/sysv/linux/configure +++ b/sysdeps/unix/sysv/linux/configure @@ -284,25 +284,22 @@ test -n "$arch_minimum_kernel" || case "$machine" in i386*) libc_cv_gcc_unwind_find_fde=yes - arch_minimum_kernel=2.4.1 + arch_minimum_kernel=2.4.21 ;; powerpc/powerpc32) libc_cv_gcc_unwind_find_fde=yes - arch_minimum_kernel=2.4.1 - ;; - powerpc/powerpc64) arch_minimum_kernel=2.4.21 ;; s390/s390-32) libc_cv_gcc_unwind_find_fde=yes - arch_minimum_kernel=2.4.1 + arch_minimum_kernel=2.4.21 ;; s390/s390-64) libc_cv_gcc_unwind_find_fde=yes - arch_minimum_kernel=2.4.1 + arch_minimum_kernel=2.4.21 ;; sh*) - arch_minimum_kernel=2.4.1 + arch_minimum_kernel=2.4.21 libc_cv_gcc_unwind_find_fde=yes ;; sparc/sparc64*) @@ -311,10 +308,10 @@ case "$machine" in ;; sparc*) libc_cv_gcc_unwind_find_fde=yes - arch_minimum_kernel=2.4.1 + arch_minimum_kernel=2.4.21 ;; *) - arch_minimum_kernel=2.4.1 + arch_minimum_kernel=2.4.21 ;; esac if test -n "$minimum_kernel"; then diff --git a/sysdeps/unix/sysv/linux/configure.in b/sysdeps/unix/sysv/linux/configure.in index 05cf3bc95e..fc514fbf4a 100644 --- a/sysdeps/unix/sysv/linux/configure.in +++ b/sysdeps/unix/sysv/linux/configure.in @@ -41,25 +41,22 @@ test -n "$arch_minimum_kernel" || case "$machine" in i386*) libc_cv_gcc_unwind_find_fde=yes - arch_minimum_kernel=2.4.1 + arch_minimum_kernel=2.4.21 ;; powerpc/powerpc32) libc_cv_gcc_unwind_find_fde=yes - arch_minimum_kernel=2.4.1 - ;; - powerpc/powerpc64) arch_minimum_kernel=2.4.21 ;; s390/s390-32) libc_cv_gcc_unwind_find_fde=yes - arch_minimum_kernel=2.4.1 + arch_minimum_kernel=2.4.21 ;; s390/s390-64) libc_cv_gcc_unwind_find_fde=yes - arch_minimum_kernel=2.4.1 + arch_minimum_kernel=2.4.21 ;; sh*) - arch_minimum_kernel=2.4.1 + arch_minimum_kernel=2.4.21 libc_cv_gcc_unwind_find_fde=yes ;; sparc/sparc64*) @@ -68,10 +65,10 @@ case "$machine" in ;; sparc*) libc_cv_gcc_unwind_find_fde=yes - arch_minimum_kernel=2.4.1 + arch_minimum_kernel=2.4.21 ;; *) - arch_minimum_kernel=2.4.1 + arch_minimum_kernel=2.4.21 ;; esac if test -n "$minimum_kernel"; then diff --git a/sysdeps/unix/sysv/linux/if_index.c b/sysdeps/unix/sysv/linux/if_index.c index 3c86bb8654..cf33683925 100644 --- a/sysdeps/unix/sysv/linux/if_index.c +++ b/sysdeps/unix/sysv/linux/if_index.c @@ -74,90 +74,13 @@ if_freenameindex (struct if_nameindex *ifn) libc_hidden_def (if_freenameindex) -#if __ASSUME_NETLINK_SUPPORT == 0 -static struct if_nameindex * -if_nameindex_ioctl (void) -{ - int fd = __opensock (); - struct ifconf ifc; - unsigned int nifs, i; - int rq_len; - struct if_nameindex *idx = NULL; -# define RQ_IFS 4 - - if (fd < 0) - return NULL; - - ifc.ifc_buf = NULL; - - /* We may be able to get the needed buffer size directly, rather than - guessing. */ - ifc.ifc_buf = NULL; - ifc.ifc_len = 0; - if (__ioctl (fd, SIOCGIFCONF, &ifc) < 0 || ifc.ifc_len == 0) - rq_len = RQ_IFS * sizeof (struct ifreq); - else - rq_len = ifc.ifc_len; - - /* Read all the interfaces out of the kernel. */ - ifc.ifc_buf = alloca (rq_len); - ifc.ifc_len = rq_len; - if (__ioctl (fd, SIOCGIFCONF, &ifc) < 0) - { - close_not_cancel_no_status (fd); - return NULL; - } - - nifs = ifc.ifc_len / sizeof (struct ifreq); - - idx = malloc ((nifs + 1) * sizeof (struct if_nameindex)); - if (idx == NULL) - { - close_not_cancel_no_status (fd); - __set_errno (ENOBUFS); - return NULL; - } - - for (i = 0; i < nifs; ++i) - { - struct ifreq *ifr = &ifc.ifc_req[i]; - idx[i].if_name = __strdup (ifr->ifr_name); - if (idx[i].if_name == NULL - || __ioctl (fd, SIOCGIFINDEX, ifr) < 0) - { - int saved_errno = errno; - unsigned int j; - - for (j = 0; j < i; ++j) - free (idx[j].if_name); - free (idx); - close_not_cancel_no_status (fd); - if (saved_errno == EINVAL) - saved_errno = ENOSYS; - else if (saved_errno == ENOMEM) - |
