diff options
author | Mike Frysinger <vapier@gentoo.org> | 2005-06-05 08:55:42 +0000 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2005-06-05 08:55:42 +0000 |
commit | 3e80e698452b5678324491109b69423a1f3ba527 (patch) | |
tree | 3c79f321c51e112749c3d2ce5102fbf68c53661b /sys-libs | |
parent | Stable on hppa (diff) | |
download | gentoo-2-3e80e698452b5678324491109b69423a1f3ba527.tar.gz gentoo-2-3e80e698452b5678324491109b69423a1f3ba527.tar.bz2 gentoo-2-3e80e698452b5678324491109b69423a1f3ba527.zip |
Add xstat patch for alpha for kloeri.
(Portage version: 2.0.51.22-r1)
Diffstat (limited to 'sys-libs')
-rw-r--r-- | sys-libs/glibc/ChangeLog | 7 | ||||
-rw-r--r-- | sys-libs/glibc/files/2.3.4/glibc234-alpha-xstat.patch | 231 | ||||
-rw-r--r-- | sys-libs/glibc/glibc-2.3.4.20041102-r1.ebuild | 5 | ||||
-rw-r--r-- | sys-libs/glibc/glibc-2.3.4.20041102.ebuild | 5 |
4 files changed, 245 insertions, 3 deletions
diff --git a/sys-libs/glibc/ChangeLog b/sys-libs/glibc/ChangeLog index 5f558d85569e..433385a5cc5c 100644 --- a/sys-libs/glibc/ChangeLog +++ b/sys-libs/glibc/ChangeLog @@ -1,6 +1,11 @@ # ChangeLog for sys-libs/glibc # Copyright 1999-2005 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/sys-libs/glibc/ChangeLog,v 1.346 2005/05/27 07:55:00 kloeri Exp $ +# $Header: /var/cvsroot/gentoo-x86/sys-libs/glibc/ChangeLog,v 1.347 2005/06/05 08:55:42 vapier Exp $ + + 05 Jun 2005; Mike Frysinger <vapier@gentoo.org> + +files/2.3.4/glibc234-alpha-xstat.patch, glibc-2.3.4.20041102.ebuild, + glibc-2.3.4.20041102-r1.ebuild: + Add xstat patch for alpha for kloeri. 27 May 2005; Bryan Østergaard <kloeri@gentoo.org> glibc-2.3.4.20041102-r1.ebuild: diff --git a/sys-libs/glibc/files/2.3.4/glibc234-alpha-xstat.patch b/sys-libs/glibc/files/2.3.4/glibc234-alpha-xstat.patch new file mode 100644 index 000000000000..b68f57e4688c --- /dev/null +++ b/sys-libs/glibc/files/2.3.4/glibc234-alpha-xstat.patch @@ -0,0 +1,231 @@ +diff -u -p -r1.83 kernel-features.h +--- sysdeps/unix/sysv/linux/kernel-features.h 26 Jan 2005 20:01:10 -0000 1.83 ++++ sysdeps/unix/sysv/linux/kernel-features.h 18 Feb 2005 06:21:10 -0000 +@@ -413,6 +413,11 @@ + # define __ASSUME_GETDENTS32_D_TYPE 1 + #endif + ++/* Starting with version 2.6.4, alpha stat64 syscalls are available. */ ++#if __LINUX_KERNEL_VERSION >= 0x020604 && defined __alpha__ ++# define __ASSUME_STAT64_SYSCALL 1 ++#endif ++ + /* Starting with version 2.5.3, the initial location returned by `brk' + after exec is always rounded up to the next page. */ + #if __LINUX_KERNEL_VERSION >= 132355 +diff -u -p -r1.1 fxstat.c +--- sysdeps/unix/sysv/linux/alpha/fxstat.c 11 Mar 2004 02:58:44 -0000 1.1 ++++ sysdeps/unix/sysv/linux/alpha/fxstat.c 18 Feb 2005 06:21:10 -0000 +@@ -1,5 +1,5 @@ + /* fxstat using old-style Unix stat system call. +- Copyright (C) 2004 Free Software Foundation, Inc. ++ Copyright (C) 2004, 2005 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 +@@ -35,27 +35,39 @@ int + __fxstat (int vers, int fd, struct stat *buf) + { + INTERNAL_SYSCALL_DECL (err); +- int result, errno_out; ++ int result; + struct kernel_stat kbuf; + ++#if __ASSUME_STAT64_SYSCALL > 0 ++ if (vers == _STAT_VER_KERNEL64) ++ { ++ result = INTERNAL_SYSCALL (fstat64, err, 2, fd, buf); ++ if (__builtin_expect (!INTERNAL_SYSCALL_ERROR_P (result, err), 1)) ++ return result; ++ __set_errno (INTERNAL_SYSCALL_ERRNO (result, err)); ++ return -1; ++ } ++#elif defined __NR_fstat64 + if (vers == _STAT_VER_KERNEL64 && !__libc_missing_axp_stat64) + { ++ int errno_out; + result = INTERNAL_SYSCALL (fstat64, err, 2, fd, buf); + if (__builtin_expect (!INTERNAL_SYSCALL_ERROR_P (result, err), 1)) + return result; + errno_out = INTERNAL_SYSCALL_ERRNO (result, err); + if (errno_out != ENOSYS) +- goto fail; ++ { ++ __set_errno (errno_out); ++ return -1; ++ } + __libc_missing_axp_stat64 = 1; + } ++#endif + + result = INTERNAL_SYSCALL (fstat, err, 2, fd, &kbuf); + if (__builtin_expect (!INTERNAL_SYSCALL_ERROR_P (result, err), 1)) + return __xstat_conv (vers, &kbuf, buf); +- errno_out = INTERNAL_SYSCALL_ERRNO (result, err); +- +- fail: +- __set_errno (errno_out); ++ __set_errno (INTERNAL_SYSCALL_ERRNO (result, err)); + return -1; + } + hidden_def (__fxstat) +diff -u -p -r1.1 lxstat.c +--- sysdeps/unix/sysv/linux/alpha/lxstat.c 11 Mar 2004 02:58:44 -0000 1.1 ++++ sysdeps/unix/sysv/linux/alpha/lxstat.c 18 Feb 2005 06:21:10 -0000 +@@ -1,5 +1,5 @@ + /* lxstat using old-style Unix stat system call. +- Copyright (C) 2004 Free Software Foundation, Inc. ++ Copyright (C) 2004, 2005 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 +@@ -35,27 +35,39 @@ int + __lxstat (int vers, const char *name, struct stat *buf) + { + INTERNAL_SYSCALL_DECL (err); +- int result, errno_out; ++ int result; + struct kernel_stat kbuf; + ++#if __ASSUME_STAT64_SYSCALL > 0 ++ if (vers == _STAT_VER_KERNEL64) ++ { ++ result = INTERNAL_SYSCALL (lstat64, err, 2, name, buf); ++ if (__builtin_expect (!INTERNAL_SYSCALL_ERROR_P (result, err), 1)) ++ return result; ++ __set_errno (INTERNAL_SYSCALL_ERRNO (result, err)); ++ return -1; ++ } ++#elif defined __NR_lstat64 + if (vers == _STAT_VER_KERNEL64 && !__libc_missing_axp_stat64) + { ++ int errno_out; + result = INTERNAL_SYSCALL (lstat64, err, 2, name, buf); + if (__builtin_expect (!INTERNAL_SYSCALL_ERROR_P (result, err), 1)) + return result; + errno_out = INTERNAL_SYSCALL_ERRNO (result, err); + if (errno_out != ENOSYS) +- goto fail; ++ { ++ __set_errno (errno_out); ++ return -1; ++ } + __libc_missing_axp_stat64 = 1; + } ++#endif + + result = INTERNAL_SYSCALL (lstat, err, 2, name, &kbuf); + if (__builtin_expect (!INTERNAL_SYSCALL_ERROR_P (result, err), 1)) + return __xstat_conv (vers, &kbuf, buf); +- errno_out = INTERNAL_SYSCALL_ERRNO (result, err); +- +- fail: +- __set_errno (errno_out); ++ __set_errno (INTERNAL_SYSCALL_ERRNO (result, err)); + return -1; + } + hidden_def (__lxstat) +diff -u -p -r1.1 xstat.c +--- sysdeps/unix/sysv/linux/alpha/xstat.c 11 Mar 2004 02:58:44 -0000 1.1 ++++ sysdeps/unix/sysv/linux/alpha/xstat.c 18 Feb 2005 06:21:10 -0000 +@@ -1,5 +1,5 @@ + /* xstat using old-style Unix stat system call. +- Copyright (C) 2004 Free Software Foundation, Inc. ++ Copyright (C) 2004, 2005 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 +@@ -35,27 +35,39 @@ int + __xstat (int vers, const char *name, struct stat *buf) + { + INTERNAL_SYSCALL_DECL (err); +- int result, errno_out; ++ int result; + struct kernel_stat kbuf; + ++#if __ASSUME_STAT64_SYSCALL > 0 ++ if (vers == _STAT_VER_KERNEL64) ++ { ++ result = INTERNAL_SYSCALL (stat64, err, 2, name, buf); ++ if (__builtin_expect (!INTERNAL_SYSCALL_ERROR_P (result, err), 1)) ++ return result; ++ __set_errno (INTERNAL_SYSCALL_ERRNO (result, err)); ++ return -1; ++ } ++#elif defined __NR_stat64 + if (vers == _STAT_VER_KERNEL64 && !__libc_missing_axp_stat64) + { ++ int errno_out; + result = INTERNAL_SYSCALL (stat64, err, 2, name, buf); + if (__builtin_expect (!INTERNAL_SYSCALL_ERROR_P (result, err), 1)) + return result; + errno_out = INTERNAL_SYSCALL_ERRNO (result, err); + if (errno_out != ENOSYS) +- goto fail; ++ { ++ __set_errno (errno_out); ++ return -1; ++ } + __libc_missing_axp_stat64 = 1; + } ++#endif + + result = INTERNAL_SYSCALL (stat, err, 2, name, &kbuf); + if (__builtin_expect (!INTERNAL_SYSCALL_ERROR_P (result, err), 1)) + return __xstat_conv (vers, &kbuf, buf); +- errno_out = INTERNAL_SYSCALL_ERRNO (result, err); +- +- fail: +- __set_errno (errno_out); ++ __set_errno (INTERNAL_SYSCALL_ERRNO (result, err)); + return -1; + } + hidden_def (__xstat) +diff -u -p -r1.6 xstatconv.c +--- sysdeps/unix/sysv/linux/alpha/xstatconv.c 11 Mar 2004 02:58:44 -0000 1.6 ++++ sysdeps/unix/sysv/linux/alpha/xstatconv.c 26 Feb 2005 13:58:07 -0000 +@@ -1,5 +1,5 @@ + /* Convert between the kernel's `struct stat' format, and libc's. +- Copyright (C) 1997, 2003, 2004 Free Software Foundation, Inc. ++ Copyright (C) 1997, 2003, 2004, 2005 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 +@@ -22,9 +22,14 @@ + #include <sys/stat.h> + #include <kernel_stat.h> + #include <xstatconv.h> ++#include <sys/syscall.h> + + ++#ifdef __NR_stat64 ++# if __ASSUME_STAT64_SYSCALL == 0 + int __libc_missing_axp_stat64; ++# endif ++#endif + + int + __xstat_conv (int vers, struct kernel_stat *kbuf, void *ubuf) +diff -u -p -r1.1 xstatconv.h +--- sysdeps/unix/sysv/linux/alpha/xstatconv.h 11 Mar 2004 02:58:44 -0000 1.1 ++++ sysdeps/unix/sysv/linux/alpha/xstatconv.h 26 Feb 2005 13:58:07 -0000 +@@ -1,5 +1,5 @@ + /* Convert between the kernel's `struct stat' format, and libc's. +- Copyright (C) 2004 Free Software Foundation, Inc. ++ Copyright (C) 2004, 2005 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 +@@ -18,7 +18,12 @@ + 02111-1307 USA. */ + + #include "kernel-features.h" ++#include <sys/syscall.h> + ++#ifdef __NR_stat64 ++# if __ASSUME_STAT64_SYSCALL == 0 + extern int __libc_missing_axp_stat64 attribute_hidden; ++# endif ++#endif + extern int __xstat_conv (int vers, struct kernel_stat *kbuf, void *ubuf) + attribute_hidden; diff --git a/sys-libs/glibc/glibc-2.3.4.20041102-r1.ebuild b/sys-libs/glibc/glibc-2.3.4.20041102-r1.ebuild index 1907498a474b..5498ac74d75b 100644 --- a/sys-libs/glibc/glibc-2.3.4.20041102-r1.ebuild +++ b/sys-libs/glibc/glibc-2.3.4.20041102-r1.ebuild @@ -1,6 +1,6 @@ # Copyright 1999-2005 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/sys-libs/glibc/glibc-2.3.4.20041102-r1.ebuild,v 1.13 2005/05/27 07:55:00 kloeri Exp $ +# $Header: /var/cvsroot/gentoo-x86/sys-libs/glibc/glibc-2.3.4.20041102-r1.ebuild,v 1.14 2005/06/05 08:55:42 vapier Exp $ inherit eutils multilib flag-o-matic toolchain-funcs versionator @@ -364,6 +364,9 @@ do_arch_alpha_patches() { # <taviso@gentoo.org> (14 Jun 2003). epatch ${FILESDIR}/2.3.2/${PN}-2.3.2-decc-compaq.patch + # Fix xstat stuff + epatch ${FILESDIR}/2.3.4/glibc234-alpha-xstat.patch + # Fix compilation with >=gcc-3.2.3 (01 Nov 2003 agriffis) # epatch ${FILESDIR}/2.3.2/${LOCAL_P}-alpha-pwrite.patch } diff --git a/sys-libs/glibc/glibc-2.3.4.20041102.ebuild b/sys-libs/glibc/glibc-2.3.4.20041102.ebuild index 23566f7c4383..6a0c06fd8339 100644 --- a/sys-libs/glibc/glibc-2.3.4.20041102.ebuild +++ b/sys-libs/glibc/glibc-2.3.4.20041102.ebuild @@ -1,6 +1,6 @@ # Copyright 1999-2005 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/sys-libs/glibc/glibc-2.3.4.20041102.ebuild,v 1.53 2005/05/17 22:33:51 vapier Exp $ +# $Header: /var/cvsroot/gentoo-x86/sys-libs/glibc/glibc-2.3.4.20041102.ebuild,v 1.54 2005/06/05 08:55:42 vapier Exp $ inherit eutils multilib flag-o-matic toolchain-funcs versionator @@ -364,6 +364,9 @@ do_arch_alpha_patches() { # <taviso@gentoo.org> (14 Jun 2003). epatch ${FILESDIR}/2.3.2/${PN}-2.3.2-decc-compaq.patch + # Fix xstat stuff + epatch ${FILESDIR}/2.3.4/glibc234-alpha-xstat.patch + # Fix compilation with >=gcc-3.2.3 (01 Nov 2003 agriffis) # epatch ${FILESDIR}/2.3.2/${LOCAL_P}-alpha-pwrite.patch } |