[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