Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

libflutter so cannot be loaded #36

Closed
ranciere opened this issue May 29, 2020 · 26 comments
Closed

libflutter so cannot be loaded #36

ranciere opened this issue May 29, 2020 · 26 comments
Labels
bug Something isn't working clang-8.0.0 Specific to Clang 8

Comments

@ranciere
Copy link

ranciere commented May 29, 2020

The library loading problem is still an issue. Output of running flutter_glfw:
/flutter_glfw: error while loading shared libraries: libflutter_engine.so: cannot open shared object file: No such file or directory
The libflutter_engine.so is in usr/lib/arm-linux-gnueabihf/libflutter_engine.so. The executable tries to load it, but it is unsuccessful.

@jwinarske
Copy link
Collaborator

I'll take a look this weekend

@ranciere
Copy link
Author

ranciere commented Jun 8, 2020

Hi @jwinarske Is there any progress on the issue?

@jwinarske
Copy link
Collaborator

@ranciere not yet. Just finished setting up my new build machine. Soon

@ranciere
Copy link
Author

I've also bought a new machine (Ryzen 9 3900X) because of the compilation time :D

@jwinarske
Copy link
Collaborator

My 3960X officially went into service yesterday :D

@ranciere
Copy link
Author

Hi @jwinarske Could you deal with it?

@jwinarske
Copy link
Collaborator

pi@raspberrypi:/lib/arm-linux-gnueabihf $ ldd -r -v ./libflutter_engine.so 
	not a dynamic executable

It should look something like this

pi@raspberrypi:/lib/arm-linux-gnueabihf $ ldd -v libm.so.6 
	linux-vdso.so.1 (0x7ec33000)
	/usr/lib/arm-linux-gnueabihf/libarmmem-${PLATFORM}.so => /usr/lib/arm-linux-gnueabihf/libarmmem-v7l.so (0x76ea6000)
	libc.so.6 => /lib/arm-linux-gnueabihf/libc.so.6 (0x76d42000)
	/lib/ld-linux-armhf.so.3 (0x76f3d000)

	Version information:
	./libm.so.6:
		ld-linux-armhf.so.3 (GLIBC_2.4) => /lib/ld-linux-armhf.so.3
		libc.so.6 (GLIBC_PRIVATE) => /lib/arm-linux-gnueabihf/libc.so.6
		libc.so.6 (GLIBC_2.4) => /lib/arm-linux-gnueabihf/libc.so.6
	/usr/lib/arm-linux-gnueabihf/libarmmem-v7l.so:
		libc.so.6 (GLIBC_2.4) => /lib/arm-linux-gnueabihf/libc.so.6
	/lib/arm-linux-gnueabihf/libc.so.6:
		ld-linux-armhf.so.3 (GLIBC_2.4) => /lib/ld-linux-armhf.so.3
		ld-linux-armhf.so.3 (GLIBC_PRIVATE) => /lib/ld-linux-armhf.so.3

@jwinarske
Copy link
Collaborator

What do you get from strace ldd -v /usr/lib/arm-linux-gnueabihf/libflutter_engine.so?

@jwinarske jwinarske added the locale Locale related issue label Jul 2, 2020
@ranciere
Copy link
Author

Hi @jwinarske ,
ldd output:

pi@raspberrypi:~ $ ldd -r -v /usr/lib/arm-linux-gnueabihf/libflutter_engine.so 
	not a dynamic executable

The output of the stracing:

pi@raspberrypi:~ $ strace ldd -v /usr/lib/arm-linux-gnueabihf/libflutter_engine.so
execve("/usr/bin/ldd", ["ldd", "-v", "/usr/lib/arm-linux-gnueabihf/lib"...], 0xbeede568 /* 34 vars */) = 0
brk(NULL)                               = 0x77b000
uname({sysname="Linux", nodename="raspberrypi", ...}) = 0
mmap2(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb6f26000
access("/etc/ld.so.preload", R_OK)      = 0
openat(AT_FDCWD, "/etc/ld.so.preload", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=54, ...}) = 0
mmap2(NULL, 54, PROT_READ|PROT_WRITE, MAP_PRIVATE, 3, 0) = 0xb6f25000
close(3)                                = 0
readlink("/proc/self/exe", "/bin/bash", 4096) = 9
openat(AT_FDCWD, "/usr/lib/arm-linux-gnueabihf/libarmmem-v7l.so", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\254\3\0\0004\0\0\0"..., 512) = 512
_llseek(3, 16748, [16748], SEEK_SET)    = 0
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 960) = 960
_llseek(3, 16424, [16424], SEEK_SET)    = 0
read(3, "A,\0\0\0aeabi\0\1\"\0\0\0\0056\0\6\6\10\1\t\2\n\3\f\1\22\4\24"..., 45) = 45
_llseek(3, 16748, [16748], SEEK_SET)    = 0
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 960) = 960
_llseek(3, 16424, [16424], SEEK_SET)    = 0
read(3, "A,\0\0\0aeabi\0\1\"\0\0\0\0056\0\6\6\10\1\t\2\n\3\f\1\22\4\24"..., 45) = 45
_llseek(3, 16748, [16748], SEEK_SET)    = 0
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 960) = 960
_llseek(3, 16424, [16424], SEEK_SET)    = 0
read(3, "A,\0\0\0aeabi\0\1\"\0\0\0\0056\0\6\6\10\1\t\2\n\3\f\1\22\4\24"..., 45) = 45
_llseek(3, 16748, [16748], SEEK_SET)    = 0
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 960) = 960
_llseek(3, 16424, [16424], SEEK_SET)    = 0
read(3, "A,\0\0\0aeabi\0\1\"\0\0\0\0056\0\6\6\10\1\t\2\n\3\f\1\22\4\24"..., 45) = 45
_llseek(3, 16748, [16748], SEEK_SET)    = 0
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 960) = 960
_llseek(3, 16424, [16424], SEEK_SET)    = 0
read(3, "A,\0\0\0aeabi\0\1\"\0\0\0\0056\0\6\6\10\1\t\2\n\3\f\1\22\4\24"..., 45) = 45
_llseek(3, 16748, [16748], SEEK_SET)    = 0
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 960) = 960
_llseek(3, 16424, [16424], SEEK_SET)    = 0
read(3, "A,\0\0\0aeabi\0\1\"\0\0\0\0056\0\6\6\10\1\t\2\n\3\f\1\22\4\24"..., 45) = 45
fstat64(3, {st_mode=S_IFREG|0644, st_size=17708, ...}) = 0
mmap2(NULL, 81964, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb6ee3000
mprotect(0xb6ee7000, 61440, PROT_NONE)  = 0
mmap2(0xb6ef6000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x3000) = 0xb6ef6000
close(3)                                = 0
munmap(0xb6f25000, 54)                  = 0
openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=97821, ...}) = 0
mmap2(NULL, 97821, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb6ecb000
close(3)                                = 0
openat(AT_FDCWD, "/lib/arm-linux-gnueabihf/libtinfo.so.6", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0pn\0\0004\0\0\0"..., 512) = 512
_llseek(3, 132176, [132176], SEEK_SET)  = 0
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1040) = 1040
_llseek(3, 131828, [131828], SEEK_SET)  = 0
read(3, "A,\0\0\0aeabi\0\1\"\0\0\0\0056\0\6\6\10\1\t\1\n\2\22\4\24\1\25"..., 45) = 45
_llseek(3, 132176, [132176], SEEK_SET)  = 0
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1040) = 1040
_llseek(3, 131828, [131828], SEEK_SET)  = 0
read(3, "A,\0\0\0aeabi\0\1\"\0\0\0\0056\0\6\6\10\1\t\1\n\2\22\4\24\1\25"..., 45) = 45
_llseek(3, 132176, [132176], SEEK_SET)  = 0
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1040) = 1040
_llseek(3, 131828, [131828], SEEK_SET)  = 0
read(3, "A,\0\0\0aeabi\0\1\"\0\0\0\0056\0\6\6\10\1\t\1\n\2\22\4\24\1\25"..., 45) = 45
_llseek(3, 132176, [132176], SEEK_SET)  = 0
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1040) = 1040
_llseek(3, 131828, [131828], SEEK_SET)  = 0
read(3, "A,\0\0\0aeabi\0\1\"\0\0\0\0056\0\6\6\10\1\t\1\n\2\22\4\24\1\25"..., 45) = 45
_llseek(3, 132176, [132176], SEEK_SET)  = 0
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1040) = 1040
_llseek(3, 131828, [131828], SEEK_SET)  = 0
read(3, "A,\0\0\0aeabi\0\1\"\0\0\0\0056\0\6\6\10\1\t\1\n\2\22\4\24\1\25"..., 45) = 45
fstat64(3, {st_mode=S_IFREG|0644, st_size=133216, ...}) = 0
mmap2(NULL, 198300, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb6e9a000
mprotect(0xb6eb8000, 65536, PROT_NONE)  = 0
mmap2(0xb6ec8000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1e000) = 0xb6ec8000
close(3)                                = 0
openat(AT_FDCWD, "/lib/arm-linux-gnueabihf/libdl.so.2", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0 \n\0\0004\0\0\0"..., 512) = 512
_llseek(3, 8688, [8688], SEEK_SET)      = 0
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1080) = 1080
_llseek(3, 8340, [8340], SEEK_SET)      = 0
read(3, "A.\0\0\0aeabi\0\1$\0\0\0\0056\0\6\6\10\1\t\1\n\2\22\4\23\1\24"..., 47) = 47
_llseek(3, 8688, [8688], SEEK_SET)      = 0
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1080) = 1080
_llseek(3, 8340, [8340], SEEK_SET)      = 0
read(3, "A.\0\0\0aeabi\0\1$\0\0\0\0056\0\6\6\10\1\t\1\n\2\22\4\23\1\24"..., 47) = 47
_llseek(3, 8688, [8688], SEEK_SET)      = 0
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1080) = 1080
_llseek(3, 8340, [8340], SEEK_SET)      = 0
read(3, "A.\0\0\0aeabi\0\1$\0\0\0\0056\0\6\6\10\1\t\1\n\2\22\4\23\1\24"..., 47) = 47
fstat64(3, {st_mode=S_IFREG|0644, st_size=9768, ...}) = 0
mmap2(NULL, 73924, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb6e87000
mprotect(0xb6e89000, 61440, PROT_NONE)  = 0
mmap2(0xb6e98000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1000) = 0xb6e98000
close(3)                                = 0
openat(AT_FDCWD, "/lib/arm-linux-gnueabihf/libc.so.6", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\300x\1\0004\0\0\0"..., 512) = 512
_llseek(3, 1293204, [1293204], SEEK_SET) = 0
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 2800) = 2800
_llseek(3, 1289788, [1289788], SEEK_SET) = 0
read(3, "A.\0\0\0aeabi\0\1$\0\0\0\0056\0\6\6\10\1\t\1\n\2\22\4\23\1\24"..., 47) = 47
_llseek(3, 1293204, [1293204], SEEK_SET) = 0
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 2800) = 2800
_llseek(3, 1289788, [1289788], SEEK_SET) = 0
read(3, "A.\0\0\0aeabi\0\1$\0\0\0\0056\0\6\6\10\1\t\1\n\2\22\4\23\1\24"..., 47) = 47
_llseek(3, 1293204, [1293204], SEEK_SET) = 0
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 2800) = 2800
_llseek(3, 1289788, [1289788], SEEK_SET) = 0
read(3, "A.\0\0\0aeabi\0\1$\0\0\0\0056\0\6\6\10\1\t\1\n\2\22\4\23\1\24"..., 47) = 47
_llseek(3, 1293204, [1293204], SEEK_SET) = 0
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 2800) = 2800
_llseek(3, 1289788, [1289788], SEEK_SET) = 0
read(3, "A.\0\0\0aeabi\0\1$\0\0\0\0056\0\6\6\10\1\t\1\n\2\22\4\23\1\24"..., 47) = 47
_llseek(3, 1293204, [1293204], SEEK_SET) = 0
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 2800) = 2800
_llseek(3, 1289788, [1289788], SEEK_SET) = 0
read(3, "A.\0\0\0aeabi\0\1$\0\0\0\0056\0\6\6\10\1\t\1\n\2\22\4\23\1\24"..., 47) = 47
_llseek(3, 1293204, [1293204], SEEK_SET) = 0
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 2800) = 2800
_llseek(3, 1289788, [1289788], SEEK_SET) = 0
read(3, "A.\0\0\0aeabi\0\1$\0\0\0\0056\0\6\6\10\1\t\1\n\2\22\4\23\1\24"..., 47) = 47
fstat64(3, {st_mode=S_IFREG|0755, st_size=1296004, ...}) = 0
mmap2(NULL, 1364764, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb6d39000
mprotect(0xb6e71000, 65536, PROT_NONE)  = 0
mmap2(0xb6e81000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x138000) = 0xb6e81000
mmap2(0xb6e84000, 8988, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb6e84000
close(3)                                = 0
mmap2(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb6f24000
set_tls(0xb6f244d0)                     = 0
mprotect(0xb6e81000, 8192, PROT_READ)   = 0
mprotect(0xb6e98000, 4096, PROT_READ)   = 0
mprotect(0xb6ec8000, 8192, PROT_READ)   = 0
mprotect(0xb6ef6000, 4096, PROT_READ)   = 0
mprotect(0xfc000, 4096, PROT_READ)      = 0
mprotect(0xb6f28000, 4096, PROT_READ)   = 0
munmap(0xb6ecb000, 97821)               = 0
openat(AT_FDCWD, "/dev/tty", O_RDWR|O_NONBLOCK|O_LARGEFILE) = 3
close(3)                                = 0
brk(NULL)                               = 0x77b000
brk(0x79c000)                           = 0x79c000
openat(AT_FDCWD, "/usr/lib/locale/locale-archive", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=3031632, ...}) = 0
mmap2(NULL, 2097152, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb6b39000
mmap2(NULL, 2596864, PROT_READ, MAP_PRIVATE, 3, 0x6b000) = 0xb68bf000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/arm-linux-gnueabihf/gconv/gconv-modules.cache", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=26406, ...}) = 0
mmap2(NULL, 26406, PROT_READ, MAP_SHARED, 3, 0) = 0xb6f1d000
close(3)                                = 0
getuid32()                              = 1000
getgid32()                              = 1000
geteuid32()                             = 1000
getegid32()                             = 1000
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
gettimeofday({tv_sec=1594395432, tv_usec=788710}, NULL) = 0
ioctl(-1, TIOCGPGRP, 0xbed7a2d0)        = -1 EBADF (Bad file descriptor)
sysinfo({uptime=168552, loads=[79040, 82624, 76992], totalram=2033659904, freeram=1199095808, sharedram=41578496, bufferram=116244480, totalswap=104853504, freeswap=104853504, procs=195, totalhigh=1262485504, freehigh=667889664, mem_unit=1}) = 0
rt_sigaction(SIGCHLD, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0xb6d66120}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGCHLD, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0xb6d66120}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0xb6d66120}, 8) = 0
rt_sigaction(SIGINT, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0xb6d66120}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGINT, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0xb6d66120}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0xb6d66120}, 8) = 0
rt_sigaction(SIGQUIT, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0xb6d66120}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGQUIT, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0xb6d66120}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0xb6d66120}, 8) = 0
rt_sigaction(SIGTSTP, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0xb6d66120}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGTSTP, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0xb6d66120}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0xb6d66120}, 8) = 0
rt_sigaction(SIGTTIN, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0xb6d66120}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGTTIN, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0xb6d66120}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0xb6d66120}, 8) = 0
rt_sigaction(SIGTTOU, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0xb6d66120}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGTTOU, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0xb6d66120}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0xb6d66120}, 8) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
rt_sigaction(SIGQUIT, {sa_handler=SIG_IGN, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0xb6d66120}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0xb6d66120}, 8) = 0
uname({sysname="Linux", nodename="raspberrypi", ...}) = 0
stat64("/home/pi", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat64(".", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat64("/home", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat64("/home/pi", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat64("/", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
getpid()                                = 20005
getppid()                               = 20001
gettimeofday({tv_sec=1594395432, tv_usec=793958}, NULL) = 0
getpid()                                = 20005
getpgrp()                               = 20001
ioctl(2, TIOCGPGRP, [20001])            = 0
rt_sigaction(SIGCHLD, {sa_handler=0x55a6c, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0xb6d66120}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0xb6d66120}, 8) = 0
ugetrlimit(RLIMIT_NPROC, {rlim_cur=13451, rlim_max=13451}) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
openat(AT_FDCWD, "/usr/bin/ldd", O_RDONLY|O_LARGEFILE) = 3
stat64("/usr/bin/ldd", {st_mode=S_IFREG|0755, st_size=5313, ...}) = 0
ioctl(3, TCGETS, 0xbed7a270)            = -1 ENOTTY (Inappropriate ioctl for device)
_llseek(3, 0, [0], SEEK_CUR)            = 0
read(3, "#! /bin/bash\n# Copyright (C) 199"..., 80) = 80
_llseek(3, 0, [0], SEEK_SET)            = 0
ugetrlimit(RLIMIT_NOFILE, {rlim_cur=1024, rlim_max=1024*1024}) = 0
fcntl64(255, F_GETFD)                   = -1 EBADF (Bad file descriptor)
dup2(3, 255)                            = 255
close(3)                                = 0
fcntl64(255, F_SETFD, FD_CLOEXEC)       = 0
fcntl64(255, F_GETFL)                   = 0x20000 (flags O_RDONLY|O_LARGEFILE)
fstat64(255, {st_mode=S_IFREG|0755, st_size=5313, ...}) = 0
_llseek(255, 0, [0], SEEK_CUR)          = 0
read(255, "#! /bin/bash\n# Copyright (C) 199"..., 5313) = 5313
openat(AT_FDCWD, "/usr/share/locale/locale.alias", O_RDONLY|O_CLOEXEC) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=2995, ...}) = 0
read(3, "# Locale name alias data base.\n#"..., 4096) = 2995
read(3, "", 4096)                       = 0
close(3)                                = 0
openat(AT_FDCWD, "/usr/share/locale/en_US.UTF-8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/share/locale/en_US.utf8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/share/locale/en_US/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/share/locale/en.UTF-8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/share/locale/en.utf8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/share/locale/en/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/usr/lib/arm-linux-gnueabihf/libflutter_engine.so", {st_mode=S_IFREG|0644, st_size=27140084, ...}) = 0
stat64("/usr/lib/arm-linux-gnueabihf/libflutter_engine.so", {st_mode=S_IFREG|0644, st_size=27140084, ...}) = 0
faccessat(AT_FDCWD, "/usr/lib/arm-linux-gnueabihf/libflutter_engine.so", R_OK) = 0
faccessat(AT_FDCWD, "/lib/ld-linux-armhf.so.3", X_OK) = 0
pipe([3, 4])                            = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [INT CHLD], [], 8) = 0
_llseek(255, -52, [5261], SEEK_CUR)     = 0
clone(child_stack=NULL, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0xb6f24078) = 20011
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigaction(SIGCHLD, {sa_handler=0x55a6c, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0xb6d66120}, {sa_handler=0x55a6c, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0xb6d66120}, 8) = 0
close(4)                                = 0
read(3, "Usage: ld.so [OPTION]... EXECUTA"..., 128) = 128
read(3, "xecutables.\nThis program usually"..., 128) = 128
read(3, "raries tell the system's program"..., 128) = 128
read(3, "es needed by the program executa"..., 128) = 128
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=20011, si_uid=1000, si_status=127, si_utime=0, si_stime=0} ---
wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 127}], WNOHANG, NULL) = 20011
wait4(-1, 0xbed792bc, WNOHANG, NULL)    = -1 ECHILD (No child processes)
sigreturn({mask=[]})                    = 128
read(3, " the\ncommand line to load and ru"..., 128) = 128
read(3, "rogram from the file you\nspecifi"..., 128) = 128
read(3, " of use for maintainers to test "..., 128) = 128
read(3, "st                list all depen"..., 128) = 128
read(3, "ynamically linked\n\t\t\tobject we c"..., 128) = 128
read(3, "PATH instead of content of the e"..., 128) = 128
read(3, "ion in object names\n\t\t\tin LIST\n "..., 128) = 93
read(3, "", 128)                        = 0
close(3)                                = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigaction(SIGINT, {sa_handler=0x526b4, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0xb6d66120}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0xb6d66120}, 8) = 0
rt_sigaction(SIGINT, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0xb6d66120}, {sa_handler=0x526b4, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0xb6d66120}, 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
pipe([3, 4])                            = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [INT CHLD], [], 8) = 0
clone(child_stack=NULL, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0xb6f24078) = 20015
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigaction(SIGCHLD, {sa_handler=0x55a6c, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0xb6d66120}, {sa_handler=0x55a6c, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0xb6d66120}, 8) = 0
close(4)                                = 0
read(3, "", 128)                        = 0
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=20015, si_uid=1000, si_status=1, si_utime=0, si_stime=0} ---
wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 1}], WNOHANG, NULL) = 20015
wait4(-1, 0xbed79054, WNOHANG, NULL)    = -1 ECHILD (No child processes)
sigreturn({mask=[]})                    = 0
close(3)                                = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigaction(SIGINT, {sa_handler=0x526b4, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0xb6d66120}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0xb6d66120}, 8) = 0
rt_sigaction(SIGINT, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0xb6d66120}, {sa_handler=0x526b4, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0xb6d66120}, 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
faccessat(AT_FDCWD, "/lib/ld-linux.so.3", X_OK) = 0
pipe([3, 4])                            = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [INT CHLD], [], 8) = 0
clone(child_stack=NULL, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0xb6f24078) = 20019
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigaction(SIGCHLD, {sa_handler=0x55a6c, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0xb6d66120}, {sa_handler=0x55a6c, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0xb6d66120}, 8) = 0
close(4)                                = 0
read(3, "Usage: ld.so [OPTION]... EXECUTA"..., 128) = 128
read(3, "xecutables.\nThis program usually"..., 128) = 128
read(3, "raries tell the system's program"..., 128) = 128
read(3, "es needed by the program executa"..., 128) = 128
read(3, " the\ncommand line to load and ru"..., 128) = 128
read(3, "rogram from the file you\nspecifi"..., 128) = 128
read(3, " of use for maintainers to test "..., 128) = 128
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=20019, si_uid=1000, si_status=127, si_utime=0, si_stime=0} ---
wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 127}], WNOHANG, NULL) = 20019
wait4(-1, 0xbed792bc, WNOHANG, NULL)    = -1 ECHILD (No child processes)
sigreturn({mask=[]})                    = 128
read(3, "st                list all depen"..., 128) = 128
read(3, "ynamically linked\n\t\t\tobject we c"..., 128) = 128
read(3, "PATH instead of content of the e"..., 128) = 128
read(3, "ion in object names\n\t\t\tin LIST\n "..., 128) = 93
read(3, "", 128)                        = 0
close(3)                                = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigaction(SIGINT, {sa_handler=0x526b4, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0xb6d66120}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0xb6d66120}, 8) = 0
rt_sigaction(SIGINT, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0xb6d66120}, {sa_handler=0x526b4, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0xb6d66120}, 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
pipe([3, 4])                            = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [INT CHLD], [], 8) = 0
clone(child_stack=NULL, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0xb6f24078) = 20022
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigaction(SIGCHLD, {sa_handler=0x55a6c, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0xb6d66120}, {sa_handler=0x55a6c, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0xb6d66120}, 8) = 0
close(4)                                = 0
read(3, "", 128)                        = 0
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=20022, si_uid=1000, si_status=1, si_utime=0, si_stime=1} ---
wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 1}], WNOHANG, NULL) = 20022
wait4(-1, 0xbed79054, WNOHANG, NULL)    = -1 ECHILD (No child processes)
sigreturn({mask=[]})                    = 0
close(3)                                = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigaction(SIGINT, {sa_handler=0x526b4, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0xb6d66120}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0xb6d66120}, 8) = 0
rt_sigaction(SIGINT, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0xb6d66120}, {sa_handler=0x526b4, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0xb6d66120}, 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
fstat64(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(0x88, 0), ...}) = 0
write(1, "\tnot a dynamic executable\n", 26	not a dynamic executable
) = 26
read(255, "\nexit $result\n# Local Variables:"..., 5313) = 52
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
exit_group(1)                           = ?
+++ exited with 1 +++

@jwinarske
Copy link
Collaborator

It looks like it fails to load locale resources, then fails. Which is why I tagged this "locale".

openat(AT_FDCWD, "/usr/share/locale/en_US.UTF-8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/share/locale/en_US.utf8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/share/locale/en_US/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/share/locale/en.UTF-8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/share/locale/en.utf8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/share/locale/en/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("/usr/lib/arm-linux-gnueabihf/libflutter_engine.so", {st_mode=S_IFREG|0644, st_size=27140084, ...}) = 0
stat64("/usr/lib/arm-linux-gnueabihf/libflutter_engine.so", {st_mode=S_IFREG|0644, st_size=27140084, ...}) = 0
faccessat(AT_FDCWD, "/usr/lib/arm-linux-gnueabihf/libflutter_engine.so", R_OK) = 0

@DisDis
Copy link
Contributor

DisDis commented Jul 26, 2020

i have same problem.
ldd -v -r ./libflutter_engine.so

not a dynamic executable

readelf -d ./libflutter_engine.so | grep 'NEEDED'

0x00000001 (NEEDED) Shared library: [libdl.so.2]
0x00000001 (NEEDED) Shared library: [libpthread.so.0]
0x00000001 (NEEDED) Shared library: [librt.so.1]
0x00000001 (NEEDED) Shared library: [libm.so.6]
0x00000001 (NEEDED) Shared library: [libc.so.6]
0x00000001 (NEEDED) Shared library: [ld-linux-armhf.so.3]

If i take https://github.com/ardera/flutter-pi/blob/engine-binaries/libflutter_engine.so and run readelf -d ./libflutter_engine.so | grep 'NEEDED'

0x00000001 (NEEDED) Shared library: [libdl.so.2]
0x00000001 (NEEDED) Shared library: [libpthread.so.0]
0x00000001 (NEEDED) Shared library: [librt.so.1]
0x00000001 (NEEDED) Shared library: [libm.so.6]
0x00000001 (NEEDED) Shared library: [libgcc_s.so.1]
0x00000001 (NEEDED) Shared library: [libc.so.6]
0x00000001 (NEEDED) Shared library: [ld-linux-armhf.so.3]

and

	linux-vdso.so.1 (0xbed76000)
	/usr/lib/arm-linux-gnueabihf/libarmmem-${PLATFORM}.so => /usr/lib/arm-linux-gnueabihf/libarmmem-v7l.so (0xb577b000)
	libdl.so.2 => /lib/arm-linux-gnueabihf/libdl.so.2 (0xb5753000)
	libpthread.so.0 => /lib/arm-linux-gnueabihf/libpthread.so.0 (0xb5729000)
	librt.so.1 => /lib/arm-linux-gnueabihf/librt.so.1 (0xb5712000)
	libm.so.6 => /lib/arm-linux-gnueabihf/libm.so.6 (0xb5690000)
	libgcc_s.so.1 => /lib/arm-linux-gnueabihf/libgcc_s.so.1 (0xb5663000)
	libc.so.6 => /lib/arm-linux-gnueabihf/libc.so.6 (0xb5515000)
	/lib/ld-linux-armhf.so.3 (0xb6ed0000)

	Version information:
	./libflutter_engine.so:
		ld-linux-armhf.so.3 (GLIBC_2.4) => /lib/ld-linux-armhf.so.3
		librt.so.1 (GLIBC_2.4) => /lib/arm-linux-gnueabihf/librt.so.1
		libdl.so.2 (GLIBC_2.4) => /lib/arm-linux-gnueabihf/libdl.so.2
		libgcc_s.so.1 (GCC_3.0) => /lib/arm-linux-gnueabihf/libgcc_s.so.1
		libgcc_s.so.1 (GCC_3.5) => /lib/arm-linux-gnueabihf/libgcc_s.so.1
		libpthread.so.0 (GLIBC_2.12) => /lib/arm-linux-gnueabihf/libpthread.so.0
		libpthread.so.0 (GLIBC_2.4) => /lib/arm-linux-gnueabihf/libpthread.so.0
		libm.so.6 (GLIBC_2.27) => /lib/arm-linux-gnueabihf/libm.so.6
		libm.so.6 (GLIBC_2.4) => /lib/arm-linux-gnueabihf/libm.so.6
		libc.so.6 (GLIBC_2.8) => /lib/arm-linux-gnueabihf/libc.so.6
		libc.so.6 (GLIBC_2.9) => /lib/arm-linux-gnueabihf/libc.so.6
		libc.so.6 (GLIBC_2.6) => /lib/arm-linux-gnueabihf/libc.so.6
		libc.so.6 (GLIBC_2.16) => /lib/arm-linux-gnueabihf/libc.so.6
		libc.so.6 (GLIBC_2.28) => /lib/arm-linux-gnueabihf/libc.so.6
		libc.so.6 (GLIBC_2.7) => /lib/arm-linux-gnueabihf/libc.so.6
		libc.so.6 (GLIBC_2.4) => /lib/arm-linux-gnueabihf/libc.so.6
	/usr/lib/arm-linux-gnueabihf/libarmmem-v7l.so:
		libc.so.6 (GLIBC_2.4) => /lib/arm-linux-gnueabihf/libc.so.6
	/lib/arm-linux-gnueabihf/libdl.so.2:
		ld-linux-armhf.so.3 (GLIBC_PRIVATE) => /lib/ld-linux-armhf.so.3
		ld-linux-armhf.so.3 (GLIBC_2.4) => /lib/ld-linux-armhf.so.3
		libc.so.6 (GLIBC_PRIVATE) => /lib/arm-linux-gnueabihf/libc.so.6
		libc.so.6 (GLIBC_2.4) => /lib/arm-linux-gnueabihf/libc.so.6
	/lib/arm-linux-gnueabihf/libpthread.so.0:
		ld-linux-armhf.so.3 (GLIBC_PRIVATE) => /lib/ld-linux-armhf.so.3
		ld-linux-armhf.so.3 (GLIBC_2.4) => /lib/ld-linux-armhf.so.3
		libc.so.6 (GLIBC_PRIVATE) => /lib/arm-linux-gnueabihf/libc.so.6
		libc.so.6 (GLIBC_2.4) => /lib/arm-linux-gnueabihf/libc.so.6
	/lib/arm-linux-gnueabihf/librt.so.1:
		ld-linux-armhf.so.3 (GLIBC_PRIVATE) => /lib/ld-linux-armhf.so.3
		ld-linux-armhf.so.3 (GLIBC_2.4) => /lib/ld-linux-armhf.so.3
		libc.so.6 (GLIBC_2.28) => /lib/arm-linux-gnueabihf/libc.so.6
		libc.so.6 (GLIBC_PRIVATE) => /lib/arm-linux-gnueabihf/libc.so.6
		libc.so.6 (GLIBC_2.4) => /lib/arm-linux-gnueabihf/libc.so.6
		libpthread.so.0 (GLIBC_PRIVATE) => /lib/arm-linux-gnueabihf/libpthread.so.0
		libpthread.so.0 (GLIBC_2.4) => /lib/arm-linux-gnueabihf/libpthread.so.0
	/lib/arm-linux-gnueabihf/libm.so.6:
		ld-linux-armhf.so.3 (GLIBC_2.4) => /lib/ld-linux-armhf.so.3
		libc.so.6 (GLIBC_PRIVATE) => /lib/arm-linux-gnueabihf/libc.so.6
		libc.so.6 (GLIBC_2.4) => /lib/arm-linux-gnueabihf/libc.so.6
	/lib/arm-linux-gnueabihf/libgcc_s.so.1:
		libc.so.6 (GLIBC_2.4) => /lib/arm-linux-gnueabihf/libc.so.6
	/lib/arm-linux-gnueabihf/libc.so.6:
		ld-linux-armhf.so.3 (GLIBC_2.4) => /lib/ld-linux-armhf.so.3
		ld-linux-armhf.so.3 (GLIBC_PRIVATE) => /lib/ld-linux-armhf.so.3

@DisDis
Copy link
Contributor

DisDis commented Jul 27, 2020

cmake .. -DCHANNEL=stable -DENGINE_RUNTIME_MODE=release

-- CMAKE_BUILD_TYPE not set, defaulting to Release.
-- The CXX compiler identification is GNU 9.3.0
-- The C compiler identification is GNU 9.3.0
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Generator .............. Unix Makefiles
-- Build Type ............. Release
-- TARGET_ARCH not set, defaulting to arm
-- TARGET_SYSROOT not set, defaulting to /home/dis/workspace/flutter/flutter_embedded/sysroot
-- Rootfs Archive Url ..... http://director.downloads.raspberrypi.org/raspbian/archive/2020-02-14-13:48/root.tar.xz
-- Target Sysroot ......... /home/dis/workspace/flutter/flutter_embedded/sysroot
-- Engine Repo ............ [email protected]:flutter/engine.git
-- Flutter Channel ........ stable
-- Engine SHA1 ............ ee76268252c22f5c11e82a7b87423ca3982e51a7
-- ENGINE_LIB_FLAGS........ -Wl,-z,notext -nostdlib++ -fuse-ld=lld
-- PKG_CONFIG_PATH ........ /home/dis/workspace/flutter/flutter_embedded/sysroot/usr/lib/arm-linux-gnueabihf/pkgconfig:/usr/share/pkgconfig
-- Engine Flags ........... --runtime-mode release --no-goma --lto --clang --enable-fontconfig --embedder-for-target --full-dart-sdk --target-os linux --linux-cpu arm --target-sysroot /home/dis/workspace/flutter/flutter_embedded/sysroot --target-toolchain /home/dis/workspace/flutter/flutter_embedded/third_party/engine/src/buildtools/linux-x64/clang --target-triple armv7-neon-vfpv4-linux-gnueabihf --arm-float-abi hard
-- Configuring done
-- Generating done
-- Build files have been written to: /home/dis/workspace/flutter/flutter_embedded/build

@DisDis
Copy link
Contributor

DisDis commented Jul 27, 2020

@jwinarske i think it is not locale problem.
because
If i take https://github.com/ardera/flutter-pi/blob/engine-binaries/libflutter_engine.so

strace ldd -v -r ./libflutter_engine.so

execve("/usr/bin/ldd", ["ldd", "-v", "-r", "./libflutter_engine.so"], 0xbeaf566c /* 23 vars */) = 0
brk(NULL)                               = 0x1e4f000
uname({sysname="Linux", nodename="raspberrypi", ...}) = 0
mmap2(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb6fde000
access("/etc/ld.so.preload", R_OK)      = 0
openat(AT_FDCWD, "/etc/ld.so.preload", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=54, ...}) = 0
mmap2(NULL, 54, PROT_READ|PROT_WRITE, MAP_PRIVATE, 3, 0) = 0xb6fdd000
close(3)                                = 0
readlink("/proc/self/exe", "/bin/bash", 4096) = 9
openat(AT_FDCWD, "/usr/lib/arm-linux-gnueabihf/libarmmem-v7l.so", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\254\3\0\0004\0\0\0"..., 512) = 512
_llseek(3, 16748, [16748], SEEK_SET)    = 0
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 960) = 960
_llseek(3, 16424, [16424], SEEK_SET)    = 0
read(3, "A,\0\0\0aeabi\0\1\"\0\0\0\0056\0\6\6\10\1\t\2\n\3\f\1\22\4\24"..., 45) = 45
_llseek(3, 16748, [16748], SEEK_SET)    = 0
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 960) = 960
_llseek(3, 16424, [16424], SEEK_SET)    = 0
read(3, "A,\0\0\0aeabi\0\1\"\0\0\0\0056\0\6\6\10\1\t\2\n\3\f\1\22\4\24"..., 45) = 45
_llseek(3, 16748, [16748], SEEK_SET)    = 0
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 960) = 960
_llseek(3, 16424, [16424], SEEK_SET)    = 0
read(3, "A,\0\0\0aeabi\0\1\"\0\0\0\0056\0\6\6\10\1\t\2\n\3\f\1\22\4\24"..., 45) = 45
_llseek(3, 16748, [16748], SEEK_SET)    = 0
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 960) = 960
_llseek(3, 16424, [16424], SEEK_SET)    = 0
read(3, "A,\0\0\0aeabi\0\1\"\0\0\0\0056\0\6\6\10\1\t\2\n\3\f\1\22\4\24"..., 45) = 45
_llseek(3, 16748, [16748], SEEK_SET)    = 0
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 960) = 960
_llseek(3, 16424, [16424], SEEK_SET)    = 0
read(3, "A,\0\0\0aeabi\0\1\"\0\0\0\0056\0\6\6\10\1\t\2\n\3\f\1\22\4\24"..., 45) = 45
_llseek(3, 16748, [16748], SEEK_SET)    = 0
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 960) = 960
_llseek(3, 16424, [16424], SEEK_SET)    = 0
read(3, "A,\0\0\0aeabi\0\1\"\0\0\0\0056\0\6\6\10\1\t\2\n\3\f\1\22\4\24"..., 45) = 45
fstat64(3, {st_mode=S_IFREG|0644, st_size=17708, ...}) = 0
mmap2(NULL, 81964, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb6f9b000
mprotect(0xb6f9f000, 61440, PROT_NONE)  = 0
mmap2(0xb6fae000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x3000) = 0xb6fae000
close(3)                                = 0
munmap(0xb6fdd000, 54)                  = 0
openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=84720, ...}) = 0
mmap2(NULL, 84720, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb6f86000
close(3)                                = 0
openat(AT_FDCWD, "/lib/arm-linux-gnueabihf/libtinfo.so.6", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0pn\0\0004\0\0\0"..., 512) = 512
_llseek(3, 132176, [132176], SEEK_SET)  = 0
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1040) = 1040
_llseek(3, 131828, [131828], SEEK_SET)  = 0
read(3, "A,\0\0\0aeabi\0\1\"\0\0\0\0056\0\6\6\10\1\t\1\n\2\22\4\24\1\25"..., 45) = 45
_llseek(3, 132176, [132176], SEEK_SET)  = 0
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1040) = 1040
_llseek(3, 131828, [131828], SEEK_SET)  = 0
read(3, "A,\0\0\0aeabi\0\1\"\0\0\0\0056\0\6\6\10\1\t\1\n\2\22\4\24\1\25"..., 45) = 45
_llseek(3, 132176, [132176], SEEK_SET)  = 0
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1040) = 1040
_llseek(3, 131828, [131828], SEEK_SET)  = 0
read(3, "A,\0\0\0aeabi\0\1\"\0\0\0\0056\0\6\6\10\1\t\1\n\2\22\4\24\1\25"..., 45) = 45
_llseek(3, 132176, [132176], SEEK_SET)  = 0
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1040) = 1040
_llseek(3, 131828, [131828], SEEK_SET)  = 0
read(3, "A,\0\0\0aeabi\0\1\"\0\0\0\0056\0\6\6\10\1\t\1\n\2\22\4\24\1\25"..., 45) = 45
_llseek(3, 132176, [132176], SEEK_SET)  = 0
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1040) = 1040
_llseek(3, 131828, [131828], SEEK_SET)  = 0
read(3, "A,\0\0\0aeabi\0\1\"\0\0\0\0056\0\6\6\10\1\t\1\n\2\22\4\24\1\25"..., 45) = 45
fstat64(3, {st_mode=S_IFREG|0644, st_size=133216, ...}) = 0
mmap2(NULL, 198300, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb6f55000
mprotect(0xb6f73000, 65536, PROT_NONE)  = 0
mmap2(0xb6f83000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1e000) = 0xb6f83000
close(3)                                = 0
openat(AT_FDCWD, "/lib/arm-linux-gnueabihf/libdl.so.2", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0 \n\0\0004\0\0\0"..., 512) = 512
_llseek(3, 8688, [8688], SEEK_SET)      = 0
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1080) = 1080
_llseek(3, 8340, [8340], SEEK_SET)      = 0
read(3, "A.\0\0\0aeabi\0\1$\0\0\0\0056\0\6\6\10\1\t\1\n\2\22\4\23\1\24"..., 47) = 47
_llseek(3, 8688, [8688], SEEK_SET)      = 0
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1080) = 1080
_llseek(3, 8340, [8340], SEEK_SET)      = 0
read(3, "A.\0\0\0aeabi\0\1$\0\0\0\0056\0\6\6\10\1\t\1\n\2\22\4\23\1\24"..., 47) = 47
_llseek(3, 8688, [8688], SEEK_SET)      = 0
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1080) = 1080
_llseek(3, 8340, [8340], SEEK_SET)      = 0
read(3, "A.\0\0\0aeabi\0\1$\0\0\0\0056\0\6\6\10\1\t\1\n\2\22\4\23\1\24"..., 47) = 47
fstat64(3, {st_mode=S_IFREG|0644, st_size=9768, ...}) = 0
mmap2(NULL, 73924, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb6f42000
mprotect(0xb6f44000, 61440, PROT_NONE)  = 0
mmap2(0xb6f53000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1000) = 0xb6f53000
close(3)                                = 0
openat(AT_FDCWD, "/lib/arm-linux-gnueabihf/libc.so.6", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\300x\1\0004\0\0\0"..., 512) = 512
_llseek(3, 1293204, [1293204], SEEK_SET) = 0
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 2800) = 2800
_llseek(3, 1289788, [1289788], SEEK_SET) = 0
read(3, "A.\0\0\0aeabi\0\1$\0\0\0\0056\0\6\6\10\1\t\1\n\2\22\4\23\1\24"..., 47) = 47
_llseek(3, 1293204, [1293204], SEEK_SET) = 0
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 2800) = 2800
_llseek(3, 1289788, [1289788], SEEK_SET) = 0
read(3, "A.\0\0\0aeabi\0\1$\0\0\0\0056\0\6\6\10\1\t\1\n\2\22\4\23\1\24"..., 47) = 47
_llseek(3, 1293204, [1293204], SEEK_SET) = 0
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 2800) = 2800
_llseek(3, 1289788, [1289788], SEEK_SET) = 0
read(3, "A.\0\0\0aeabi\0\1$\0\0\0\0056\0\6\6\10\1\t\1\n\2\22\4\23\1\24"..., 47) = 47
_llseek(3, 1293204, [1293204], SEEK_SET) = 0
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 2800) = 2800
_llseek(3, 1289788, [1289788], SEEK_SET) = 0
read(3, "A.\0\0\0aeabi\0\1$\0\0\0\0056\0\6\6\10\1\t\1\n\2\22\4\23\1\24"..., 47) = 47
_llseek(3, 1293204, [1293204], SEEK_SET) = 0
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 2800) = 2800
_llseek(3, 1289788, [1289788], SEEK_SET) = 0
read(3, "A.\0\0\0aeabi\0\1$\0\0\0\0056\0\6\6\10\1\t\1\n\2\22\4\23\1\24"..., 47) = 47
_llseek(3, 1293204, [1293204], SEEK_SET) = 0
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 2800) = 2800
_llseek(3, 1289788, [1289788], SEEK_SET) = 0
read(3, "A.\0\0\0aeabi\0\1$\0\0\0\0056\0\6\6\10\1\t\1\n\2\22\4\23\1\24"..., 47) = 47
fstat64(3, {st_mode=S_IFREG|0755, st_size=1296004, ...}) = 0
mmap2(NULL, 1364764, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb6df4000
mprotect(0xb6f2c000, 65536, PROT_NONE)  = 0
mmap2(0xb6f3c000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x138000) = 0xb6f3c000
mmap2(0xb6f3f000, 8988, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb6f3f000
close(3)                                = 0
mmap2(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb6fdc000
set_tls(0xb6fdc4d0)                     = 0
mprotect(0xb6f3c000, 8192, PROT_READ)   = 0
mprotect(0xb6f53000, 4096, PROT_READ)   = 0
mprotect(0xb6f83000, 8192, PROT_READ)   = 0
mprotect(0xb6fae000, 4096, PROT_READ)   = 0
mprotect(0xfc000, 4096, PROT_READ)      = 0
mprotect(0xb6fe0000, 4096, PROT_READ)   = 0
munmap(0xb6f86000, 84720)               = 0
openat(AT_FDCWD, "/dev/tty", O_RDWR|O_NONBLOCK|O_LARGEFILE) = 3
close(3)                                = 0
brk(NULL)                               = 0x1e4f000
brk(0x1e70000)                          = 0x1e70000
openat(AT_FDCWD, "/usr/lib/locale/locale-archive", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=3036336, ...}) = 0
mmap2(NULL, 2097152, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb6bf4000
mmap2(NULL, 2596864, PROT_READ, MAP_PRIVATE, 3, 0x6b000) = 0xb697a000
close(3)                                = 0
openat(AT_FDCWD, "/usr/lib/arm-linux-gnueabihf/gconv/gconv-modules.cache", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=26406, ...}) = 0
mmap2(NULL, 26406, PROT_READ, MAP_SHARED, 3, 0) = 0xb6fd5000
close(3)                                = 0
getuid32()                              = 1000
getgid32()                              = 1000
geteuid32()                             = 1000
getegid32()                             = 1000
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
gettimeofday({tv_sec=1595809375, tv_usec=974202}, NULL) = 0
ioctl(-1, TIOCGPGRP, 0xbeac23c0)        = -1 EBADF (Bad file descriptor)
sysinfo({uptime=13679, loads=[0, 0, 0], totalram=3908653056, freeram=3389599744, sharedram=8806400, bufferram=29425664, totalswap=104853504, freeswap=104853504, procs=128, totalhigh=3154116608, freehigh=2784968704, mem_unit=1}) = 0
rt_sigaction(SIGCHLD, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0xb6e21120}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGCHLD, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0xb6e21120}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0xb6e21120}, 8) = 0
rt_sigaction(SIGINT, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0xb6e21120}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGINT, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0xb6e21120}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0xb6e21120}, 8) = 0
rt_sigaction(SIGQUIT, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0xb6e21120}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGQUIT, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0xb6e21120}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0xb6e21120}, 8) = 0
rt_sigaction(SIGTSTP, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0xb6e21120}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGTSTP, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0xb6e21120}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0xb6e21120}, 8) = 0
rt_sigaction(SIGTTIN, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0xb6e21120}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGTTIN, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0xb6e21120}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0xb6e21120}, 8) = 0
rt_sigaction(SIGTTOU, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0xb6e21120}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGTTOU, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0xb6e21120}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0xb6e21120}, 8) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
rt_sigaction(SIGQUIT, {sa_handler=SIG_IGN, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0xb6e21120}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0xb6e21120}, 8) = 0
uname({sysname="Linux", nodename="raspberrypi", ...}) = 0
stat64("/home/pi/workspace/flutter-engine", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat64(".", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat64("/home", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat64("/home/pi", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat64("/home/pi/workspace", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat64("/home/pi/workspace/flutter-engine", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat64("/home/pi/workspace/flutter-engine-release", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
getpid()                                = 2657
getppid()                               = 2654
gettimeofday({tv_sec=1595809375, tv_usec=981476}, NULL) = 0
getpid()                                = 2657
getpgrp()                               = 2654
ioctl(2, TIOCGPGRP, [2654])             = 0
rt_sigaction(SIGCHLD, {sa_handler=0x55a6c, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0xb6e21120}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0xb6e21120}, 8) = 0
ugetrlimit(RLIMIT_NPROC, {rlim_cur=27756, rlim_max=27756}) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
openat(AT_FDCWD, "/usr/bin/ldd", O_RDONLY|O_LARGEFILE) = 3
stat64("/usr/bin/ldd", {st_mode=S_IFREG|0755, st_size=5313, ...}) = 0
ioctl(3, TCGETS, 0xbeac2360)            = -1 ENOTTY (Inappropriate ioctl for device)
_llseek(3, 0, [0], SEEK_CUR)            = 0
read(3, "#! /bin/bash\n# Copyright (C) 199"..., 80) = 80
_llseek(3, 0, [0], SEEK_SET)            = 0
ugetrlimit(RLIMIT_NOFILE, {rlim_cur=1024, rlim_max=1024*1024}) = 0
fcntl64(255, F_GETFD)                   = -1 EBADF (Bad file descriptor)
dup2(3, 255)                            = 255
close(3)                                = 0
fcntl64(255, F_SETFD, FD_CLOEXEC)       = 0
fcntl64(255, F_GETFL)                   = 0x20000 (flags O_RDONLY|O_LARGEFILE)
fstat64(255, {st_mode=S_IFREG|0755, st_size=5313, ...}) = 0
_llseek(255, 0, [0], SEEK_CUR)          = 0
read(255, "#! /bin/bash\n# Copyright (C) 199"..., 5313) = 5313
openat(AT_FDCWD, "/usr/share/locale/locale.alias", O_RDONLY|O_CLOEXEC) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=2995, ...}) = 0
read(3, "# Locale name alias data base.\n#"..., 4096) = 2995
read(3, "", 4096)                       = 0
close(3)                                = 0
openat(AT_FDCWD, "/usr/share/locale/en_GB.UTF-8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/share/locale/en_GB.utf8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/share/locale/en_GB/LC_MESSAGES/libc.mo", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=1433, ...}) = 0
mmap2(NULL, 1433, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb6fd4000
close(3)                                = 0
openat(AT_FDCWD, "/usr/share/locale/en.UTF-8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/share/locale/en.utf8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/share/locale/en/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
stat64("./libflutter_engine.so", {st_mode=S_IFREG|0755, st_size=24284380, ...}) = 0
stat64("./libflutter_engine.so", {st_mode=S_IFREG|0755, st_size=24284380, ...}) = 0
faccessat(AT_FDCWD, "./libflutter_engine.so", R_OK) = 0
faccessat(AT_FDCWD, "/lib/ld-linux-armhf.so.3", X_OK) = 0
pipe([3, 4])                            = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [INT CHLD], [], 8) = 0
_llseek(255, -52, [5261], SEEK_CUR)     = 0
clone(child_stack=NULL, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0xb6fdc078) = 2659
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigaction(SIGCHLD, {sa_handler=0x55a6c, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0xb6e21120}, {sa_handler=0x55a6c, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0xb6e21120}, 8) = 0
close(4)                                = 0
read(3, "Usage: ld.so [OPTION]... EXECUTA"..., 128) = 128
read(3, "xecutables.\nThis program usually"..., 128) = 128
read(3, "raries tell the system's program"..., 128) = 128
read(3, "es needed by the program executa"..., 128) = 128
read(3, " the\ncommand line to load and ru"..., 128) = 128
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=2659, si_uid=1000, si_status=127, si_utime=1, si_stime=0} ---
wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 127}], WNOHANG, NULL) = 2659
wait4(-1, 0xbeac13ac, WNOHANG, NULL)    = -1 ECHILD (No child processes)
sigreturn({mask=[]})                    = 128
read(3, "rogram from the file you\nspecifi"..., 128) = 128
read(3, " of use for maintainers to test "..., 128) = 128
read(3, "st                list all depen"..., 128) = 128
read(3, "ynamically linked\n\t\t\tobject we c"..., 128) = 128
read(3, "PATH instead of content of the e"..., 128) = 128
read(3, "ion in object names\n\t\t\tin LIST\n "..., 128) = 93
read(3, "", 128)                        = 0
close(3)                                = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigaction(SIGINT, {sa_handler=0x526b4, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0xb6e21120}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0xb6e21120}, 8) = 0
rt_sigaction(SIGINT, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0xb6e21120}, {sa_handler=0x526b4, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0xb6e21120}, 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
pipe([3, 4])                            = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [INT CHLD], [], 8) = 0
clone(child_stack=NULL, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0xb6fdc078) = 2661
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigaction(SIGCHLD, {sa_handler=0x55a6c, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0xb6e21120}, {sa_handler=0x55a6c, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0xb6e21120}, 8) = 0
close(4)                                = 0
read(3, "", 128)                        = 0
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=2661, si_uid=1000, si_status=2, si_utime=0, si_stime=1} ---
wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 2}], WNOHANG, NULL) = 2661
wait4(-1, 0xbeac1144, WNOHANG, NULL)    = -1 ECHILD (No child processes)
sigreturn({mask=[]})                    = 0
close(3)                                = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigaction(SIGINT, {sa_handler=0x526b4, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0xb6e21120}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0xb6e21120}, 8) = 0
rt_sigaction(SIGINT, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0xb6e21120}, {sa_handler=0x526b4, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0xb6e21120}, 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [INT CHLD], [], 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [INT CHLD], 8) = 0
rt_sigprocmask(SIG_SETMASK, [INT CHLD], NULL, 8) = 0
clone(child_stack=NULL, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0xb6fdc078) = 2662
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigaction(SIGINT, {sa_handler=0x526b4, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0xb6e21120}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0xb6e21120}, 8) = 0
wait4(-1, 	linux-vdso.so.1 (0xbec5f000)
	/usr/lib/arm-linux-gnueabihf/libarmmem-${PLATFORM}.so => /usr/lib/arm-linux-gnueabihf/libarmmem-v7l.so (0xb580a000)
	libdl.so.2 => /lib/arm-linux-gnueabihf/libdl.so.2 (0xb57e2000)
	libpthread.so.0 => /lib/arm-linux-gnueabihf/libpthread.so.0 (0xb57b8000)
	librt.so.1 => /lib/arm-linux-gnueabihf/librt.so.1 (0xb57a1000)
	libm.so.6 => /lib/arm-linux-gnueabihf/libm.so.6 (0xb571f000)
	libgcc_s.so.1 => /lib/arm-linux-gnueabihf/libgcc_s.so.1 (0xb56f2000)
	libc.so.6 => /lib/arm-linux-gnueabihf/libc.so.6 (0xb55a4000)
	/lib/ld-linux-armhf.so.3 (0xb6f5f000)

	Version information:
	./libflutter_engine.so:
		ld-linux-armhf.so.3 (GLIBC_2.4) => /lib/ld-linux-armhf.so.3
		librt.so.1 (GLIBC_2.4) => /lib/arm-linux-gnueabihf/librt.so.1
		libdl.so.2 (GLIBC_2.4) => /lib/arm-linux-gnueabihf/libdl.so.2
		libgcc_s.so.1 (GCC_3.0) => /lib/arm-linux-gnueabihf/libgcc_s.so.1
		libgcc_s.so.1 (GCC_3.5) => /lib/arm-linux-gnueabihf/libgcc_s.so.1
		libpthread.so.0 (GLIBC_2.12) => /lib/arm-linux-gnueabihf/libpthread.so.0
		libpthread.so.0 (GLIBC_2.4) => /lib/arm-linux-gnueabihf/libpthread.so.0
		libm.so.6 (GLIBC_2.27) => /lib/arm-linux-gnueabihf/libm.so.6
		libm.so.6 (GLIBC_2.4) => /lib/arm-linux-gnueabihf/libm.so.6
		libc.so.6 (GLIBC_2.8) => /lib/arm-linux-gnueabihf/libc.so.6
		libc.so.6 (GLIBC_2.9) => /lib/arm-linux-gnueabihf/libc.so.6
		libc.so.6 (GLIBC_2.6) => /lib/arm-linux-gnueabihf/libc.so.6
		libc.so.6 (GLIBC_2.16) => /lib/arm-linux-gnueabihf/libc.so.6
		libc.so.6 (GLIBC_2.28) => /lib/arm-linux-gnueabihf/libc.so.6
		libc.so.6 (GLIBC_2.7) => /lib/arm-linux-gnueabihf/libc.so.6
		libc.so.6 (GLIBC_2.4) => /lib/arm-linux-gnueabihf/libc.so.6
	/usr/lib/arm-linux-gnueabihf/libarmmem-v7l.so:
		libc.so.6 (GLIBC_2.4) => /lib/arm-linux-gnueabihf/libc.so.6
	/lib/arm-linux-gnueabihf/libdl.so.2:
		ld-linux-armhf.so.3 (GLIBC_PRIVATE) => /lib/ld-linux-armhf.so.3
		ld-linux-armhf.so.3 (GLIBC_2.4) => /lib/ld-linux-armhf.so.3
		libc.so.6 (GLIBC_PRIVATE) => /lib/arm-linux-gnueabihf/libc.so.6
		libc.so.6 (GLIBC_2.4) => /lib/arm-linux-gnueabihf/libc.so.6
	/lib/arm-linux-gnueabihf/libpthread.so.0:
		ld-linux-armhf.so.3 (GLIBC_PRIVATE) => /lib/ld-linux-armhf.so.3
		ld-linux-armhf.so.3 (GLIBC_2.4) => /lib/ld-linux-armhf.so.3
		libc.so.6 (GLIBC_PRIVATE) => /lib/arm-linux-gnueabihf/libc.so.6
		libc.so.6 (GLIBC_2.4) => /lib/arm-linux-gnueabihf/libc.so.6
	/lib/arm-linux-gnueabihf/librt.so.1:
		ld-linux-armhf.so.3 (GLIBC_PRIVATE) => /lib/ld-linux-armhf.so.3
		ld-linux-armhf.so.3 (GLIBC_2.4) => /lib/ld-linux-armhf.so.3
		libc.so.6 (GLIBC_2.28) => /lib/arm-linux-gnueabihf/libc.so.6
		libc.so.6 (GLIBC_PRIVATE) => /lib/arm-linux-gnueabihf/libc.so.6
		libc.so.6 (GLIBC_2.4) => /lib/arm-linux-gnueabihf/libc.so.6
		libpthread.so.0 (GLIBC_PRIVATE) => /lib/arm-linux-gnueabihf/libpthread.so.0
		libpthread.so.0 (GLIBC_2.4) => /lib/arm-linux-gnueabihf/libpthread.so.0
	/lib/arm-linux-gnueabihf/libm.so.6:
		ld-linux-armhf.so.3 (GLIBC_2.4) => /lib/ld-linux-armhf.so.3
		libc.so.6 (GLIBC_PRIVATE) => /lib/arm-linux-gnueabihf/libc.so.6
		libc.so.6 (GLIBC_2.4) => /lib/arm-linux-gnueabihf/libc.so.6
	/lib/arm-linux-gnueabihf/libgcc_s.so.1:
		libc.so.6 (GLIBC_2.4) => /lib/arm-linux-gnueabihf/libc.so.6
	/lib/arm-linux-gnueabihf/libc.so.6:
		ld-linux-armhf.so.3 (GLIBC_2.4) => /lib/ld-linux-armhf.so.3
		ld-linux-armhf.so.3 (GLIBC_PRIVATE) => /lib/ld-linux-armhf.so.3
[{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0, NULL) = 2662
rt_sigaction(SIGINT, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0xb6e21120}, {sa_handler=0x526b4, sa_mask=[], sa_flags=SA_RESTORER, sa_restorer=0xb6e21120}, 8) = 0
ioctl(2, TIOCGWINSZ, {ws_row=48, ws_col=195, ws_xpixel=0, ws_ypixel=0}) = 0
ioctl(1, TCGETS, {B38400 opost isig icanon echo ...}) = 0
stat64("/home/pi/.terminfo", 0x1e5fb20) = -1 ENOENT (No such file or directory)
stat64("/etc/terminfo", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat64("/lib/terminfo", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat64("/usr/share/terminfo", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
gettimeofday({tv_sec=1595809376, tv_usec=33606}, NULL) = 0
access("/etc/terminfo/x/xterm-256color", R_OK) = -1 ENOENT (No such file or directory)
access("/lib/terminfo/x/xterm-256color", R_OK) = 0
openat(AT_FDCWD, "/lib/terminfo/x/xterm-256color", O_RDONLY|O_LARGEFILE) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=3535, ...}) = 0
read(3, "\36\2%\0&\0\17\0\235\1\356\5xterm-256color|xterm"..., 32768) = 3535
read(3, "", 28672)                      = 0
close(3)                                = 0
gettimeofday({tv_sec=1595809376, tv_usec=34356}, NULL) = 0
ioctl(1, TCGETS, {B38400 opost isig icanon echo ...}) = 0
ioctl(1, TCGETS, {B38400 opost isig icanon echo ...}) = 0
ioctl(1, TCGETS, {B38400 opost isig icanon echo ...}) = 0
ioctl(1, TCGETS, {B38400 opost isig icanon echo ...}) = 0
ioctl(1, TIOCGWINSZ, {ws_row=48, ws_col=195, ws_xpixel=0, ws_ypixel=0}) = 0
ioctl(0, TIOCGWINSZ, {ws_row=48, ws_col=195, ws_xpixel=0, ws_ypixel=0}) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=2662, si_uid=1000, si_status=0, si_utime=0, si_stime=1} ---
wait4(-1, 0xbeac15bc, WNOHANG, NULL)    = -1 ECHILD (No child processes)
sigreturn({mask=[]})                    = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
read(255, "\nexit $result\n# Local Variables:"..., 5313) = 52
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
exit_group(0)                           = ?
+++ exited with 0 +++

@DisDis
Copy link
Contributor

DisDis commented Jul 27, 2020

Maybe this is our problem?
https://stackoverflow.com/questions/6150000/cross-compiler-ldd

@DisDis
Copy link
Contributor

DisDis commented Jul 27, 2020

I solved problem. @jwinarske @ranciere
If you change Flutter Channel to 'beta', it works
-- Flutter Channel ........ beta
-- Engine SHA1 ............ 60b269d898cbe0be27e9b9ba9d21eae97b887ab6
flutter-engine-beta $ ldd ./libflutter_engine.so

	linux-vdso.so.1 (0xbee53000)
	/usr/lib/arm-linux-gnueabihf/libarmmem-${PLATFORM}.so => /usr/lib/arm-linux-gnueabihf/libarmmem-v7l.so (0xb54e1000)
	libdl.so.2 => /lib/arm-linux-gnueabihf/libdl.so.2 (0xb54b9000)
	libpthread.so.0 => /lib/arm-linux-gnueabihf/libpthread.so.0 (0xb548f000)
	libm.so.6 => /lib/arm-linux-gnueabihf/libm.so.6 (0xb540d000)
	libc.so.6 => /lib/arm-linux-gnueabihf/libc.so.6 (0xb52bf000)
	/lib/ld-linux-armhf.so.3 (0xb6f29000)

@jwinarske
Copy link
Collaborator

@DisDis that's called a workaround, not a solution ;)

@DisDis
Copy link
Contributor

DisDis commented Jul 28, 2020

@jwinarske but new flutter will release after ~1 month, and beta will be stable:)

@DisDis
Copy link
Contributor

DisDis commented Jul 28, 2020

Yes, problem in clang 8.0, but how can we solve it?

@jwinarske
Copy link
Collaborator

beta has clang 11, prior has clang 8.
Workaround for now: #42

@jwinarske jwinarske added bug Something isn't working clang-8.0.0 Specific to Clang 8 and removed locale Locale related issue labels Jul 29, 2020
@DisDis
Copy link
Contributor

DisDis commented Jul 30, 2020

I found main issue.
flutter-engine-release $ strace /lib/ld-linux-armhf.so.3 --verify ./libflutter_engine.so
NOT WORK

execve("/lib/ld-linux-armhf.so.3", ["/lib/ld-linux-armhf.so.3", "--verify", "./libflutter_engine.so"], 0xbeb7b648 /* 23 vars */) = 0
brk(NULL)                               = 0x119f000
openat(AT_FDCWD, "./libflutter_engine.so", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\0\320\23\0004\0\0\0"..., 512) = 512
_llseek(3, 9103084, [9103084], SEEK_SET) = 0
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1160) = 1160
close(3)                                = 0
exit_group(1)                           = ?
+++ exited with 1 +++

flutter-engine-beta-release $ strace /lib/ld-linux-armhf.so.3 --verify ./libflutter_engine.so
WORK

execve("/lib/ld-linux-armhf.so.3", ["/lib/ld-linux-armhf.so.3", "--verify", "./libflutter_engine.so"], 0xbe9b4648 /* 23 vars */) = 0
brk(NULL)                               = 0x1417000
openat(AT_FDCWD, "./libflutter_engine.so", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\2002\24\0004\0\0\0"..., 512) = 512
_llseek(3, 9161672, [9161672], SEEK_SET) = 0
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1160) = 1160
_llseek(3, 9161364, [9161364], SEEK_SET) = 0
read(3, "A\"\0\0\0aeabi\0\1\30\0\0\0\0056\0\6\6\10\1\t\1\n\2\30\1\31\1\33"..., 35) = 35
_llseek(3, 9161672, [9161672], SEEK_SET) = 0
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1160) = 1160
_llseek(3, 9161364, [9161364], SEEK_SET) = 0
read(3, "A\"\0\0\0aeabi\0\1\30\0\0\0\0056\0\6\6\10\1\t\1\n\2\30\1\31\1\33"..., 35) = 35
<CUT>

Investigation:

_llseek(3, 9103084, [9103084], SEEK_SET) = 0

9103084 = 0x8ae6ec is section header.


**NOT WORK SHARED OBJECT**
LC_ALL=C readelf -S ./libstable.so 
There are 29 section headers, starting at offset 0x8ae6ec:

Section Headers:
  [Nr] Name              Type            Addr     Off    Size   ES Flg Lk Inf Al
  [ 0]                   NULL            00000000 000000 000000 00      0   0  0
  [ 1] .ARM.exidx        ARM_EXIDX       00000194 000194 000010 00  AL 14   0  4
  [ 2] .dynsym           DYNSYM          000001a4 0001a4 0024d0 10   A  7   1  4
  [ 3] .gnu.version      VERSYM          00002674 002674 00049a 02   A  2   0  2
  [ 4] .gnu.version_r    VERNEED         00002b10 002b10 000140 00   A  7   6  4
  [ 5] .gnu.hash         GNU_HASH        00002c50 002c50 00074c 00   A  2   0  4
  [ 6] .hash             HASH            0000339c 00339c 001270 04   A  2   0  4
  [ 7] .dynstr           STRTAB          0000460c 00460c 0021d0 00   A  0   0  1
  [ 8] .rel.dyn          REL             000067dc 0067dc 03de20 08   A  2   0  4
  [ 9] .rel.plt          REL             000445fc 0445fc 000a38 08   A  2  20  4
  [10] .note.gnu.build-i NOTE            00045034 045034 000024 00   A  0   0  4
  [11] .rodata           PROGBITS        00045060 045060 0f7d60 00 AMS  0   0 32
  [12] .eh_frame_hdr     PROGBITS        0013cdc0 13cdc0 00000c 00   A  0   0  4
  [13] .eh_frame         PROGBITS        0013cdcc 13cdcc 000004 00   A  0   0  4
  [14] .text             PROGBITS        0013d000 13d000 743118 00  AX  0   0 64
  [15] .init             PROGBITS        00880118 880118 00000c 00  AX  0   0  4
  [16] .fini             PROGBITS        00880124 880124 000008 00  AX  0   0  4
  [17] .plt              PROGBITS        00880130 880130 001490 00  AX  0   0 16
  [18] .data             PROGBITS        00882000 882000 001454 00  WA  0   0  8
  [19] .tm_clone_table   PROGBITS        00883454 883454 000000 00  WA  0   0  4
  [20] .got.plt          PROGBITS        00883454 883454 000528 00  WA  0   0  4
  [21] .tbss             NOBITS          0088397c 88397c 00000c 00 WAT  0   0  4
  [22] .fini_array       FINI_ARRAY      00884000 884000 000004 04  WA  0   0  4
  [23] .init_array       INIT_ARRAY      00884004 884004 0000c0 00  WA  0   0  4
  [24] .data.rel.ro      PROGBITS        008840c8 8840c8 02a310 00  WA  0   0  8
  [25] .dynamic          DYNAMIC         008ae3d8 8ae3d8 000108 08  WA  7   0  4
  [26] .got              PROGBITS        008ae4e0 8ae4e0 0000f4 00  WA  0   0  4
  [27] .bss              NOBITS          008af000 8ae5e0 00723c 00  WA  0   0 16
  [28] .shstrtab         STRTAB          00000000 8ae5e0 00010b 00      0   0  1
Key to Flags:
  W (write), A (alloc), X (execute), M (merge), S (strings), I (info),
  L (link order), O (extra OS processing required), G (group), T (TLS),
  C (compressed), x (unknown), o (OS specific), E (exclude),
  y (purecode), p (processor specific)

WORK Shared object
LC_ALL=C readelf -S ./libbeta.so

There are 29 section headers, starting at offset 0x8bcbc8:

Section Headers:
  [Nr] Name              Type            Addr     Off    Size   ES Flg Lk Inf Al
  [ 0]                   NULL            00000000 000000 000000 00      0   0  0
  [ 1] .note.gnu.build-i NOTE            000001b4 0001b4 000024 00   A  0   0  4
  [ 2] .dynsym           DYNSYM          000001d8 0001d8 002440 10   A  6   1  4
  [ 3] .gnu.version      VERSYM          00002618 002618 000488 02   A  2   0  2
  [ 4] .gnu.version_r    VERNEED         00002aa0 002aa0 000130 00   A  6   5  4
  [ 5] .gnu.hash         GNU_HASH        00002bd0 002bd0 000714 00   A  2   0  4
  [ 6] .dynstr           STRTAB          000032e4 0032e4 001e71 00   A  0   0  1
  [ 7] .rel.dyn          REL             00005158 005158 03ed50 08   A  2   0  4
  [ 8] .ARM.exidx        ARM_EXIDX       00043ea8 043ea8 000010 00  AL 13   0  4
  [ 9] .rel.plt          REL             00043eb8 043eb8 000a40 08   A  2  25  4
  [10] .rodata           PROGBITS        00044900 044900 0fd940 00 AMS  0   0 16
  [11] .eh_frame_hdr     PROGBITS        00142240 142240 00000c 00   A  0   0  4
  [12] .eh_frame         PROGBITS        0014224c 14224c 000004 00   A  0   0  4
  [13] .text             PROGBITS        00143280 142280 74cc3c 00  AX  0   0 64
  [14] .init             PROGBITS        0088febc 88eebc 00000c 00  AX  0   0  4
  [15] .fini             PROGBITS        0088fec8 88eec8 000008 00  AX  0   0  4
  [16] .plt              PROGBITS        0088fed0 88eed0 0014a0 00  AX  0   0 16
  [17] .tbss             NOBITS          00891370 890370 00000c 00 WAT  0   0  4
  [18] .fini_array       FINI_ARRAY      00892370 890370 000004 04  WA  0   0  4
  [19] .init_array       INIT_ARRAY      00892374 890374 0000c0 00  WA  0   0  4
  [20] .data.rel.ro      PROGBITS        00892438 890438 02ab24 00  WA  0   0  8
  [21] .dynamic          DYNAMIC         008bcf5c 8baf5c 0000f8 08  WA  6   0  4
  [22] .got              PROGBITS        008bd054 8bb054 0000dc 00  WA  0   0  4
  [23] .data             PROGBITS        008be130 8bb130 001438 00  WA  0   0  8
  [24] .tm_clone_table   PROGBITS        008bf568 8bc568 000000 00  WA  0   0  4
  [25] .got.plt          PROGBITS        008bf568 8bc568 00052c 00  WA  0   0  4
  [26] .bss              NOBITS          008bfaa0 8bca94 006f8c 00  WA  0   0 16
  [27] .ARM.attributes   ARM_ATTRIBUTES  00000000 8bca94 000023 00      0   0  1
  [28] .shstrtab         STRTAB          00000000 8bcab7 000110 00      0   0  1
Key to Flags:
  W (write), A (alloc), X (execute), M (merge), S (strings), I (info),
  L (link order), O (extra OS processing required), G (group), T (TLS),
  C (compressed), x (unknown), o (OS specific), E (exclude),
  y (purecode), p (processor specific)

difference in one section

[27] .ARM.attributes ARM_ATTRIBUTES 00000000 8bca94 000023 00 0 0 1

Okk, try run
readelf -A ./libstable.so
<empty result>

readelf -A ./libbeta.so

Attribute Section: aeabi
File Attributes
  Tag_CPU_name: "6"
  Tag_CPU_arch: v6
  Tag_ARM_ISA_use: Yes
  Tag_THUMB_ISA_use: Thumb-1
  Tag_FP_arch: VFPv2
  Tag_ABI_align_needed: 8-byte
  Tag_ABI_align_preserved: 8-byte, except leaf SP
  Tag_ABI_HardFP_use: Deprecated
  Tag_ABI_VFP_args: VFP registers

I think ld or dlopen check ".ARM.attributes" section and it fail when section is miss.

@jwinarske
Copy link
Collaborator

I like your perseverance 🥇

What's different between the two toolchains are the pre-built libs. The so link command is identical between the two.

I'm considering adding building Clang built-ins, and compiler-rt before the engine is linked. This would minimize toolchain pre-built and target dependency to just crt1/crti/crtn. I believe this will resolve the problem, as well as provide an optimized rt.

I'm out on vacation till mid next week, then I start a new job working with Flutter platform architecture! So the soonest I will start this is next weekend. I have the Clang build stages done in another project for Clang/MUSL, so it shouldn't be too bad.

@DisDis
Copy link
Contributor

DisDis commented Jul 30, 2020

It is very cool. this also unlocks AOT for emb flutter, because snapshot_gen creates a "bad" libapp.so.

@jwinarske
Copy link
Collaborator

Not sure what channel is not working, but I have AOT working in my Wayland flutter project. I have steps documented to generate an AOT here:
jwinarske/meta-flutter#7

@DisDis
Copy link
Contributor

DisDis commented Jul 30, 2020

Hmm, i used gen_snapshot from channel=dev and it generated "bad" shared object. Ok i look at Wayland project.

@jwinarske
Copy link
Collaborator

@DisDis IIRC one of the host side tools does not build correctly. I pulled the "bad" host-side tool from a manual x86_64 engine build.

@jwinarske
Copy link
Collaborator

Closing this out due to inactivity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working clang-8.0.0 Specific to Clang 8
Projects
None yet
Development

No branches or pull requests

3 participants