I pulled down revisions 56 of l4re per the l4re download instructions on an x86 platform running Ubuntu 13.04. I'm cross compiling for an ARM 8 Beaglebone platform. I created a set of tool links pointing to gcc, g++, ar, ld, etc. from the current Genode toolchain. I then followed the l4 build instructions. The build proceeded normally until is started to link in libc static libraries at which point the following errors killed the build: ... make[5]: Entering directory `/home/bob/fiasco/builds/l4/pkg/loader/server/src/OBJ-arm_armv7a-l4f' ... Compiling main.o ... Compiling slab_alloc.o ... Compiling region.o ... Compiling app_task.o ... Compiling name_space.o ... Compiling log.o ... Compiling global.o ... Compiling sched_proxy.o ... Compiling alloc.o ==> Linking loader /home/bob/fiasco/builds/l4/lib/arm_armv7a/l4f/libuc_c.a(__exit_handler.o): In function `__new_exitfn': /home/bob/fiasco/builds/l4/pkg/uclibc/lib/uclibc/src/libc/stdlib/_atexit.c:259: undefined reference to `__emutls_v.__libc_errno' /home/bob/fiasco/builds/l4/lib/arm_armv7a/l4f/libuc_c.a(malloc.o): In function `malloc': /home/bob/fiasco/builds/l4/pkg/uclibc/lib/uclibc/src/libc/stdlib/malloc-standard/malloc.c:1018: undefined reference to `__emutls_v.__libc_errno' /home/bob/fiasco/builds/l4/lib/arm_armv7a/l4f/libuc_c.a(fwrite.__DO_UNLOCKED.o): In function `fwrite_unlocked': /home/bob/fiasco/builds/l4/pkg/uclibc/lib/uclibc/src/libc/stdio/fwrite.c:36: undefined reference to `__emutls_v.__libc_errno' /home/bob/fiasco/builds/l4/lib/arm_armv7a/l4f/libuc_c.a(__errno_location.o): In function `__errno_location': /home/bob/fiasco/builds/l4/pkg/uclibc/lib/uclibc/src/libc/misc/internals/__errno_location.c:16: undefined reference to `__emutls_v.__libc_errno' /home/bob/fiasco/builds/l4/pkg/uclibc/lib/uclibc/src/libc/misc/internals/__errno_location.c:16: undefined reference to `__emutls_v.__libc_errno' /home/bob/fiasco/builds/l4/lib/arm_armv7a/l4f/libuc_c.a(_trans2w.o):/home/bob/fiasco/builds/l4/pkg/uclibc/lib/uclibc/src/libc/stdio/_trans2w.c:67: more undefined references to `__emutls_v.__libc_errno' follow make[5]: *** [loader] Error 1
Is there some undocumented compiler flag related to TLS I should be setting somewhere to fix these library references?
Thanks you Bob Stewart
On Sat Jul 27, 2013 at 16:36:24 -0400, Bob Stewart wrote:
I pulled down revisions 56 of l4re per the l4re download instructions on an x86 platform running Ubuntu 13.04. I'm cross compiling for an ARM 8 Beaglebone platform. I created a set of tool links pointing to gcc, g++, ar, ld, etc. from the current Genode toolchain. I then followed the l4 build instructions. The build proceeded normally until is started to link in libc static libraries at which point the following errors killed the build: ... ==> Linking loader /home/bob/fiasco/builds/l4/lib/arm_armv7a/l4f/libuc_c.a(__exit_handler.o): In function `__new_exitfn': /home/bob/fiasco/builds/l4/pkg/uclibc/lib/uclibc/src/libc/stdlib/_atexit.c:259: undefined reference to `__emutls_v.__libc_errno'
Is there some undocumented compiler flag related to TLS I should be setting somewhere to fix these library references?
Not that I know of, it should just work. What do you mean with that you created links to binutils and gcc? When cross-compiling to ARM the tools should just be prefixed with arm-linux- and gcc/g++ etc. target the host.
Adam
Because I was using the genode toolchain whose tools don't have the arm-linux- prefix, I created a directory of links which have that prefix (e.g. arm-linux-gcc) which link to the appropriate tool in the genode tools directory (/usr/local/genode).
Bob Stewart
Sent with AquaMail for Android http://www.aqua-mail.com
On July 28, 2013 6:14:41 PM Adam Lackorzynski adam@os.inf.tu-dresden.de wrote:
On Sat Jul 27, 2013 at 16:36:24 -0400, Bob Stewart wrote:
I pulled down revisions 56 of l4re per the l4re download instructions on an x86 platform running Ubuntu 13.04. I'm cross compiling for an ARM 8 Beaglebone platform. I created a set of tool links pointing to gcc, g++, ar, ld, etc. from the current Genode toolchain. I then followed the l4 build instructions. The build proceeded normally until is started to link in libc static libraries at which point the following errors killed the build: ... ==> Linking loader /home/bob/fiasco/builds/l4/lib/arm_armv7a/l4f/libuc_c.a(__exit_handler.o): In function `__new_exitfn':
/home/bob/fiasco/builds/l4/pkg/uclibc/lib/uclibc/src/libc/stdlib/_atexit.c:259:
undefined reference to `__emutls_v.__libc_errno' Is there some undocumented compiler flag related to TLS I should be setting somewhere to fix these library references?
Not that I know of, it should just work. What do you mean with that you created links to binutils and gcc? When cross-compiling to ARM the tools should just be prefixed with arm-linux- and gcc/g++ etc. target the host.
Adam
Adam adam@os.inf.tu-dresden.de Lackorzynski http://os.inf.tu-dresden.de/~adam/
l4-hackers mailing list l4-hackers@os.inf.tu-dresden.de http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers
Let me more precise now that I'm on the machine I was trying to build on.
Following the directions on the L4 Runtime Environment page, I completed steps 1, 2 and 3. On step 4, configuring the build tree, I selected my target architecture and platform and left the Building options as they were. This make failed with the error "no suitable compiler found". This message appeared to come from the script .arm-linux-SCRIPT which looks in various places for an arm gcc compiler. No seeing instructions on tools to be installed, I decided to create a directory of links to the tools from Genode which I had previously installed. That directory of links was added to PATH. So, for example, the link to arm-linux-gcc points to /usr/local/genode-gcc/bin/genode-arm-gcc. Step 4 now completed and the make in step ran until the error with the static library references occurred.
What is the corrected set of tools to be using for this?
Thank you Bob Stewart
Sent with AquaMail for Android http://www.aqua-mail.com
On July 29, 2013 6:37:46 AM Bob Stewart robjsstewart@verizon.net wrote:
Because I was using the genode toolchain whose tools don't have the arm-linux- prefix, I created a directory of links which have that prefix (e.g. arm-linux-gcc) which link to the appropriate tool in the genode tools directory (/usr/local/genode).
Bob Stewart
On July 28, 2013 6:14:41 PM Adam Lackorzynski adam@os.inf.tu-dresden.de wrote:
On Sat Jul 27, 2013 at 16:36:24 -0400, Bob Stewart wrote:
I pulled down revisions 56 of l4re per the l4re download instructions on an x86 platform running Ubuntu 13.04. I'm cross compiling for an ARM 8 Beaglebone platform. I created a set of tool links pointing to gcc, g++, ar, ld, etc. from the current Genode toolchain. I then followed the l4 build instructions. The build proceeded normally until is started to link in libc static libraries at which point the following errors killed the build: ... ==> Linking loader /home/bob/fiasco/builds/l4/lib/arm_armv7a/l4f/libuc_c.a(__exit_handler.o): In function `__new_exitfn':
/home/bob/fiasco/builds/l4/pkg/uclibc/lib/uclibc/src/libc/stdlib/_atexit.c:259:
undefined reference to `__emutls_v.__libc_errno' Is there some undocumented compiler flag related to TLS I should be setting somewhere to fix these library references?
Not that I know of, it should just work. What do you mean with that you created links to binutils and gcc? When cross-compiling to ARM the tools should just be prefixed with arm-linux- and gcc/g++ etc. target the host.
Adam -- Adam adam@os.inf.tu-dresden.de Lackorzynski http://os.inf.tu-dresden.de/~adam/
l4-hackers mailing list l4-hackers@os.inf.tu-dresden.de http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers
On 29.07.2013, at 14:05, Bob Stewart robjsstewart@verizon.net wrote:
Let me more precise now that I'm on the machine I was trying to build on.
Following the directions on the L4 Runtime Environment page, I completed steps 1, 2 and 3. On step 4, configuring the build tree, I selected my target architecture and platform and left the Building options as they were. This make failed with the error "no suitable compiler found". This message appeared to come from the script .arm-linux-SCRIPT which looks in various places for an arm gcc compiler. No seeing instructions on tools to be installed, I decided to create a directory of links to the tools from Genode which I had previously installed. That directory of links was added to PATH. So, for example, the link to arm-linux-gcc points to /usr/local/genode-gcc/bin/genode-arm-gcc. Step 4 now completed and the make in step ran until the error with the static library references occurred.
What is the corrected set of tools to be using for this?
Mentor Graphic's CodeBench Lite Edition [1] is known to work. Just extract the archive to /usr/local/gcc and adapt the path in the .arm-linux-SCRIPT accordingly.
Best, Matthias.
[1] http://www.mentor.com/embedded-software/sourcery-tools/sourcery-codebench/ed...
Thank you Bob Stewart
Sent with AquaMail for Android http://www.aqua-mail.com
On July 29, 2013 6:37:46 AM Bob Stewart robjsstewart@verizon.net wrote:
Because I was using the genode toolchain whose tools don't have the arm-linux- prefix, I created a directory of links which have that prefix (e.g. arm-linux-gcc) which link to the appropriate tool in the genode tools directory (/usr/local/genode).
Bob Stewart
On July 28, 2013 6:14:41 PM Adam Lackorzynski adam@os.inf.tu-dresden.de wrote:
On Sat Jul 27, 2013 at 16:36:24 -0400, Bob Stewart wrote:
I pulled down revisions 56 of l4re per the l4re download instructions on an x86 platform running Ubuntu 13.04. I'm cross compiling for an ARM 8 Beaglebone platform. I created a set of tool links pointing to gcc, g++, ar, ld, etc. from the current Genode toolchain. I then followed the l4 build instructions. The build proceeded normally until is started to link in libc static libraries at which point the following errors killed the build: ... ==> Linking loader /home/bob/fiasco/builds/l4/lib/arm_armv7a/l4f/libuc_c.a(__exit_handler.o): In function `__new_exitfn': /home/bob/fiasco/builds/l4/pkg/uclibc/lib/uclibc/src/libc/stdlib/_atexit.c:259: undefined reference to `__emutls_v.__libc_errno' Is there some undocumented compiler flag related to TLS I should be setting somewhere to fix these library references?
Not that I know of, it should just work. What do you mean with that you created links to binutils and gcc? When cross-compiling to ARM the tools should just be prefixed with arm-linux- and gcc/g++ etc. target the host.
Adam -- Adam adam@os.inf.tu-dresden.de Lackorzynski http://os.inf.tu-dresden.de/~adam/
l4-hackers mailing list l4-hackers@os.inf.tu-dresden.de http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers
l4-hackers mailing list l4-hackers@os.inf.tu-dresden.de http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers
Thanks Matthias.
Bob
Sent with AquaMail for Android http://www.aqua-mail.com
On July 29, 2013 9:12:02 AM Matthias Lange mlange@sec.t-labs.tu-berlin.de wrote:
On 29.07.2013, at 14:05, Bob Stewart robjsstewart@verizon.net wrote:
Let me more precise now that I'm on the machine I was trying to build on. Following the directions on the L4 Runtime Environment page, I completed
steps 1, 2 and 3. On step 4, configuring the build tree, I selected my target architecture and platform and left the Building options as they were. This make failed with the error "no suitable compiler found". This message appeared to come from the script .arm-linux-SCRIPT which looks in various places for an arm gcc compiler. No seeing instructions on tools to be installed, I decided to create a directory of links to the tools from Genode which I had previously installed. That directory of links was added to PATH. So, for example, the link to arm-linux-gcc points to /usr/local/genode-gcc/bin/genode-arm-gcc. Step 4 now completed and the make in step ran until the error with the static library references occurred.
What is the corrected set of tools to be using for this?
Mentor Graphic's CodeBench Lite Edition [1] is known to work. Just extract the archive to /usr/local/gcc and adapt the path in the .arm-linux-SCRIPT accordingly.
Best, Matthias.
[1] http://www.mentor.com/embedded-software/sourcery-tools/sourcery-codebench/ed...
Thank you Bob Stewart
Sent with AquaMail for Android http://www.aqua-mail.com
On July 29, 2013 6:37:46 AM Bob Stewart robjsstewart@verizon.net wrote:
Because I was using the genode toolchain whose tools don't have the
arm-linux- prefix, I created a directory of links which have that prefix (e.g. arm-linux-gcc) which link to the appropriate tool in the genode tools directory (/usr/local/genode).
Bob Stewart
On July 28, 2013 6:14:41 PM Adam Lackorzynski
adam@os.inf.tu-dresden.de wrote:
On Sat Jul 27, 2013 at 16:36:24 -0400, Bob Stewart wrote:
I pulled down revisions 56 of l4re per the l4re download instructions on an x86 platform running Ubuntu 13.04. I'm cross compiling for an ARM 8 Beaglebone platform. I created a set of tool links pointing to gcc, g++, ar, ld, etc. from the current Genode toolchain. I then followed the l4 build instructions. The build proceeded normally until is started to link in libc static libraries at which point the following errors killed the build: ... ==> Linking loader
/home/bob/fiasco/builds/l4/lib/arm_armv7a/l4f/libuc_c.a(__exit_handler.o):
In function `__new_exitfn':
/home/bob/fiasco/builds/l4/pkg/uclibc/lib/uclibc/src/libc/stdlib/_atexit.c:259:
undefined reference to `__emutls_v.__libc_errno' Is there some undocumented compiler flag related to TLS I should be setting somewhere to fix these library references?
Not that I know of, it should just work. What do you mean with that you created links to binutils and gcc? When cross-compiling to ARM the tools should just be prefixed with arm-linux- and gcc/g++ etc. target the host.
Adam -- Adam adam@os.inf.tu-dresden.de Lackorzynski http://os.inf.tu-dresden.de/~adam/
l4-hackers mailing list l4-hackers@os.inf.tu-dresden.de http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers
l4-hackers mailing list l4-hackers@os.inf.tu-dresden.de http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers
Hello Bob,
On 07/29/2013 12:37 PM, Bob Stewart wrote:
Because I was using the genode toolchain whose tools don't have the arm-linux- prefix, I created a directory of links which have that prefix (e.g. arm-linux-gcc) which link to the appropriate tool in the genode tools directory (/usr/local/genode).
the Genode toolchain does not support TLS, which might explain your problem. Since you are running Ubuntu: there seems to be an ARM cross toolchain in the 'universe' repository which might work (haven't tested it).
Christian
Thanks Christian,
I pointed to an arm toolchain from linaro dated 2013.3 and got the build to work successfully.
It might be worth putting a note in step 4 about ARM cross-compiling. The README in the l4re snapshots has a good description about cross-compiling to an ARM target.
Thanks for your help Bob
Sent with AquaMail for Android http://www.aqua-mail.com
On July 29, 2013 8:49:31 AM Christian Prochaska christian.prochaska@genode-labs.com wrote:
Hello Bob,
On 07/29/2013 12:37 PM, Bob Stewart wrote:
Because I was using the genode toolchain whose tools don't have the arm-linux- prefix, I created a directory of links which have that prefix (e.g. arm-linux-gcc) which link to the appropriate tool in the genode tools directory (/usr/local/genode).
the Genode toolchain does not support TLS, which might explain your problem. Since you are running Ubuntu: there seems to be an ARM cross toolchain in the 'universe' repository which might work (haven't tested it).
Christian
l4-hackers mailing list l4-hackers@os.inf.tu-dresden.de http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers
l4-hackers@os.inf.tu-dresden.de