[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