When building for EABI, a different system call calling convention is
used where system calls are numbered starting from zero, not 0x900000
as in the old ABI. This was causing 'ls -al' with an ls binary that
was built with xattr support to SIGILL.
--- attr-2.4.32/libattr/syscalls.c.orig 2006-11-30 03:34:25.000000000 +0100
+++ attr-2.4.32/libattr/syscalls.c 2006-11-30 03:35:12.000000000 +0100
@@ -110,7 +110,11 @@
# define __NR_fremovexattr 235
#elif defined (__arm__)
# define HAVE_XATTR_SYSCALLS 1
-# define __NR_SYSCALL_BASE 0x900000
+# 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)
-------------------------------------------------------------------
List admin: http://lists.arm.linux.org.uk/mailman/listinfo/linux-arm
FAQ: http://www.arm.linux.org.uk/mailinglists/faq.php
Etiquette: http://www.arm.linux.org.uk/mailinglists/etiquette.php
|