This is the mail archive of the crossgcc@sources.redhat.com mailing list for the crossgcc project.
See the CrossGCC FAQ for lots more information.
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
| Other format: | [Raw text] | |
test # strace ./hello.shared execve("./hello.shared", ["./hello.shared"], [/* 5 vars */]) = 0 uname({sys="Linux", node="(none)", ...}) = 0 brk(0) = 0x1060c open("/etc/ld.so.preload", O_RDONLY) = -1 ENOENT (No such file or directory) --- SIGILL (Illegal instruction) @ 0 (0) --- +++ killed by SIGIL
--- Why it is opening ld.so.preload?
/test # strace ./hello.shared
execve("./hello.shared", ["./hello.shared"], [/* 5 vars */]) = 0
uname({sys="Linux", node="(none)", ...}) = 0
brk(0) = 0x10550
open("/etc/ld.so.preload", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=10, ...}) = 0
old_mmap(NULL, 10, PROT_READ|PROT_WRITE, MAP_PRIVATE, 3, 0) = 0x40013000
close(3) = 0
open("/etc/ld.so.cache", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=802, ...}) = 0
old_mmap(NULL, 802, PROT_READ, MAP_PRIVATE, 3, 0) = 0x40014000
close(3) = 0
open("/lib/libc.so.6", O_RDONLY) = 3
read(3, "\177ELF\1\1\1a\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0008\241\1"...,
1024) = 1024
fstat64(3, {st_mode=S_IFREG|0755, st_size=1254738, ...}) = 0
old_mmap(NULL, 1103544, PROT_READ|PROT_EXEC,
MAP_PRIVATE, 3, 0) = 0x4001c000
mprotect(0x40119000, 67256, PROT_NONE) = 0
old_mmap(0x4011c000, 40960, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED, 3, 0xf8
000) = 0x4011c000
old_mmap(0x40126000, 14008, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANON
YMOUS, -1, 0) = 0x40126000
close(3) = 0
munmap(0x40013000, 10) = 0
--- SIGILL (Illegal instruction) @ 0 (0) ---
+++ killed by SIGILL +++
It does look like putting something in ld.so.preload helped, but I can't figure out why. BTW, that trace looks very much like a normal trace (as you can tell on your build system); when I do it, the final munmap is followed by
fstat64(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 1), ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x4017000
write(1, "hello, world\n", 13) = 13It sounds like maybe the app is crashing on startup. You might need to create a statically linked gdb or gdbserver to dig into this further, and possibly compile glibc for debugging.
It is quite likely that crosstool doesn't have some option or patch you need to get things to work on this platform. If you find it, let me know :-) - Dan
------ Want more information? See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/ Want to unsubscribe? Send a note to crossgcc-unsubscribe@sources.redhat.com
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |