[attr] use <sys/syscalls.h> to fix build on aarch64 (#957989)

Kamil Dudka kdudka at fedoraproject.org
Fri May 3 08:03:22 UTC 2013


commit 0c83513cde0de62c1be69dcbdb41c3b1dd577077
Author: Kamil Dudka <kdudka at redhat.com>
Date:   Fri May 3 08:41:36 2013 +0200

    use <sys/syscalls.h> to fix build on aarch64 (#957989)

 attr-2.4.44-bz957989.patch |  198 ++++++++++++++++++++++++++++++++++++++++++++
 attr.spec                  |   13 ++-
 2 files changed, 208 insertions(+), 3 deletions(-)
---
diff --git a/attr-2.4.44-bz957989.patch b/attr-2.4.44-bz957989.patch
new file mode 100644
index 0000000..a2ddf2f
--- /dev/null
+++ b/attr-2.4.44-bz957989.patch
@@ -0,0 +1,198 @@
+From 182a48b83c0319ec4bad60aecf1b688288bf0f9d Mon Sep 17 00:00:00 2001
+From: Riku Voipio <riku.voipio at linaro.org>
+Date: Wed, 20 Mar 2013 07:51:18 -0700
+Subject: [PATCH] libattr: syscalls: use syscalls.h
+
+Include syscalls.h and check for __NR_setxattr being set. This fixes the
+build on new and odd archs but may break on really really old machines
+with out of date syscalls.h.
+
+[upstream commit db54b565deace6d27eaa158508087ce54fe959c4]
+
+Signed-off-by: Kamil Dudka <kdudka at redhat.com>
+---
+ libattr/syscalls.c |  166 +---------------------------------------------------
+ 1 files changed, 2 insertions(+), 164 deletions(-)
+
+diff --git a/libattr/syscalls.c b/libattr/syscalls.c
+index cbfec57..51fe98c 100644
+--- a/libattr/syscalls.c
++++ b/libattr/syscalls.c
+@@ -23,172 +23,10 @@
+ 
+ #include <errno.h>
+ #include <unistd.h>
++#include <sys/syscall.h>
+ 
+-#if defined (__i386__)
++#if defined (__NR_setxattr)
+ # define HAVE_XATTR_SYSCALLS 1
+-# define __NR_setxattr		226
+-# define __NR_lsetxattr		227
+-# define __NR_fsetxattr		228
+-# define __NR_getxattr		229
+-# define __NR_lgetxattr		230
+-# define __NR_fgetxattr		231
+-# define __NR_listxattr		232
+-# define __NR_llistxattr	233
+-# define __NR_flistxattr	234
+-# define __NR_removexattr	235
+-# define __NR_lremovexattr	236
+-# define __NR_fremovexattr	237
+-#elif defined (__sparc__)
+-# define HAVE_XATTR_SYSCALLS 1
+-# define __NR_setxattr		169
+-# define __NR_lsetxattr		170
+-# define __NR_fsetxattr		171
+-# define __NR_getxattr		172
+-# define __NR_lgetxattr		173
+-# define __NR_fgetxattr		177
+-# define __NR_listxattr		178
+-# define __NR_llistxattr	179
+-# define __NR_flistxattr	180
+-# define __NR_removexattr	181
+-# define __NR_lremovexattr	182
+-# define __NR_fremovexattr	186
+-#elif defined (__ia64__)
+-# define HAVE_XATTR_SYSCALLS 1
+-# define __NR_setxattr		1217
+-# define __NR_lsetxattr		1218
+-# define __NR_fsetxattr		1219
+-# define __NR_getxattr		1220
+-# define __NR_lgetxattr		1221
+-# define __NR_fgetxattr		1222
+-# define __NR_listxattr		1223
+-# define __NR_llistxattr	1224
+-# define __NR_flistxattr	1225
+-# define __NR_removexattr	1226
+-# define __NR_lremovexattr	1227
+-# define __NR_fremovexattr	1228
+-#elif defined (__powerpc__)
+-# define HAVE_XATTR_SYSCALLS 1
+-# define __NR_setxattr		209
+-# define __NR_lsetxattr		210
+-# define __NR_fsetxattr		211
+-# define __NR_getxattr		212
+-# define __NR_lgetxattr		213
+-# define __NR_fgetxattr		214
+-# define __NR_listxattr		215
+-# define __NR_llistxattr	216
+-# define __NR_flistxattr	217
+-# define __NR_removexattr	218
+-# define __NR_lremovexattr	219
+-# define __NR_fremovexattr	220
+-#elif defined (__x86_64__)
+-# define HAVE_XATTR_SYSCALLS 1
+-# define __NR_setxattr		188
+-# define __NR_lsetxattr		189
+-# define __NR_fsetxattr		190
+-# define __NR_getxattr		191
+-# define __NR_lgetxattr		192
+-# define __NR_fgetxattr		193
+-# define __NR_listxattr		194
+-# define __NR_llistxattr	195
+-# define __NR_flistxattr	196
+-# define __NR_removexattr	197
+-# define __NR_lremovexattr	198
+-# define __NR_fremovexattr	199
+-#elif defined (__s390__)
+-# define HAVE_XATTR_SYSCALLS 1
+-# define __NR_setxattr		224
+-# define __NR_lsetxattr		225
+-# define __NR_fsetxattr		226
+-# define __NR_getxattr		227
+-# define __NR_lgetxattr		228
+-# define __NR_fgetxattr		229
+-# define __NR_listxattr		230
+-# define __NR_llistxattr	231
+-# define __NR_flistxattr	232
+-# define __NR_removexattr	233
+-# define __NR_lremovexattr	234
+-# define __NR_fremovexattr	235
+-#elif defined (__arm__)
+-# define HAVE_XATTR_SYSCALLS 1
+-# if defined(__ARM_EABI__) || defined(__thumb__)
+-#  define __NR_SYSCALL_BASE 0
+-# else
+-#  define __NR_SYSCALL_BASE 0x900000
+-# endif
+-# define __NR_setxattr		(__NR_SYSCALL_BASE+226)
+-# define __NR_lsetxattr		(__NR_SYSCALL_BASE+227)
+-# define __NR_fsetxattr		(__NR_SYSCALL_BASE+228)
+-# define __NR_getxattr		(__NR_SYSCALL_BASE+229)
+-# define __NR_lgetxattr		(__NR_SYSCALL_BASE+230)
+-# define __NR_fgetxattr		(__NR_SYSCALL_BASE+231)
+-# define __NR_listxattr		(__NR_SYSCALL_BASE+232)
+-# define __NR_llistxattr	(__NR_SYSCALL_BASE+233)
+-# define __NR_flistxattr	(__NR_SYSCALL_BASE+234)
+-# define __NR_removexattr	(__NR_SYSCALL_BASE+235)
+-# define __NR_lremovexattr	(__NR_SYSCALL_BASE+236)
+-# define __NR_fremovexattr	(__NR_SYSCALL_BASE+237)
+-#elif defined (__mips64)
+-# define HAVE_XATTR_SYSCALLS 1
+-# ifdef __LP64__ /* mips64 using n64 ABI */
+-#  define __NR_Linux 5000
+-# else /* mips64 using n32 ABI */
+-#  define __NR_Linux 6000
+-# endif
+-# define __NR_setxattr		(__NR_Linux + 180)
+-# define __NR_lsetxattr		(__NR_Linux + 181)
+-# define __NR_fsetxattr		(__NR_Linux + 182)
+-# define __NR_getxattr		(__NR_Linux + 183)
+-# define __NR_lgetxattr		(__NR_Linux + 184)
+-# define __NR_fgetxattr		(__NR_Linux + 185)
+-# define __NR_listxattr		(__NR_Linux + 186)
+-# define __NR_llistxattr	(__NR_Linux + 187)
+-# define __NR_flistxattr	(__NR_Linux + 188)
+-# define __NR_removexattr	(__NR_Linux + 189)
+-# define __NR_lremovexattr	(__NR_Linux + 190)
+-# define __NR_fremovexattr	(__NR_Linux + 191)
+-#elif defined (__mips__) /* mips32, or mips64 using o32 ABI */
+-# define HAVE_XATTR_SYSCALLS 1
+-# define __NR_Linux 4000
+-# define __NR_setxattr		(__NR_Linux + 224)
+-# define __NR_lsetxattr		(__NR_Linux + 225)
+-# define __NR_fsetxattr		(__NR_Linux + 226)
+-# define __NR_getxattr		(__NR_Linux + 227)
+-# define __NR_lgetxattr		(__NR_Linux + 228)
+-# define __NR_fgetxattr		(__NR_Linux + 229)
+-# define __NR_listxattr		(__NR_Linux + 230)
+-# define __NR_llistxattr	(__NR_Linux + 231)
+-# define __NR_flistxattr	(__NR_Linux + 232)
+-# define __NR_removexattr	(__NR_Linux + 233)
+-# define __NR_lremovexattr	(__NR_Linux + 234)
+-# define __NR_fremovexattr	(__NR_Linux + 235)
+-#elif defined (__alpha__)
+-# define HAVE_XATTR_SYSCALLS 1
+-# define __NR_setxattr		382
+-# define __NR_lsetxattr		383
+-# define __NR_fsetxattr		384
+-# define __NR_getxattr		385
+-# define __NR_lgetxattr		386
+-# define __NR_fgetxattr		387
+-# define __NR_listxattr		388
+-# define __NR_llistxattr	389
+-# define __NR_flistxattr	390
+-# define __NR_removexattr	391
+-# define __NR_lremovexattr	392
+-# define __NR_fremovexattr	393
+-#elif defined (__mc68000__)
+-# define HAVE_XATTR_SYSCALLS 1
+-# define __NR_setxattr		223
+-# define __NR_lsetxattr		224
+-# define __NR_fsetxattr		225
+-# define __NR_getxattr		226
+-# define __NR_lgetxattr		227
+-# define __NR_fgetxattr		228
+-# define __NR_listxattr		229
+-# define __NR_llistxattr	230
+-# define __NR_flistxattr	231
+-# define __NR_removexattr	232
+-# define __NR_lremovexattr	233
+-# define __NR_fremovexattr	234
+ #else
+ # warning "Extended attribute syscalls undefined for this architecture"
+ # define HAVE_XATTR_SYSCALLS 0
+-- 
+1.7.1
+
diff --git a/attr.spec b/attr.spec
index 2819d5d..cfe3dea 100644
--- a/attr.spec
+++ b/attr.spec
@@ -1,7 +1,7 @@
 Summary: Utilities for managing filesystem extended attributes
 Name: attr
 Version: 2.4.46
-Release: 9%{?dist}
+Release: 10%{?dist}
 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 Source: http://download.savannah.gnu.org/releases-noredirect/attr/attr-%{version}.src.tar.gz
 
@@ -23,6 +23,9 @@ Patch8: attr-2.4.44-bz660613.patch
 # fix typos in attr(1) man page (#669095)
 Patch9: attr-2.4.44-bz669095.patch
 
+# use <sys/syscalls.h> to fix build on aarch64 (#957989)
+Patch10: attr-2.4.44-bz957989.patch
+
 License: GPLv2+
 URL: http://acl.bestbits.at/
 Group: System Environment/Base
@@ -75,12 +78,13 @@ you'll also want to install attr.
 %patch7 -p1
 %patch8 -p1
 %patch9 -p1
+%patch10 -p1
 
 %build
-# attr abuses libexecdir
+# attr <= 2.4.46 abuses libexecdir (fixed upstream in 2971df45)
 %configure --libexecdir=%{_libdir}
 
-# uncomment to turn on optimizations
+# uncomment to turn off optimizations
 # sed -i 's/-O2/-O0/' libtool include/builddefs
 # unset CFLAGS
 
@@ -138,6 +142,9 @@ chmod 0755 $RPM_BUILD_ROOT/%{_libdir}/libattr.so.*.*.*
 %{_libdir}/libattr.so.*
 
 %changelog
+* Fri May 03 2013 Kamil Dudka <kdudka at redhat.com> 2.4.46-10
+- use <sys/syscalls.h> to fix build on aarch64 (#957989)
+
 * Wed Feb 13 2013 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 2.4.46-9
 - Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
 


More information about the scm-commits mailing list