[CT_NG] Cross-compiler for Alpha architecture
Ioannis E. Venetis
venetis@capsl.udel.edu
Fri Jun 13 16:18:00 GMT 2008
Dear all,
After having sent a private mail to Yann Morin asking him about Alpha
support in crosstool-ng (and some directions he sent back), I started
adding support for it in the last version of the tool in the trunk
(12-06-2008).
Attached you can find a patch, which should be applied to the code that
you will check-out from the trunk. It adds sub-menus to select the Alpha
architecture and a specific model (EV4, EV5, EV56, etc. The list in the
patch is not complete, however).
I have tried quite a few combinations of binutils/gcc/glibc/kernel
versions (all for an Alpha EV56 processor), but was able to create only
1 cross-compiler, for the following versions:
1) binutils 2.17
2) gcc 4.2.4
3) glibc 2.3.6
4) kernel 2.6.24.7
Well, this is actually the best I can do with the original crosstool
too, but it is a start :-) I would like to be able, however, to create a
cross tool-chain with more recent versions.
Changing versions of the above tools gives different errors. For
example, if I change only the kernel to version 2.6.25.x, the following
error appears:
Installing C library
[ERROR] ../sysdeps/unix/sysv/linux/alpha/sys/user.h:26:22: error:
asm/page.h: No such file or directory
[ERROR] ../sysdeps/unix/sysv/linux/alpha/sys/procfs.h:32:21: error:
asm/elf.h: No such file or directory
[ERROR] ../sysdeps/unix/sysv/linux/alpha/sys/procfs.h:76: error:
expected specifier-qualifier-list before 'elf_gregset_t'
[ERROR] Build failed in step 'Installing C library'
Error happened in
'/root/Temp/crosstool-ng-2008-06-12/scripts/build/libc_glibc.sh' in
function 'do_libc' (line unknown, sorry)
[ERROR] called from
'/root/Temp/crosstool-ng-2008-06-12/scripts/crosstool.sh' at line # 490
in function 'main'
[ERROR] Look at '/opt/test/build.log' for more info on this error.
[ERROR] Build completed at 20080613.190403
If I change back to 2.6.24.7 and use binutils 2.18, then I get the error:
Installing C library
[ERROR] Build failed in step 'Installing C library'
[ERROR] Error happened in
'/root/Temp/crosstool-ng-2008-06-12/scripts/build/libc_glibc.sh' in
function 'do_libc' (line unknown, sorry)
[ERROR] called from
'/root/Temp/crosstool-ng-2008-06-12/scripts/crosstool.sh' at line # 490
in function 'main'
[ERROR] Look at '/opt/test/build.log' for more info on this error.
[ERROR] Build completed at 20080613.191008
The build.log says:
alphaev56-unknown-linux-gnu-gcc -pipe
../sysdeps/unix/sysv/linux/alpha/sigsuspend.S -c -I../include -I.
-I/root/Temp/crosstool-ng-2008-06-12/targets/alphaev56-unknown-linux-gnu/build/build-libc/signal
-I.. -I../libio
-I/root/Temp/crosstool-ng-2008-06-12/targets/alphaev56-unknown-linux-gnu/build/build-libc
-I../linuxthreads/sysdeps/alpha/elf -I../sysdeps/alpha/elf
-I../linuxthreads/sysdeps/unix/sysv/linux/alpha
-I../linuxthreads/sysdeps/unix/sysv/linux
-I../linuxthreads/sysdeps/pthread -I../sysdeps/pthread
-I../linuxthreads/sysdeps/unix/sysv -I../linuxthreads/sysdeps/unix
-I../linuxthreads/sysdeps/alpha -I../sysdeps/unix/sysv/linux/alpha
-I../sysdeps/unix/sysv/linux/wordsize-64 -I../sysdeps/unix/sysv/linux
-I../sysdeps/gnu -I../sysdeps/unix/common -I../sysdeps/unix/mman
-I../sysdeps/unix/inet -I../sysdeps/unix/sysv -I../sysdeps/unix/alpha
-I../sysdeps/unix -I../sysdeps/posix -I../sysdeps/alpha/fpu
-I../sysdeps/alpha -I../sysdeps/wordsize-64 -I../sysdeps/ieee754/flt-32
-I../sysdeps/ieee754/dbl-64 -I../sysdeps/alpha/soft-fp
-I../sysdeps/ieee754 -I../sysdeps/generic/elf -I../sysdeps/generic
-nostdinc -isystem
/root/Temp/crosstool-ng-2008-06-12/targets/alphaev56-unknown-linux-gnu/build/gcc-core-static/lib/gcc/alphaev56-unknown-linux-gnu/4.2.3/include
-isystem /opt/test/alphaev56-unknown-linux-gnu/sys-root/usr/include
-D_LIBC_REENTRANT -include ../include/libc-symbols.h -DASSEMBLER
-Wa,--noexecstack -o
/root/Temp/crosstool-ng-2008-06-12/targets/alphaev56-unknown-linux-gnu/build/build-libc/signal/sigsuspend.o
-MD -MP -MF
/root/Temp/crosstool-ng-2008-06-12/targets/alphaev56-unknown-linux-gnu/build/build-libc/signal/sigsuspend.o.dt
-MT
/root/Temp/crosstool-ng-2008-06-12/targets/alphaev56-unknown-linux-gnu/build/build-libc/signal/sigsuspend.o
[ALL ] ../sysdeps/unix/sysv/linux/alpha/sigsuspend.S: Assembler
messages:
[ALL ] ../sysdeps/unix/sysv/linux/alpha/sigsuspend.S:28: Error: CFI
instruction used without previous .cfi_startproc
[ALL ] ../sysdeps/unix/sysv/linux/alpha/sigsuspend.S:28: Error: CFI
instruction used without previous .cfi_startproc
[ALL ] ../sysdeps/unix/sysv/linux/alpha/sigsuspend.S:28: Error: CFI
instruction used without previous .cfi_startproc
[ALL ] ../sysdeps/unix/sysv/linux/alpha/sigsuspend.S:28: Error: CFI
instruction used without previous .cfi_startproc
[ALL ] ../sysdeps/unix/sysv/linux/alpha/sigsuspend.S:28: Error: CFI
instruction used without previous .cfi_startproc
[ALL ] ../sysdeps/unix/sysv/linux/alpha/sigsuspend.S:28: Error: CFI
instruction used without previous .cfi_startproc
[ALL ] ../sysdeps/unix/sysv/linux/alpha/sigsuspend.S:28: Error: CFI
instruction used without previous .cfi_startproc
[ALL ] ../sysdeps/unix/sysv/linux/alpha/sigsuspend.S:28: Error: CFI
instruction used without previous .cfi_startproc
[ALL ] ../sysdeps/unix/sysv/linux/alpha/sigsuspend.S:30: Error:
.cfi_endproc without corresponding .cfi_startproc
[ALL ] ../sysdeps/unix/sysv/linux/alpha/sigsuspend.S:33: Error: open
CFI at the end of file; missing .cfi_endproc directive
There seems to be an infinite number of combinations and errors :-) I
will have to try more combinations and write down in a table what
exactly happens in each case, so that we get an overall idea. I will try
to do it in the following days. Any suggestions where to start would be
very useful!
Ioannis
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: patch-alpha.txt
URL: <http://sourceware.org/pipermail/crossgcc/attachments/20080613/e317bb16/attachment.txt>
-------------- next part --------------
--
For unsubscribe information see http://sourceware.org/lists.html#faq
More information about the crossgcc
mailing list