* [Buildroot] Illegal Instruction in arm buildroot
@ 2007-11-15 13:17 ing. Federico Fuga
0 siblings, 0 replies; 5+ messages in thread
From: ing. Federico Fuga @ 2007-11-15 13:17 UTC (permalink / raw)
To: buildroot
Hi,
I have a strange problem with buildroot built for an em-x270 board (an
arm pxa270 based platform from compulab.co.il).
All the build is performed correctly, and after some small change I have
a working environment with busybox, udev, alsa, wireless tools, modutils
and a kernel 2.6.23.1 (patched with some platform-dependent patch).
But some program doesn't work at all, because the program receives a
SIGILL (Illegal Instruction exception): for example, wget crashes after
reading a remote file, udevd do not work at all, and also udhcpc crashes.
I have straced udevd and wget, and it seems to crash after a certain
call to syscall_nnnn where nnnn is different between the two applications.
I have tried many, many different configurations, involving different
version of gcc (4.0.1, 4.1.2, 4.2.1), of binutils (2.18 and 2.18.50.3,
AFAIR), of uclibc (0.9.29 and 0.9.28.x) and kernel headers (2.6.23 and
2.6.22).
I also have tried with different arm cpu optimizations, xscale and
generic, and xscale w/ coprocessor for the uclibc (I hoped that the
problem was in the different cpu for the uclibc and toolchain, but
without luck). I have passed --with-cpu=xscale to binutils and gcc.
None ot these configurations makes the system work.
I can exclude the kernel, because it's taken from the working
angstrom-linux provided by compulab, and it works well compiled with the
uclibc toolchain and a standard glibc toolchain, in both cases.
I provide the buildroot config files for reference.
Do you have any idea or suggestion ?
Thank you in advance!
best regards,
ing. Federico Fuga
[ The message was reposted because of the attachment limits ]
--
-------------- next part --------------
A non-text attachment was scrubbed...
Name: freescan.config
Type: application/x-config
Size: 15078 bytes
Desc: not available
Url : http://busybox.net/lists/buildroot/attachments/20071115/dafef198/attachment.bin
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Buildroot] Illegal Instruction in arm buildroot
@ 2007-11-15 13:39 Michael Trimarchi
2007-11-15 13:58 ` ing. Federico Fuga
0 siblings, 1 reply; 5+ messages in thread
From: Michael Trimarchi @ 2007-11-15 13:39 UTC (permalink / raw)
To: buildroot
Hi,
>Hi,
>I have a strange problem with buildroot built for an em-x270 board (an
>arm pxa270 based platform from compulab.co.il).
>All the build is performed correctly, and after some small change I
have
>a working environment with busybox, udev, alsa, wireless tools,
modutils
>and a kernel 2.6.23.1 (patched with some platform-dependent patch).
>But some program doesn't work at all, because the program receives a
>SIGILL (Illegal Instruction exception): for example, wget crashes after
>reading a remote file, udevd do not work at all, and also udhcpc
crashes.
Maybe you have some soft-float operation and the kernel e/o toolchain
doesn't have the support
Regards
Michael
___________________________________
L'email della prossima generazione? Puoi averla con la nuova Yahoo! Mail: http://it.docs.yahoo.com/nowyoucan.html
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://busybox.net/lists/buildroot/attachments/20071115/d86ffefd/attachment.htm
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Buildroot] Illegal Instruction in arm buildroot
2007-11-15 13:39 Michael Trimarchi
@ 2007-11-15 13:58 ` ing. Federico Fuga
0 siblings, 0 replies; 5+ messages in thread
From: ing. Federico Fuga @ 2007-11-15 13:58 UTC (permalink / raw)
To: buildroot
Dear Michael,
thank you for your response.
> Maybe you have some soft-float operation and the kernel e/o toolchain
> doesn't have the support
I have searched the config files for soft_float options, but the only
section that provides that is on the external_toolchain
happycactus at cammello:~/buildroot> grep SOFT_FLOAT */*/Config.in
toolchain/external-toolchain/Config.in:config BR2_SOFT_FLOAT
and
happycactus at cammello:~/buildroot> grep FLOAT local/freescan/*
local/freescan/freescan.config:# BR2_SOFT_FLOAT is not set
local/freescan/freescan.config:# BR2_PACKAGE_LIBFLOAT is not set
local/freescan/uclibc-0.9.29.config:UCLIBC_HAS_FLOATS=y
local/freescan/uclibc-0.9.29.config:UCLIBC_HAS_HEXADECIMAL_FLOATS=y
So I am not sure to have really understood your suggestion.
Can you explain? Thank you in advance!
Best regards,
ing. Federico Fuga
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Buildroot] Illegal Instruction in arm buildroot
@ 2007-11-15 14:09 Michael Trimarchi
2007-11-15 14:43 ` ing. Federico Fuga
0 siblings, 1 reply; 5+ messages in thread
From: Michael Trimarchi @ 2007-11-15 14:09 UTC (permalink / raw)
To: buildroot
Hi,
>I have searched the config files for soft_float options, but the only
>section that provides that is on the external_toolchain
>happycactus at cammello:~/buildroot> grep SOFT_FLOAT */*/Config.in
>toolchain/external-toolchain/Config.in:config BR2_SOFT_FLOAT
double a;
...
a = 1.40;
a = a / 23;
If the cpu doesn't provide an fpu unit, you must add the soft float emulation
in your kernel config e/o in your toolchain.
Kernel just resolve the illegal instruction using a soft float unit.
Regards michael
___________________________________
L'email della prossima generazione? Puoi averla con la nuova Yahoo! Mail: http://it.docs.yahoo.com/nowyoucan.html
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://busybox.net/lists/buildroot/attachments/20071115/c2b9b0f2/attachment.htm
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Buildroot] Illegal Instruction in arm buildroot
2007-11-15 14:09 [Buildroot] Illegal Instruction in arm buildroot Michael Trimarchi
@ 2007-11-15 14:43 ` ing. Federico Fuga
0 siblings, 0 replies; 5+ messages in thread
From: ing. Federico Fuga @ 2007-11-15 14:43 UTC (permalink / raw)
To: buildroot
Hi again,
I was meaning that I cannot find the SOFT_FLOAT options for the
buildroot toolchain building, maybe I had to search in the scripts (.mk).
But I have found the problem for the busybox (wget et al.), by
disableing the MONOTONIC_SYSCALL option now busybox works correctly
(wget and udhcpc doesn't crash anymore).
The problem persist with udevd (144 and 116 versions), but I think I
have traced the problem to the inotify syscall:
Core was generated by `./udevd'.
Program terminated with signal 4, Illegal instruction.
#0 0x40016cc0 in syscall () from /lib/libc.so.0
(gdb) bt
#0 0x40016cc0 in syscall () from /lib/libc.so.0
#1 0x0000a9b4 in main (argc=<value optimized out>,
argv=<value optimized out>, envp=<value optimized out>)
at udev_sysdeps.h:116
(gdb)
and (for udev v.116) line 116 is
static inline int inotify_init(void)
{
return syscall(__NR_inotify_init);
}
BTW, I have checked your suggestion and find that at boot:
NetWinder Floating Point Emulator V0.97 (double
precision)
and a simple program that performs and prints 4.0/1.33 is compiled and
executed correctly (so FP unit is working, it seems.)
Thank you again for your suggestions.
Regards,
ing. Federico Fuga
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2007-11-15 14:43 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-11-15 14:09 [Buildroot] Illegal Instruction in arm buildroot Michael Trimarchi
2007-11-15 14:43 ` ing. Federico Fuga
-- strict thread matches above, loose matches on Subject: below --
2007-11-15 13:39 Michael Trimarchi
2007-11-15 13:58 ` ing. Federico Fuga
2007-11-15 13:17 ing. Federico Fuga
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox