Version française
Home     About     Download     Resources     Contact us    
Browse thread
Native compiler on armel (arm-eabi)
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Fabiano <ftarlao@g...>
Subject: Native compiler on armel (arm-eabi)
Hi,
 I have set up  two virtual machines: emulated arm-eabi(armel) and
oldabi(arm)
(Debian linux) using qemu (Aurelien Jarno's debian images :
http://blog.aurel32.net/?p=46 ) in order to compile arm binaries.

Compiling native code ocaml's compilers (make world.opt or make world;
make opt) works fine on oldabi (arm)etch but fails on the eabi (armel)
lenny's virtual machine.

I have downloaded the last ocaml 11.2 and untarred the archive.
compile commands:
./configure
make world;make opt

the configure output states that the platform is not supported by
native compiler but I have reminds about ocaml's native code compiler
supporting EABI platform.

QUESTION:
Am I right? Is ocaml able to generate native code on armel (arm eabi)?
In case, have you suggestions in order  to solve the issue?

Thanks in advance

I have attached the tail of "make opt" compilation and configure's output.
"make opt" compilation's tail:

ln -s ../byterun/custom.c custom.c
gcc -I../byterun -DCAML_NAME_SPACE -DNATIVE_CODE -DTARGET_arm -
DSYS_linux  -O -Wall -D_FILE_OFFSET_BITS=64 -D_REENTRANT   -c -o
custom.o custom.c
ln -s ../byterun/unix.c unix.c
gcc -I../byterun -DCAML_NAME_SPACE -DNATIVE_CODE -DTARGET_arm -
DSYS_linux  -O -Wall -D_FILE_OFFSET_BITS=64 -D_REENTRANT   -c -o
unix.o unix.c
gcc -I../byterun -DCAML_NAME_SPACE -DNATIVE_CODE -DTARGET_arm -
DSYS_linux  -O -Wall -D_FILE_OFFSET_BITS=64 -D_REENTRANT   -c -o
backtrace.o backtrace.c
gcc -I../byterun -DCAML_NAME_SPACE -DNATIVE_CODE -DTARGET_arm -
DSYS_linux  -O -Wall -D_FILE_OFFSET_BITS=64 -D_REENTRANT   -c -o
natdynlink.o natdynlink.c
gcc -c -DSYS_linux -o arm.o arm.S || \
        { echo "If your assembler produced syntax errors, it is
probably unhappy with the"; echo "preprocessor. Check your assembler,
or try producing arm.o by hand."; exit 2; }
arm.S: Assembler messages:
arm.S:21: Warning: ignoring attempt to redefine built-in register 'sp'
arm.S:22: Warning: ignoring attempt to redefine built-in register 'lr'
arm.S:23: Warning: ignoring attempt to redefine built-in register 'pc'
arm.S:114: Error: selected processor does not support `stfd f0,
[sp,#-8]!'
arm.S:115: Error: selected processor does not support `stfd f1,
[sp,#-8]!'
arm.S:116: Error: selected processor does not support `stfd f2,
[sp,#-8]!'
arm.S:117: Error: selected processor does not support `stfd f3,
[sp,#-8]!'
arm.S:127: Error: selected processor does not support `ldfd f4,
[sp],#8'
arm.S:128: Error: selected processor does not support `ldfd f5,
[sp],#8'
arm.S:129: Error: selected processor does not support `ldfd f6,
[sp],#8'
arm.S:130: Error: selected processor does not support `ldfd f7,
[sp],#8'
arm.S:186: Error: selected processor does not support `stfd f7,
[sp,#-8]!'
arm.S:187: Error: selected processor does not support `stfd f6,
[sp,#-8]!'
arm.S:188: Error: selected processor does not support `stfd f5,
[sp,#-8]!'
arm.S:189: Error: selected processor does not support `stfd f4,
[sp,#-8]!'
arm.S:242: Error: selected processor does not support `ldfd f4,
[sp],#8'
arm.S:243: Error: selected processor does not support `ldfd f5,
[sp],#8'
arm.S:244: Error: selected processor does not support `ldfd f6,
[sp],#8'
arm.S:245: Error: selected processor does not support `ldfd f7,
[sp],#8'
If your assembler produced syntax errors, it is probably unhappy with
the
preprocessor. Check your assembler, or try producing arm.o by hand.
make[2]: *** [arm.o] Error 2
make[2]: Leaving directory `/home/user/ocaml-3.11.2/asmrun'
make[1]: *** [makeruntimeopt] Error 2
make[1]: Leaving directory `/home/user/ocaml-3.11.2'
make: *** [opt] Error 2


full configure output:



Configuring for a armv5tejl-unknown-linux-gnu ...
gcc found
The C compiler is ANSI-compliant.
Checking the sizes of integers and pointers...
OK, this is a regular 32 bit architecture.
64-bit "long long" integer type found (printf with "%ll").
This is a little-endian architecture.
Doubles can be word-aligned.
64-bit integers can be word-aligned.
Native division and modulus have round-towards-zero semantics, will
use them.
ranlib found
#! appears to work in shell scripts
POSIX signal handling found.
getrusage() found.
times() found.
You have BSD sockets.
socklen_t is defined in <sys/socket.h>
inet_aton() found.
IPv6 is supported.
unistd.h found.
off_t is defined in <sys/types.h>
dirent.h found.
rewinddir() found.
lockf() found.
mkfifo() found.
getcwd() found.
getwd() found.
getpriority() found.
utime() found.
utimes() found.
dup2() found.
fchmod() found.
truncate() found.
sys/select.h found.
select() found.
symlink() found.
waitpid() found.
wait4() found.
getgroups() found.
POSIX termios found.
Asynchronous I/O are supported.
setitimer() found.
gethostname() found.
uname() found.
gettimeofday() found.
mktime() found.
setsid() found.
putenv() found.
setlocale() and <locale.h> found.
dlopen() found in -ldl.
Dynamic loading of shared libraries is supported.
mmap() found.
gethostbyname_r() found (with 6 arguments).
gethostbyaddr_r() found (with 8 arguments).
Replay debugger supported.
Cannot detect system stack overflow.
POSIX threads library supported.
Options for linking with POSIX threads: -lpthread
sigwait() found
Bytecode threads library supported.
X11 not found, the "graph" library will not be supported.
NDBM not found, the "dbm" library will not be supported.
Configuring LablTk...
X11 not found.
Configuration failed, LablTk will not be built.

** Configuration summary **

Directories where Objective Caml will be installed:
        binaries.................. /usr/local/bin
        standard library.......... /usr/local/lib/ocaml
        manual pages.............. /usr/local/man (with extension .1)
Configuration for the bytecode compiler:
        C compiler used........... gcc
        options for compiling..... -fno-defer-pop -Wall -
D_FILE_OFFSET_BITS=64 -D_REENTRANT
        options for linking.......  -Wl,-E  -lm  -ldl  -lpthread
        shared libraries are supported
        options for compiling..... -fPIC -fno-defer-pop -Wall -
D_FILE_OFFSET_BITS=64 -D_REENTRANT
        command for building...... gcc -shared -o lib.so -Wl,-rpath,/a/
path objs
Configuration for the native-code compiler:
        hardware architecture..... arm
        OS variant................ linux
        C compiler used........... gcc
        options for compiling..... -Wall -D_FILE_OFFSET_BITS=64 -
D_REENTRANT
        options for linking.......   -lm
assembler ................ as
        preprocessed assembler ... gcc -c
        profiling with gprof ..... not supported
Source-level replay debugger: supported
Additional libraries supported:
        unix str num dynlink bigarray systhreads threads
Configuration for the "num" library:
        target architecture ...... generic (asm level 0)
Configuration for the "graph" library:
        options for compiling ....
        options for linking ...... not found
The "labltk" library: not supported
** Objective Caml configuration completed successfully **