[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Patches] SWI relocation error building EGLIBC for ARM Cortex-A8
- To: patches@xxxxxxxxxx
- Subject: [Patches] SWI relocation error building EGLIBC for ARM Cortex-A8
- From: "P. J. McDermott" <pjm@xxxxxxx>
- Date: Sat, 21 Apr 2012 16:59:26 -0400
Hi,
I'm trying to build a cross toolchain for the ARM Cortex-A8 core
(ARMv7-A). (See my configuration and build procedure [1] for GCC and
EGLIBC.) I've built and installed Linux's headers, Binutils, GMP, MPFR,
MPC, and a statically-linked GCC. When I try to build EGLIBC, I get the
following error about software interrupt relocation:
../sysdeps/unix/syscall.S: Assembler messages:
../sysdeps/unix/syscall.S:28: Error: cannot represent SWI relocation i
n this object file format
A previous message [2] on the gcc-help list suggested that the issue is
that Linux has deprecated and removed a number of system calls,
including "__NR_syscall", for the ARM EABI in
arch/arm/include/asm/unistd.h. I checked this by following the macro
definitions in EGLIBC 2.15 from libc/sysdeps/unix/syscall.S:28:
- to "SYSCALL" at libc/sysdeps/unix/sysdep.h:30,
- to "PSEUDO" at ports/sysdeps/unix/sysv/linux/arm/sysdep.h:78,
- to "DO_CALL" at ports/sysdeps/unix/sysv/linux/arm/sysdep.h:195,
- to "SYS_ify" at ports/sysdeps/unix/sysv/linux/arm/sysdep.h:44,
- to "__NR_syscall" as undefined in arch/arm/include/asm/unistd.h.
I tried removing the system call "#undef" lines in asm/unistd.h and
building EGLIBC, but then I got the following warnings and errors about
versioned symbols like "getrlimit@xxxxxxxxx":
<build>/misc/stub-syscalls.c:2:18: warning: ISO C99 requires whitespac
e after the macro name [enabled by default]
<build>/misc/stub-syscalls.c:8:17: warning: extra tokens at end of #un
def directive [enabled by default]
<build>/misc/stub-syscalls.c:18:1: error: stray '@' in program
<build>/misc/stub-syscalls.c:18:1: error: expected '=', ',', ';', 'asm
' or '__attribute__' before 'GLIBC_2'
<build>/misc/stub-syscalls.c:19:1: error: stray '@' in program
<build>/misc/stub-syscalls.c:19:1: error: expected '=', ',', ';', 'asm
' or '__attribute__' before 'GLIBC_2'
<build>/misc/stub-syscalls.c:20:1: error: stray '@' in program
<build>/misc/stub-syscalls.c:20:1: error: expected '=', ',', ';', 'asm
' or '__attribute__' before 'GLIBC_2'
("<build>" is the path to the directory in which I tried to build EGLIBC.)
Can anyone help me get EGLIBC 2.15 built for the ARM Cortex-A8 using GCC
4.6?
I first posted [3] this on the gcc-help list; I'm not exactly sure where
my issue lies.
Toolchain components:
Binutils 2.22
GMP 5.0.2
MPFR 3.1.0
MPC 0.9
GCC 4.6.2
EGLIBC 2.15
Linux-libre 3.2.7
Build system:
Debian GNU/Linux wheezy
Binutils 2.22
GCC 4.6.3
EGLIBC 2.13
Linux 3.2.0
1:
http://git.os.pehjota.net/notes/free-embedded-os.git/tree/temporary-bootstrap-builder-setup-cortexa8.txt?id=8b0ef4a9#n245
2: http://gcc.gnu.org/ml/gcc-help/2011-01/msg00062.html
3: http://gcc.gnu.org/ml/gcc-help/2012-04/msg00214.html
Thanks,
--
P. J. McDermott http://www.pehjota.net/ (_/@\_) ,--.
mailto:pjm@xxxxxxx http://identi.ca/pehjota o < o o > / oo \
o \ `-/ | <> |.
o o o "~v /_\--/_/
_______________________________________________
Patches mailing list
Patches@xxxxxxxxxx
http://eglibc.org/cgi-bin/mailman/listinfo/patches