Hi, all:
I am porting android4.0 to our board, but found the binaries in /system/bin
can not be executed.
It always shows "Segmentation fault."
# ./mediaserver
Segmentation fault
# ./wpa_cli
Segmentation fault
# ./vdc
Segmentation fault
I used the defalut config:
============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=4.0.1
TARGET_PRODUCT=full
TARGET_BUILD_VARIANT=eng
TARGET_BUILD_TYPE=release
TARGET_BUILD_APPS=
TARGET_ARCH=arm
TARGET_ARCH_VARIANT=armv7-a
HOST_ARCH=x86
HOST_OS=linux
HOST_BUILD_TYPE=release
BUILD_ID=ITL41D
============================================

I traced with strace
# strace ./vdc
===========================
execve("./vdc", ["./vdc"], [/* 10 vars */]) = 0
syscall_983045(0xb0012c78, 0xb00144c4, 0xffffffc8, 0, 0, 0xb00094f0,
0xbe957e50, 0xf0005, 0xb0012c78, 0, 0, 0, 0, 0xbe957e00, 0xb00047c3,
0xb0001200, 0x10, 0xb0012c78, 0, 0, 0xd8d4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0) = 0
getpid()                                = 1017
getuid32()                              = 0
geteuid32()                             = 0
getgid32()                              = 0
getegid32()                             = 0
sigaction(SIGILL, {0xb0005b31, [], SA_RESTART|SA_SIGINFO}, NULL, 0x45018) =
0
sigaction(SIGABRT, {0xb0005b31, [], SA_RESTART|SA_SIGINFO}, NULL, 0x45018)
= 0
sigaction(SIGBUS, {0xb0005b31, [], SA_RESTART|SA_SIGINFO}, NULL, 0x45018) =
0
sigaction(SIGFPE, {0xb0005b31, [], SA_RESTART|SA_SIGINFO}, NULL, 0x45018) =
0
sigaction(SIGSEGV, {0xb0005b31, [], SA_RESTART|SA_SIGINFO}, NULL, 0x45018)
= 0
sigaction(SIGSTKFLT, {0xb0005b31, [], SA_RESTART|SA_SIGINFO}, NULL,
0x45018) = 0
sigaction(SIGPIPE, {0xb0005b31, [], SA_RESTART|SA_SIGINFO}, NULL, 0x45018)
= 0
stat64("/usr/local/lib/liblog.so", 0xbe957af0) = -1 ENOENT (No such file or
directory)
stat64("/vendor/lib/liblog.so", 0xbe957af0) = -1 ENOENT (No such file or
directory)
stat64("/system/lib/liblog.so", {st_mode=S_IFREG|0644, st_size=13888, ...})
= 0
open("/system/lib/liblog.so", O_RDONLY|O_LARGEFILE) = 3
lseek(3, 0, SEEK_SET)                   = 0
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\0\0\0\000"...,
4096) = 4096
lseek(3, -8, SEEK_END)                  = 13880
read(3, "\1\0\0\0\0\0\0\0", 8)          = 8
mmap2(NULL, 16384, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
0x40093000
mmap2(0x40093000, 10864, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0)
= 0x40093000
mprotect(0x40093000, 12288, PROT_READ|PROT_WRITE|PROT_EXEC) = 0
mmap2(0x40096000, 412, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x3)
= 0x40096000
close(3)                                = 0
stat64("/usr/local/lib/libc.so", 0xbe957848) = -1 ENOENT (No such file or
directory)
stat64("/vendor/lib/libc.so", 0xbe957848) = -1 ENOENT (No such file or
directory)
stat64("/system/lib/libc.so", {st_mode=S_IFREG|0644, st_size=282244, ...})
= 0
open("/system/lib/libc.so", O_RDONLY|O_LARGEFILE) = 3
lseek(3, 0, SEEK_SET)                   = 0
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\0\0\0\000"...,
4096) = 4096
lseek(3, -8, SEEK_END)                  = 282236
read(3, "\1\0\0\0\0\0\0\0", 8)          = 8
mmap2(NULL, 327680, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0)
= 0x400cb000
mmap2(0x400cb000, 268384, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0)
= 0x400cb000
mprotect(0x400cb000, 270336, PROT_READ|PROT_WRITE|PROT_EXEC) = 0
mmap2(0x4010d000, 10132, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3,
0x42) = 0x4010d000
mmap2(0x40110000, 43804, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x40110000
close(3)                                = 0
mprotect(0x400cb000, 270336, PROT_READ|PROT_EXEC) = 0
--- SIGSEGV (Segmentation fault) @ 0 (0) ---
open("/dev/log/main", O_WRONLY|O_LARGEFILE) = -1 ENOENT (No such file or
directory)
gettid()                                = 1017
SYS_281(0x1, 0x1, 0, 0x72, 0xbe95745c)  = 3
SYS_283(0x3, 0xbe95745c, 0x14, 0x72, 0xbe95745c) = -1 ECONNREFUSED
(Connection refused)
close(3)                                = 0
sigaction(SIGSEGV, {SIG_DFL}, {0xb0005b31, [], SA_RESTART|SA_SIGINFO}, 0) =
0
rt_sigreturn(0)                         = -61456
--- SIGSEGV (Segmentation fault) @ 0 (0) ---
+++ killed by SIGSEGV +++
Process 1017 detached
===========================

And find the toolchain has been changed to
 ifeq ($(strip $(TARGET_TOOLS_PREFIX)),)
 TARGET_TOOLS_PREFIX := \

prebuilt/$(HOST_PREBUILT_TAG)/toolchain/arm-linux-androideabi-4.4.x/bin/arm-linux-androideabi-

So I changed back to orginal
prebuilt/$(HOST_PREBUILT_TAG)/toolchain/arm-eabi-4.4.3/bin/arm-eabi-
like gingerbread.

But failed to build whole source:
--------------------------------
frameworks/base/include/binder/IInterface.h:62: error: template with C
linkage
frameworks/base/include/binder/IInterface.h:114: error: template with C
linkage
In file included from frameworks/base/include/ui/Region.h:25,
                 from frameworks/base/include/surfaceflinger/Surface.h:28,
                 from frameworks/base/media/libmedia/IMediaPlayer.cpp:27:
frameworks/base/include/ui/Rect.h:145: error: template specialization with
C linkage
frameworks/base/include/ui/Rect.h:145: error: template specialization with
C linkage
frameworks/base/include/ui/Rect.h:145: error: template specialization with
C linkage
--------------------------------

Any one meet above problem?

Regards
xz

-- 
unsubscribe: android-porting+unsubscr...@googlegroups.com
website: http://groups.google.com/group/android-porting

Reply via email to