From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 26545 invoked by alias); 19 May 2012 21:26:55 -0000 Received: (qmail 26500 invoked by uid 22791); 19 May 2012 21:26:52 -0000 X-SWARE-Spam-Status: No, hits=-3.4 required=5.0 tests=AWL,BAYES_00,FROM_12LTRDOM,KHOP_RCVD_UNTRUST,RCVD_IN_HOSTKARMA_W,RCVD_IN_HOSTKARMA_WL X-Spam-Check-By: sourceware.org Received: from relay1.mentorg.com (HELO relay1.mentorg.com) (192.94.38.131) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Sat, 19 May 2012 21:26:32 +0000 Received: from nat-ies.mentorg.com ([192.94.31.2] helo=EU1-MAIL.mgc.mentorg.com) by relay1.mentorg.com with esmtp id 1SVrAV-0005rb-P4 from joseph_myers@mentor.com for libc-ports@sourceware.org; Sat, 19 May 2012 14:26:32 -0700 Received: from digraph.polyomino.org.uk ([172.16.63.104]) by EU1-MAIL.mgc.mentorg.com with Microsoft SMTPSVC(6.0.3790.1830); Sat, 19 May 2012 22:26:29 +0100 Received: from jsm28 (helo=localhost) by digraph.polyomino.org.uk with local-esmtp (Exim 4.74) (envelope-from ) id 1SVrAS-0001Fm-LW for libc-ports@sourceware.org; Sat, 19 May 2012 21:26:28 +0000 Date: Sat, 19 May 2012 21:26:00 -0000 From: "Joseph S. Myers" To: libc-ports@sourceware.org Subject: Remove more obsolete ARM code Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Mailing-List: contact libc-ports-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: libc-ports-owner@sourceware.org X-SW-Source: 2012-05/txt/msg00117.txt.bz2 I've applied this patch with some more cleanups of no-longer-relevant code in the ARM port. * The minimum kernel headers version (for all architectures) is 2.6.19.1. Various __NR_* values are defined for ARM by then, meaning there is no need for conditionals on whether they are defined. Any ARM EABI headers that failed to undefine __NR_stime and __NR_alarm are older than that as well, so there is no need to allow for such headers in glibc. Similarly, there is no need to allow for headers defining __NR_SYSCALL_BASE != 0 for EABI. (Both of those were probably allowing for early versions of headers while the EABI port was still being developed.) * The definition of SWI_BASE in sysdep.h is unused and an OABI relic. * bits/endian.h no longer needs to allow for FPA floating point; with the EABI, floating-point types have the same endianness as integer types, meaning the default in endian.h suffices. * bits/huge_val.h was only present for EABI to override an OABI version for FPA; it's essentially identical to the default version in sysdeps/ieee754, so not needed now. * bits/string.h was only present to override string inlines that didn't work with the OABI structure layout/alignment peculiarities. This issue does not apply for EABI. (The inlines in question aren't actually used with any GCC version recent enough to support EABI, so this doesn't matter much.) diff --git a/ChangeLog.arm b/ChangeLog.arm index bfb87aa..a12823b 100644 --- a/ChangeLog.arm +++ b/ChangeLog.arm @@ -1,5 +1,23 @@ 2012-05-19 Joseph Myers + * sysdeps/arm/bits/endian.h (__FLOAT_WORD_ORDER): Remove + definitions. + * sysdeps/arm/bits/huge_val.h: Remove file. + * sysdeps/arm/bits/string.h: Remove file. + * sysdeps/unix/sysv/linux/arm/readahead.c [__NR_readahead]: Make + code unconditional. + [!__NR_readahead]: Remove conditional code. + * sysdeps/unix/sysv/linux/arm/sigaction.c [__NR_rt_sigreturn]: + Make code unconditional. + [!__NR_rt_sigreturn]: Remove conditional code. + * sysdeps/unix/sysv/linux/arm/sigrestorer.S [__NR_rt_sigreturn]: + Make code unconditional. + * sysdeps/unix/sysv/linux/arm/sysdep.h [__NR_SYSCALL_BASE != 0]: + Remove conditional #error. + (__NR_stime): Remove #undef. + (__NR_alarm): Likewise. + (SWI_BASE): Remove. + * sysdeps/unix/sysv/linux/arm/ftruncate64.c (kernel-features.h): Don't include. [__NR_ftruncate64]: Make code unconditional. diff --git a/sysdeps/arm/bits/endian.h b/sysdeps/arm/bits/endian.h index dc909c3..f49f6ab 100644 --- a/sysdeps/arm/bits/endian.h +++ b/sysdeps/arm/bits/endian.h @@ -8,12 +8,3 @@ #else #define __BYTE_ORDER __LITTLE_ENDIAN #endif - -/* FPA floating point units are always big-endian, irrespective of the - CPU endianness. VFP floating point units use the same endianness - as the rest of the system. */ -#ifdef __VFP_FP__ -#define __FLOAT_WORD_ORDER __BYTE_ORDER -#else -#define __FLOAT_WORD_ORDER __BIG_ENDIAN -#endif diff --git a/sysdeps/arm/bits/huge_val.h b/sysdeps/arm/bits/huge_val.h deleted file mode 100644 index 6008b10..0000000 --- a/sysdeps/arm/bits/huge_val.h +++ /dev/null @@ -1,54 +0,0 @@ -/* `HUGE_VAL' constant for IEEE 754 machines (where it is infinity). - Used by and functions for overflow. - Copyright (C) 1992, 1995, 1996, 1997, 1999, 2000, 2004 - 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 - . */ - -#ifndef _MATH_H -# error "Never use directly; include instead." -#endif - -/* IEEE positive infinity (-HUGE_VAL is negative infinity). */ - -#if __GNUC_PREREQ(3,3) -# define HUGE_VAL (__builtin_huge_val()) -#elif __GNUC_PREREQ(2,96) -# define HUGE_VAL (__extension__ 0x1.0p2047) -#elif defined __GNUC__ - -# define HUGE_VAL \ - (__extension__ \ - ((union { unsigned __l __attribute__((__mode__(__DI__))); double __d; }) \ - { __l: 0x7ff0000000000000ULL }).__d) - -#else /* not GCC */ - -# include - -typedef union { unsigned char __c[8]; double __d; } __huge_val_t; - -# if __BYTE_ORDER == __BIG_ENDIAN -# define __HUGE_VAL_bytes { 0x7f, 0xf0, 0, 0, 0, 0, 0, 0 } -# endif -# if __BYTE_ORDER == __LITTLE_ENDIAN -# define __HUGE_VAL_bytes { 0, 0, 0, 0, 0, 0, 0xf0, 0x7f } -# endif - -static __huge_val_t __huge_val = { __HUGE_VAL_bytes }; -# define HUGE_VAL (__huge_val.__d) - -#endif /* GCC. */ diff --git a/sysdeps/arm/bits/string.h b/sysdeps/arm/bits/string.h deleted file mode 100644 index 21b5f44..0000000 --- a/sysdeps/arm/bits/string.h +++ /dev/null @@ -1,30 +0,0 @@ -/* Optimized, inlined string functions. ARM version. - Copyright (C) 1998, 1999, 2000 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 - . */ - -#ifndef _STRING_H -# error "Never use directly; include instead." -#endif - -/* We must defeat the generic optimized versions of these functions in - since they don't work on the ARM. This is because - the games they play with the __STRING2_COPY_ARR# structures fail - when structs are always 32-bit aligned. - XXX Should provide suitably optimal replacements. */ -#define _HAVE_STRING_ARCH_strcpy 1 -#define _HAVE_STRING_ARCH_stpcpy 1 -#define _HAVE_STRING_ARCH_mempcpy 1 diff --git a/sysdeps/unix/sysv/linux/arm/readahead.c b/sysdeps/unix/sysv/linux/arm/readahead.c index 2d15b09..647a3d7 100644 --- a/sysdeps/unix/sysv/linux/arm/readahead.c +++ b/sysdeps/unix/sysv/linux/arm/readahead.c @@ -1,5 +1,5 @@ /* Provide kernel hint to read ahead. - Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc. + Copyright (C) 2002-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 @@ -25,8 +25,6 @@ #include -#ifdef __NR_readahead - ssize_t __readahead (int fd, off64_t offset, size_t count) { @@ -35,16 +33,5 @@ __readahead (int fd, off64_t offset, size_t count) (off_t) (offset & 0xffffffff)), count); } -#else -ssize_t -__readahead (int fd, off64_t offset, size_t count) -{ - __set_errno (ENOSYS); - return -1; -} -stub_warning (readahead) - -# include -#endif weak_alias (__readahead, readahead) diff --git a/sysdeps/unix/sysv/linux/arm/sigaction.c b/sysdeps/unix/sysv/linux/arm/sigaction.c index 76037cb..fe036c1 100644 --- a/sysdeps/unix/sysv/linux/arm/sigaction.c +++ b/sysdeps/unix/sysv/linux/arm/sigaction.c @@ -48,14 +48,9 @@ extern void __default_rt_sa_restorer_v2(void); #endif /* When RT signals are in use we need to use a different return stub. */ -#ifdef __NR_rt_sigreturn #define choose_restorer(flags) \ (flags & SA_SIGINFO) ? __default_rt_sa_restorer \ : __default_sa_restorer -#else -#define choose_restorer(flags) \ - __default_sa_restorer -#endif /* If ACT is not NULL, change the action for SIG to *ACT. If OACT is not NULL, put the old action for SIG in *OACT. */ diff --git a/sysdeps/unix/sysv/linux/arm/sigrestorer.S b/sysdeps/unix/sysv/linux/arm/sigrestorer.S index b8ae839..63d83b8 100644 --- a/sysdeps/unix/sysv/linux/arm/sigrestorer.S +++ b/sysdeps/unix/sysv/linux/arm/sigrestorer.S @@ -1,4 +1,4 @@ -/* Copyright (C) 1999, 2005, 2009, 2010 Free Software Foundation, Inc. +/* Copyright (C) 1999-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 @@ -88,8 +88,6 @@ ENTRY(__default_sa_restorer_v2) END(__default_sa_restorer_v2) #undef OFFSET -#ifdef __NR_rt_sigreturn - #ifndef __ASSUME_SIGFRAME_V2 #define OFFSET 168 .fnstart @@ -117,5 +115,3 @@ ENTRY(__default_rt_sa_restorer_v2) .fnend END(__default_rt_sa_restorer_v2) #undef OFFSET - -#endif /* __NR_rt_sigreturn */ diff --git a/sysdeps/unix/sysv/linux/arm/sysdep.h b/sysdeps/unix/sysv/linux/arm/sysdep.h index be67c21..ef83ec2 100644 --- a/sysdeps/unix/sysv/linux/arm/sysdep.h +++ b/sysdeps/unix/sysv/linux/arm/sysdep.h @@ -28,16 +28,6 @@ #include -#if __NR_SYSCALL_BASE != 0 -# error Kernel headers are too old -#endif - -/* Don't use stime, even if the kernel headers define it. We have - settimeofday, and some EABI kernels have removed stime. Similarly - use setitimer to implement alarm. */ -#undef __NR_stime -#undef __NR_alarm - /* In order to get __set_errno() definition in INLINE_SYSCALL. */ #ifndef __ASSEMBLER__ #include @@ -48,7 +38,6 @@ of the kernel. But these symbols do not follow the SYS_* syntax so we have to redefine the `SYS_ify' macro here. */ #undef SYS_ify -#define SWI_BASE (0x900000) #define SYS_ify(syscall_name) (__NR_##syscall_name) -- Joseph S. Myers joseph@codesourcery.com