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

gammu-smsd-inject & gammu-smsd-monitor not working #194

Closed
pjarmuzek opened this issue Mar 10, 2016 · 24 comments
Closed

gammu-smsd-inject & gammu-smsd-monitor not working #194

pjarmuzek opened this issue Mar 10, 2016 · 24 comments
Labels

Comments

@pjarmuzek
Copy link

pjarmuzek commented Mar 10, 2016

Hello,

I'm crosscompiling gammu 1.37.0 for ARM architechture.
Both gammu and gammu-smsd binaries are working well, however gammu-smsd-inject and gammu-smsd-monitor are not, I've got "Segmentation fault" error at my ARM platform.

As I checked all files are compiled properly to ARM arch. What can be the issue, or what I need to provide to check this?

@nijel
Copy link
Member

nijel commented Mar 10, 2016

I'm not sure, as both seem work just fine when compiled natively on ARM, it has to be something with your cross compiler setup. Have you tried to debug the crash?

@pjarmuzek
Copy link
Author

Hello Nijel,

Older versions like 1.33 and 1.35 runs fine - both smsd-monitor and smsd-inject.
I have found that at 1.36.8 that there are not working.
How can I debug that crash? Because everything I've got when I try to run is 'Segmentation fault', where I've checked and these files are for ARM platform (same like gammu and gammu-smsd).

@nijel
Copy link
Member

nijel commented Mar 18, 2016

If you can install gdb on the target, that is probably easiest way to debug it. Also if you can find first version which is crashing it could help us diagnose the problem.

@nijel nijel added the question label Mar 18, 2016
@pjarmuzek
Copy link
Author

Hello Nijel,
Today I've managed to find which gammu version fails.
1.36.6 is working well after cross-compile - monitor and inject runs perfectly.
However, since 1.36.7 I've got pthread error during crosscompilation:

undefined reference to `pthread_sigmask'

I can fix it by addind link_libraries(pthread) to CMakeLists.txt. Then it crosscompiles ok, but monitor and inject are not working - Segmentation fault.

I hope this would help.

@pjarmuzek
Copy link
Author

Hint: in current git version - 1.37.3 I dont get pthread error during crosscompile, but still got Segmentation fault in monitor and inject.
I can't manage to crosscompile gdb to my arm

@nijel
Copy link
Member

nijel commented May 10, 2016

I've looked at changes between 1.36.6 and 1.36.7 and I don't see any relevant changes in the SMSD code (see 1.36.6...1.36.7)...

@pjarmuzek
Copy link
Author

I've managed to run gdbserver at my arm target device. Using gdb at my Ubuntu I've tried to debug gammu-smsd-monitor and I'm getting:

Program received signal SIGSEGV, Segmentation fault.
0x40198014 in ?? ()

Will this help?

@nijel
Copy link
Member

nijel commented May 11, 2016

Not really, you probably don't have any debug symbols. Rebuild gammu with -DCMAKE_BUILD_TYPE=Debug. Once it will crash in gdb get backtrace using bt.

@pjarmuzek
Copy link
Author

I've continued today and I've got:
(gdb) b main
Breakpoint 1 at 0x9214: file /home/radek/Build/gammu-1.37.3/smsd/monitor.c, line 193.

Can you guide how to go ahead with that? I'm new to gdb

@nijel
Copy link
Member

nijel commented May 17, 2016

Just run it (r) and once it crashes get backtrace (bt). This is what I need :-)

@pjarmuzek
Copy link
Author

I guess it's not working using gdbserver, as I cant run normal gdb at arm host machine. Can we arrange some kind of remote session so You can have a look at it?

This is what I've mangaed to get:

(gdb) target remote 192.168.1.115:2000
Remote debugging using 192.168.1.115:2000
warning: while parsing target description (at line 1): Target description specified unknown architecture "arm"
warning: Could not load XML target description; ignoring
0x00000000 in ?? ()
(gdb) r
The "remote" target does not support "run". Try "help target" or "continue".
(gdb) continue
Continuing.

Program received signal SIGSEGV, Segmentation fault.
0x401a0014 in ?? ()
(gdb) bt
#0 0x401a0014 in ?? ()
(gdb) b main
No symbol table is loaded. Use the "file" command.
Make breakpoint pending on future shared library load? (y or [n]) y
Breakpoint 1 (main) pending.
(gdb) file gammu-smsd-monitor
A program is being debugged already.
Are you sure you want to change the file? (y or n) y
Reading symbols from /home/radek/Build/out/gammu-1.37.3/bin/gammu-smsd-monitor...done.
(gdb) b main
Note: breakpoint 1 also set at pc 0x9214.
Breakpoint 2 at 0x9214: file /home/radek/Build/gammu-1.37.3/smsd/monitor.c, line 193.
(gdb) r
The "remote" target does not support "run". Try "help target" or "continue".
(gdb) continue
Continuing.
Remote connection closed
(gdb) bt
No stack.
(gdb)

@nijel
Copy link
Member

nijel commented May 23, 2016

I've never used gdbserver, but looking at your your log, load symbols just when it crashes and then run bt.

@nijel
Copy link
Member

nijel commented Oct 10, 2016

Any luck debugging this?

@pjarmuzek
Copy link
Author

Unfortunately not, gdbserver is not working as expected (and not as you told about normal gdb debugging).
Is it possible for you to help us somehow with this ?

@nijel
Copy link
Member

nijel commented Oct 12, 2016

What is strange is that gammu and gammu-smsd works while gammu-smsd-monitor and gammu-smsd-inject do not. Especially with inject as it's pretty much same as gammu + gammu-smsd, it processes command line and connects to the database using same functions as these two (the monitor does some shared memory access, so that might be different) Do they do at least something? Do you have strace available to see how far they get?

@pjarmuzek
Copy link
Author

Hello Michal,

Today I've again crosscompiled 1.37.4 - no errors during compilation time. Here's output of strace:

[root@smseagle ~]# strace gammu-smsd-monitor
execve("/bin/gammu-smsd-monitor", ["gammu-smsd-monitor"], [/* 16 vars */]) = 0
mmap2(NULL, 20, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40005000
stat("/etc/ld.so.cache", {st_mode=S_IFREG|0644, st_size=4373, ...}) = 0
open("/etc/ld.so.cache", O_RDONLY)      = 3
mmap2(NULL, 4373, PROT_READ, MAP_SHARED, 3, 0) = 0x40006000
close(3)                                = 0
open("/lib/libGammu.so.7", O_RDONLY)    = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=986758, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40008000
read(3, "\177ELF\1\1\1a\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0Ps\1\0004"..., 4096) = 4096
mmap2(NULL, 942080, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x4000e000
mmap2(0x4000e000, 802744, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0x4000e000
mmap2(0x400da000, 99076, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0xc4) = 0x400da000
mmap2(0x400f3000, 920, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x400f3000
close(3)                                = 0
munmap(0x40008000, 4096)                = 0
open("/lib/libgsmsd.so.7", O_RDONLY)    = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=95712, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40008000
read(3, "\177ELF\1\1\1a\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\254?\0\000"..., 4096) = 4096
mmap2(NULL, 114688, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x400f4000
mmap2(0x400f4000, 74668, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0x400f4000
mmap2(0x4010e000, 5284, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x12) = 0x4010e000
close(3)                                = 0
munmap(0x40008000, 4096)                = 0
open("/lib/libssp.so.0", O_RDONLY)      = 3
fstat(3, {st_mode=S_IFREG|0755, st_size=5808, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40008000
read(3, "\177ELF\1\1\1a\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0$\t\0\000"..., 4096) = 4096
mmap2(NULL, 40960, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40110000
mmap2(0x40110000, 4336, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0x40110000
mmap2(0x40119000, 616, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x1) = 0x40119000
close(3)                                = 0
munmap(0x40008000, 4096)                = 0
open("/lib/libgcc_s.so.1", O_RDONLY)    = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=44261, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40008000
read(3, "\177ELF\1\1\1a\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0X\25\0\000"..., 4096) = 4096
mmap2(NULL, 65536, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x4011a000
mmap2(0x4011a000, 28800, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0x4011a000
mmap2(0x40129000, 548, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x7) = 0x40129000
close(3)                                = 0
munmap(0x40008000, 4096)                = 0
open("/lib/libc.so.0", O_RDONLY)        = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=305744, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40008000
read(3, "\177ELF\1\1\1a\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\20\253\0"..., 4096) = 4096
mmap2(NULL, 356352, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x4012a000
mmap2(0x4012a000, 301812, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0x4012a000
mmap2(0x4017b000, 5172, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x49) = 0x4017b000
mmap2(0x4017d000, 16020, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x4017d000
close(3)                                = 0
munmap(0x40008000, 4096)                = 0
open("/lib/libpthread.so.0", O_RDONLY)  = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=63852, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40008000
read(3, "\177ELF\1\1\1a\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\214<\0\000"..., 4096) = 4096
mmap2(NULL, 106496, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40181000
mmap2(0x40181000, 41328, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0x40181000
mmap2(0x40193000, 21732, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0xa) = 0x40193000
mmap2(0x40199000, 5812, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x40199000
close(3)                                = 0
munmap(0x40008000, 4096)                = 0
open("/lib/libm.so.0", O_RDONLY)        = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=45812, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40008000
read(3, "\177ELF\1\1\1a\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\4\22\0\000"..., 4096) = 4096
mmap2(NULL, 81920, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x4019b000
mmap2(0x4019b000, 42436, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0x4019b000
mmap2(0x401ad000, 4100, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0xa) = 0x401ad000
close(3)                                = 0
munmap(0x40008000, 4096)                = 0
open("/lib/libssp.so.0", O_RDONLY)      = 3
fstat(3, {st_mode=S_IFREG|0755, st_size=5808, ...}) = 0
close(3)                                = 0
open("/lib/libgcc_s.so.1", O_RDONLY)    = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=44261, ...}) = 0
close(3)                                = 0
open("/lib/libc.so.0", O_RDONLY)        = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=305744, ...}) = 0
close(3)                                = 0
open("/lib/libGammu.so.7", O_RDONLY)    = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=986758, ...}) = 0
close(3)                                = 0
open("/lib/libpq.so.5", O_RDONLY)       = 3
fstat(3, {st_mode=S_IFREG|0755, st_size=103472, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40008000
read(3, "\177ELF\1\1\1a\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\30>\0\000"..., 4096) = 4096
mmap2(NULL, 102400, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x401af000
mmap2(0x401af000, 97796, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0x401af000
mmap2(0x401c7000, 3480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x18) = 0x401c7000
close(3)                                = 0
munmap(0x40008000, 4096)                = 0
open("/lib/libpthread.so.0", O_RDONLY)  = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=63852, ...}) = 0
close(3)                                = 0
open("/lib/libssp.so.0", O_RDONLY)      = 3
fstat(3, {st_mode=S_IFREG|0755, st_size=5808, ...}) = 0
close(3)                                = 0
open("/lib/libgcc_s.so.1", O_RDONLY)    = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=44261, ...}) = 0
close(3)                                = 0
open("/lib/libc.so.0", O_RDONLY)        = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=305744, ...}) = 0
close(3)                                = 0
open("/lib/libgcc_s.so.1", O_RDONLY)    = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=44261, ...}) = 0
close(3)                                = 0
open("/lib/libc.so.0", O_RDONLY)        = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=305744, ...}) = 0
close(3)                                = 0
open("/lib/libc.so.0", O_RDONLY)        = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=305744, ...}) = 0
close(3)                                = 0
open("/lib/libc.so.0", O_RDONLY)        = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=305744, ...}) = 0
close(3)                                = 0
open("/lib/libc.so.0", O_RDONLY)        = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=305744, ...}) = 0
close(3)                                = 0
open("/lib/libcrypt.so.0", O_RDONLY)    = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=12892, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40008000
read(3, "\177ELF\1\1\1a\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\234\4\0\000"..., 4096) = 4096
mmap2(NULL, 118784, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x401c8000
mmap2(0x401c8000, 9408, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0x401c8000
mmap2(0x401d2000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x2) = 0x401d2000
mmap2(0x401d3000, 70864, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x401d3000
close(3)                                = 0
munmap(0x40008000, 4096)                = 0
open("/lib/libgcc_s.so.1", O_RDONLY)    = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=44261, ...}) = 0
close(3)                                = 0
open("/lib/libc.so.0", O_RDONLY)        = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=305744, ...}) = 0
close(3)                                = 0
open("/lib/libc.so.0", O_RDONLY)        = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=305744, ...}) = 0
close(3)                                = 0
munmap(0x40006000, 4373)                = 0
stat("/lib/ld-uClibc.so.0", {st_mode=S_IFREG|0755, st_size=21096, ...}) = 0
mprotect(0x11000, 4096, PROT_READ)      = 0
mprotect(0x400da000, 4096, PROT_READ)   = 0
mprotect(0x4010e000, 4096, PROT_READ)   = 0
mprotect(0x4017b000, 4096, PROT_READ)   = 0
mprotect(0x40193000, 4096, PROT_READ)   = 0
mprotect(0x401ad000, 4096, PROT_READ)   = 0
mprotect(0x401d2000, 4096, PROT_READ)   = 0
mprotect(0x4000c000, 4096, PROT_READ)   = 0
ioctl(0, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo ...}) = 0
ioctl(1, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo ...}) = 0
getpid()                                = 5608
getrlimit(RLIMIT_STACK, {rlim_cur=8192*1024, rlim_max=RLIM_INFINITY}) = 0
setrlimit(RLIMIT_STACK, {rlim_cur=2040*1024, rlim_max=RLIM_INFINITY}) = 0
rt_sigaction(SIGRTMIN, {0x4018adc8, [], 0x4000000 /* SA_??? */}, NULL, 8) = 0
rt_sigaction(SIGRT_1, {0x4018acf8, [RTMIN], 0x4000000 /* SA_??? */}, NULL, 8) = 0
rt_sigaction(SIGRT_2, {0x4018a33c, [], 0x4000000 /* SA_??? */}, NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [RTMIN], NULL, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [RT_1], NULL, 8) = 0
--- SIGSEGV (Segmentation fault) @ 0 (0) ---
+++ killed by SIGSEGV +++
Process 5608 detached

What I've also did is try to crosscompile newest - 1.37.91 (with same cmake command) and it was unsuccessfull:

root@VirtualBox:/home/Build/gammu-1.37.91# cmake -DCMAKE_TOOLCHAIN_FILE=cmake/Toolchain-Arm.cmake -DWITH_PYTHON=OFF -DWITH_SIEMENS_SUPPORT=OFF -DWITH_NOKIA_SUPPORT=OFF -DWITH_ALCATEL_SUPPORT=OFF -DWITH_BLUETOOTH=OFF -DWITH_IRDA=OFF -DWITH_MySQL=OFF -DWITH_CURL=OFF -DWITH_GettextLibs=OFF -DCMAKE_INSTALL_PREFIX:PATH=/home/Build/out/gammu -DWITH_Iconv=OFF
-- Configuring Gammu 1.37.91
Warning: In tree build is not recommended way to build Gammu.
-- Could NOT find Doxygen (missing:  DOXYGEN_EXECUTABLE) 
-- Could NOT find ODBC (missing:  ODBC_LIBRARY ODBC_INCLUDE_DIR) 
-- Found PostgreSQL: /home/user/ARMLinux/buildroot/build_arm/staging_dir/include, /home/user/ARMLinux/buildroot/build_arm/staging_dir/usr/lib/libpq.so
-- libdbi not found.
-- Could NOT find Libintl (missing:  LIBINTL_INCLUDE_DIR LIBINTL_LIB_FOUND) 
-- checking for module 'systemd'
--   package 'systemd' not found
-- checking for module 'libusb-1.0'
--   package 'libusb-1.0' not found
-- libusb-1.0 not found.
-- Nokia support disabled
-- AT support enabled
-- AT protocol enabled
-- AT phones support enabled
-- Alcatel support disabled
-- OBEX compatible phones support enabled
-- Generic OBEX phones support enabled
-- AT with OBEX phones support enabled
-- Symbian phones support (S60) enabled
-- S60 phones support enabled
-- Cell Broadcast messages support enabled
-- Backup/Restore functions enabled
CMake Error at cmake/GammuTuneFlags.cmake:4 (set_property):
  set_property could not find TARGET APPEND_STRING.  Perhaps it has not yet
  been created.
Call Stack (most recent call first):
  libgammu/CMakeLists.txt:123 (GAMMU_TUNE_SHARED)


CMake Error at cmake/GammuTuneFlags.cmake:4 (set_property):
  set_property could not find TARGET APPEND_STRING.  Perhaps it has not yet
  been created.
Call Stack (most recent call first):
  helper/CMakeLists.txt:15 (GAMMU_TUNE_SHARED)


CMake Error at cmake/GammuTuneFlags.cmake:4 (set_property):
  set_property could not find TARGET APPEND_STRING.  Perhaps it has not yet
  been created.
Call Stack (most recent call first):
  helper/CMakeLists.txt:19 (GAMMU_TUNE_SHARED)


CMake Error at cmake/GammuTuneFlags.cmake:4 (set_property):
  set_property could not find TARGET APPEND_STRING.  Perhaps it has not yet
  been created.
Call Stack (most recent call first):
  helper/CMakeLists.txt:23 (GAMMU_TUNE_SHARED)


CMake Error at cmake/GammuTuneFlags.cmake:4 (set_property):
  set_property could not find TARGET APPEND_STRING.  Perhaps it has not yet
  been created.
Call Stack (most recent call first):
  helper/CMakeLists.txt:27 (GAMMU_TUNE_SHARED)


CMake Error at cmake/GammuTuneFlags.cmake:4 (set_property):
  set_property could not find TARGET APPEND_STRING.  Perhaps it has not yet
  been created.
Call Stack (most recent call first):
  helper/CMakeLists.txt:32 (GAMMU_TUNE_SHARED)


CMake Error at cmake/GammuTuneFlags.cmake:4 (set_property):
  set_property could not find TARGET APPEND_STRING.  Perhaps it has not yet
  been created.
Call Stack (most recent call first):
  helper/CMakeLists.txt:37 (GAMMU_TUNE_SHARED)


CMake Error at cmake/GammuTuneFlags.cmake:4 (set_property):
  set_property could not find TARGET APPEND_STRING.  Perhaps it has not yet
  been created.
Call Stack (most recent call first):
  helper/CMakeLists.txt:45 (GAMMU_TUNE_SHARED)


CMake Error at cmake/GammuTuneFlags.cmake:4 (set_property):
  set_property could not find TARGET APPEND_STRING.  Perhaps it has not yet
  been created.
Call Stack (most recent call first):
  smsd/CMakeLists.txt:118 (GAMMU_TUNE_SHARED)


-- checking for module 'bash-completion'
--   package 'bash-completion' not found
-- Init script not being installed, install it by -DINSTALL_LSB_INIT=ON
-- Udev rules not being installed, install it by -DINSTALL_UDEV_RULES=ON
-- Configuring incomplete, errors occurred!

``

@nijel
Copy link
Member

nijel commented Nov 16, 2016

The build failure is probably caused by b58c494, what CMake version do you use?

PS: CMake 3.0 seems to be now required, see 61aaa19

nijel added a commit that referenced this issue Nov 16, 2016
This is required for set_property(... APPEND_STRING ...)

Issue #194

Signed-off-by: Michal Čihař <michal@cihar.com>
@nijel
Copy link
Member

nijel commented Nov 16, 2016

As for the crash, it dies pretty early, maybe even before reaching main() (at least it doesn't attempt to read configuration what is one of very first things it does). So this is clearly some crosscompiling issue rather than something in the code.

@pjarmuzek
Copy link
Author

Hello Michal,
Today we've crosscompiled gammu-1.38.1 for our ARM platform.
I'm using Cmake 3.6.3, and it crosscompiles well (beside small change which I had to do in CMakeLists.txt, adding: MACRO_TUNE_COMPILER("-std=c99")

Unfortunately both monitor and inject dont work, both've got segmentation faults.
Here's strace:

execve("/bin/gammu-smsd-inject",` ["gammu-smsd-inject"], [/* 16 vars */]) = 0
mmap2(NULL, 20, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40005000
stat("/etc/ld.so.cache", {st_mode=S_IFREG|0644, st_size=4373, ...}) = 0
open("/etc/ld.so.cache", O_RDONLY)      = 3
mmap2(NULL, 4373, PROT_READ, MAP_SHARED, 3, 0) = 0x40006000
close(3)                                = 0
open("/lib/libgsmsd.so.8", O_RDONLY)    = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=96516, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40008000
read(3, "\177ELF\1\1\1a\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\270@\0\000"..., 4096) = 4096
mmap2(NULL, 114688, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x4000e000
mmap2(0x4000e000, 76776, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0x4000e000
mmap2(0x40028000, 5304, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x12) = 0x40028000
close(3)                                = 0
munmap(0x40008000, 4096)                = 0
open("/lib/libGammu.so.8", O_RDONLY)    = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=1011924, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40008000
read(3, "\177ELF\1\1\1a\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0Lu\1\0004"..., 4096) = 4096
mmap2(NULL, 966656, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x4002a000
mmap2(0x4002a000, 828484, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0x4002a000
mmap2(0x400fc000, 99664, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0xca) = 0x400fc000
mmap2(0x40115000, 1508, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x40115000
close(3)                                = 0
munmap(0x40008000, 4096)                = 0
open("/lib/libssp.so.0", O_RDONLY)      = 3
fstat(3, {st_mode=S_IFREG|0755, st_size=5808, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40008000
read(3, "\177ELF\1\1\1a\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0$\t\0\000"..., 4096) = 4096
mmap2(NULL, 40960, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40116000
mmap2(0x40116000, 4336, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0x40116000
mmap2(0x4011f000, 616, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x1) = 0x4011f000
close(3)                                = 0
munmap(0x40008000, 4096)                = 0
open("/lib/libgcc_s.so.1", O_RDONLY)    = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=44261, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40008000
read(3, "\177ELF\1\1\1a\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0X\25\0\000"..., 4096) = 4096
mmap2(NULL, 65536, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40120000
mmap2(0x40120000, 28800, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0x40120000
mmap2(0x4012f000, 548, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x7) = 0x4012f000
close(3)                                = 0
munmap(0x40008000, 4096)                = 0
open("/lib/libc.so.0", O_RDONLY)        = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=305744, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40008000
read(3, "\177ELF\1\1\1a\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\20\253\0"..., 4096) = 4096
mmap2(NULL, 356352, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40130000
mmap2(0x40130000, 301812, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0x40130000
mmap2(0x40181000, 5172, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x49) = 0x40181000
mmap2(0x40183000, 16020, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x40183000
close(3)                                = 0
munmap(0x40008000, 4096)                = 0
open("/lib/libGammu.so.8", O_RDONLY)    = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=1011924, ...}) = 0
close(3)                                = 0
open("/lib/libpq.so.5", O_RDONLY)       = 3
fstat(3, {st_mode=S_IFREG|0755, st_size=103472, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40008000
read(3, "\177ELF\1\1\1a\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\30>\0\000"..., 4096) = 4096
mmap2(NULL, 102400, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40187000
mmap2(0x40187000, 97796, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0x40187000
mmap2(0x4019f000, 3480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x18) = 0x4019f000
close(3)                                = 0
munmap(0x40008000, 4096)                = 0
open("/lib/libpthread.so.0", O_RDONLY)  = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=63852, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40008000
read(3, "\177ELF\1\1\1a\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\214<\0\000"..., 4096) = 4096
mmap2(NULL, 106496, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x401a0000
mmap2(0x401a0000, 41328, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0x401a0000
mmap2(0x401b2000, 21732, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0xa) = 0x401b2000
mmap2(0x401b8000, 5812, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x401b8000
close(3)                                = 0
munmap(0x40008000, 4096)                = 0
open("/lib/libm.so.0", O_RDONLY)        = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=45812, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40008000
read(3, "\177ELF\1\1\1a\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\4\22\0\000"..., 4096) = 4096
mmap2(NULL, 81920, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x401ba000
mmap2(0x401ba000, 42436, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0x401ba000
mmap2(0x401cc000, 4100, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0xa) = 0x401cc000
close(3)                                = 0
munmap(0x40008000, 4096)                = 0
open("/lib/libssp.so.0", O_RDONLY)      = 3
fstat(3, {st_mode=S_IFREG|0755, st_size=5808, ...}) = 0
close(3)                                = 0
open("/lib/libgcc_s.so.1", O_RDONLY)    = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=44261, ...}) = 0
close(3)                                = 0
open("/lib/libc.so.0", O_RDONLY)        = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=305744, ...}) = 0
close(3)                                = 0
open("/lib/libpthread.so.0", O_RDONLY)  = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=63852, ...}) = 0
close(3)                                = 0
open("/lib/libm.so.0", O_RDONLY)        = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=45812, ...}) = 0
close(3)                                = 0
open("/lib/libssp.so.0", O_RDONLY)      = 3
fstat(3, {st_mode=S_IFREG|0755, st_size=5808, ...}) = 0
close(3)                                = 0
open("/lib/libgcc_s.so.1", O_RDONLY)    = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=44261, ...}) = 0
close(3)                                = 0
open("/lib/libc.so.0", O_RDONLY)        = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=305744, ...}) = 0
close(3)                                = 0
open("/lib/libgcc_s.so.1", O_RDONLY)    = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=44261, ...}) = 0
close(3)                                = 0
open("/lib/libc.so.0", O_RDONLY)        = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=305744, ...}) = 0
close(3)                                = 0
open("/lib/libc.so.0", O_RDONLY)        = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=305744, ...}) = 0
close(3)                                = 0
open("/lib/libcrypt.so.0", O_RDONLY)    = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=12892, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40008000
read(3, "\177ELF\1\1\1a\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\234\4\0\000"..., 4096) = 4096
mmap2(NULL, 118784, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x401ce000
mmap2(0x401ce000, 9408, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0x401ce000
mmap2(0x401d8000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x2) = 0x401d8000
mmap2(0x401d9000, 70864, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x401d9000
close(3)                                = 0
munmap(0x40008000, 4096)                = 0
open("/lib/libgcc_s.so.1", O_RDONLY)    = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=44261, ...}) = 0
close(3)                                = 0
open("/lib/libc.so.0", O_RDONLY)        = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=305744, ...}) = 0
close(3)                                = 0
open("/lib/libc.so.0", O_RDONLY)        = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=305744, ...}) = 0
close(3)                                = 0
open("/lib/libc.so.0", O_RDONLY)        = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=305744, ...}) = 0
close(3)                                = 0
open("/lib/libc.so.0", O_RDONLY)        = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=305744, ...}) = 0
close(3)                                = 0
munmap(0x40006000, 4373)                = 0
stat("/lib/ld-uClibc.so.0", {st_mode=S_IFREG|0755, st_size=21096, ...}) = 0
mprotect(0x17000, 4096, PROT_READ)      = 0
mprotect(0x40028000, 4096, PROT_READ)   = 0
mprotect(0x400fc000, 4096, PROT_READ)   = 0
mprotect(0x40181000, 4096, PROT_READ)   = 0
mprotect(0x401b2000, 4096, PROT_READ)   = 0
mprotect(0x401cc000, 4096, PROT_READ)   = 0
mprotect(0x401d8000, 4096, PROT_READ)   = 0
mprotect(0x4000c000, 4096, PROT_READ)   = 0
ioctl(0, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo ...}) = 0
ioctl(1, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo ...}) = 0
getpid()                                = 18308
getrlimit(RLIMIT_STACK, {rlim_cur=8192*1024, rlim_max=RLIM_INFINITY}) = 0
setrlimit(RLIMIT_STACK, {rlim_cur=2040*1024, rlim_max=RLIM_INFINITY}) = 0
rt_sigaction(SIGRTMIN, {0x401a9dc8, [], 0x4000000 /* SA_??? */}, NULL, 8) = 0
rt_sigaction(SIGRT_1, {0x401a9cf8, [RTMIN], 0x4000000 /* SA_??? */}, NULL, 8) = 0
rt_sigaction(SIGRT_2, {0x401a933c, [], 0x4000000 /* SA_??? */}, NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [RTMIN], NULL, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [RT_1], NULL, 8) = 0
--- SIGSEGV (Segmentation fault) @ 0 (0) ---
+++ killed by SIGSEGV +++
Process 18308 detached

@nijel
Copy link
Member

nijel commented Feb 10, 2017

This still looks like the crash in the program startup, even before main() gets called. Maybe some compilation flags which Gammu enables by default causes this? Can you try rebuilding with disabled compiler protections (cmake -DENABLE_PROTECTION=OFF)?

@pjarmuzek
Copy link
Author

I don't think anything changed here:

execve("/bin/gammu-smsd-inject", ["gammu-smsd-inject"], [/* 16 vars */]) = 0
mmap2(NULL, 20, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40005000
stat("/etc/ld.so.cache", {st_mode=S_IFREG|0644, st_size=4373, ...}) = 0
open("/etc/ld.so.cache", O_RDONLY)      = 3
mmap2(NULL, 4373, PROT_READ, MAP_SHARED, 3, 0) = 0x40006000
close(3)                                = 0
open("/lib/libgsmsd.so.8", O_RDONLY)    = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=94329, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40008000
read(3, "\177ELF\1\1\1a\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\370?\0\000"..., 4096) = 4096
mmap2(NULL, 110592, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x4000e000
mmap2(0x4000e000, 75464, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0x4000e000
mmap2(0x40028000, 3204, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x12) = 0x40028000
close(3)                                = 0
munmap(0x40008000, 4096)                = 0
open("/lib/libGammu.so.8", O_RDONLY)    = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=996777, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40008000
read(3, "\177ELF\1\1\1a\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\210t\1\000"..., 4096) = 4096
mmap2(NULL, 950272, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40029000
mmap2(0x40029000, 813656, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0x40029000
mmap2(0x400f8000, 98144, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0xc7) = 0x400f8000
mmap2(0x40110000, 4084, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x40110000
close(3)                                = 0
munmap(0x40008000, 4096)                = 0
open("/lib/libgcc_s.so.1", O_RDONLY)    = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=44261, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40008000
read(3, "\177ELF\1\1\1a\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0X\25\0\000"..., 4096) = 4096
mmap2(NULL, 65536, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40111000
mmap2(0x40111000, 28800, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0x40111000
mmap2(0x40120000, 548, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x7) = 0x40120000
close(3)                                = 0
munmap(0x40008000, 4096)                = 0
open("/lib/libc.so.0", O_RDONLY)        = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=305744, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40008000
read(3, "\177ELF\1\1\1a\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\20\253\0"..., 4096) = 4096
mmap2(NULL, 356352, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40121000
mmap2(0x40121000, 301812, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0x40121000
mmap2(0x40172000, 5172, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x49) = 0x40172000
mmap2(0x40174000, 16020, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x40174000
close(3)                                = 0
munmap(0x40008000, 4096)                = 0
open("/lib/libGammu.so.8", O_RDONLY)    = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=996777, ...}) = 0
close(3)                                = 0
open("/lib/libpq.so.5", O_RDONLY)       = 3
fstat(3, {st_mode=S_IFREG|0755, st_size=103472, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40008000
read(3, "\177ELF\1\1\1a\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\30>\0\000"..., 4096) = 4096
mmap2(NULL, 102400, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40178000
mmap2(0x40178000, 97796, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0x40178000
mmap2(0x40190000, 3480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x18) = 0x40190000
close(3)                                = 0
munmap(0x40008000, 4096)                = 0
open("/lib/libpthread.so.0", O_RDONLY)  = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=63852, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40008000
read(3, "\177ELF\1\1\1a\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\214<\0\000"..., 4096) = 4096
mmap2(NULL, 106496, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40191000
mmap2(0x40191000, 41328, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0x40191000
mmap2(0x401a3000, 21732, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0xa) = 0x401a3000
mmap2(0x401a9000, 5812, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x401a9000
close(3)                                = 0
munmap(0x40008000, 4096)                = 0
open("/lib/libm.so.0", O_RDONLY)        = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=45812, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40008000
read(3, "\177ELF\1\1\1a\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\4\22\0\000"..., 4096) = 4096
mmap2(NULL, 81920, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x401ab000
mmap2(0x401ab000, 42436, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0x401ab000
mmap2(0x401bd000, 4100, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0xa) = 0x401bd000
close(3)                                = 0
munmap(0x40008000, 4096)                = 0
open("/lib/libgcc_s.so.1", O_RDONLY)    = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=44261, ...}) = 0
close(3)                                = 0
open("/lib/libc.so.0", O_RDONLY)        = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=305744, ...}) = 0
close(3)                                = 0
open("/lib/libpthread.so.0", O_RDONLY)  = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=63852, ...}) = 0
close(3)                                = 0
open("/lib/libm.so.0", O_RDONLY)        = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=45812, ...}) = 0
close(3)                                = 0
open("/lib/libgcc_s.so.1", O_RDONLY)    = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=44261, ...}) = 0
close(3)                                = 0
open("/lib/libc.so.0", O_RDONLY)        = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=305744, ...}) = 0
close(3)                                = 0
open("/lib/libc.so.0", O_RDONLY)        = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=305744, ...}) = 0
close(3)                                = 0
open("/lib/libcrypt.so.0", O_RDONLY)    = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=12892, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40008000
read(3, "\177ELF\1\1\1a\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\234\4\0\000"..., 4096) = 4096
mmap2(NULL, 118784, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x401bf000
mmap2(0x401bf000, 9408, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0x401bf000
mmap2(0x401c9000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x2) = 0x401c9000
mmap2(0x401ca000, 70864, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x401ca000
close(3)                                = 0
munmap(0x40008000, 4096)                = 0
open("/lib/libgcc_s.so.1", O_RDONLY)    = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=44261, ...}) = 0
close(3)                                = 0
open("/lib/libc.so.0", O_RDONLY)        = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=305744, ...}) = 0
close(3)                                = 0
open("/lib/libc.so.0", O_RDONLY)        = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=305744, ...}) = 0
close(3)                                = 0
open("/lib/libc.so.0", O_RDONLY)        = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=305744, ...}) = 0
close(3)                                = 0
open("/lib/libc.so.0", O_RDONLY)        = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=305744, ...}) = 0
close(3)                                = 0
munmap(0x40006000, 4373)                = 0
stat("/lib/ld-uClibc.so.0", {st_mode=S_IFREG|0755, st_size=21096, ...}) = 0
mprotect(0x40172000, 4096, PROT_READ)   = 0
mprotect(0x401a3000, 4096, PROT_READ)   = 0
mprotect(0x401bd000, 4096, PROT_READ)   = 0
mprotect(0x401c9000, 4096, PROT_READ)   = 0
mprotect(0x4000c000, 4096, PROT_READ)   = 0
ioctl(0, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo ...}) = 0
ioctl(1, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo ...}) = 0
getpid()                                = 16359
getrlimit(RLIMIT_STACK, {rlim_cur=8192*1024, rlim_max=RLIM_INFINITY}) = 0
setrlimit(RLIMIT_STACK, {rlim_cur=2040*1024, rlim_max=RLIM_INFINITY}) = 0
rt_sigaction(SIGRTMIN, {0x4019adc8, [], 0x4000000 /* SA_??? */}, NULL, 8) = 0
rt_sigaction(SIGRT_1, {0x4019acf8, [RTMIN], 0x4000000 /* SA_??? */}, NULL, 8) = 0
rt_sigaction(SIGRT_2, {0x4019a33c, [], 0x4000000 /* SA_??? */}, NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [RTMIN], NULL, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [RT_1], NULL, 8) = 0
--- SIGSEGV (Segmentation fault) @ 0 (0) ---
+++ killed by SIGSEGV +++
Process 16359 detached

Anything more I can do during crosscompiling, any cmake flag to pass?

@nijel
Copy link
Member

nijel commented Mar 1, 2017

Sorry, I have no clue how to proceed. It seems to be compilation issue as we don't even reach main().

@pjarmuzek
Copy link
Author

Hello Michal,
That issue also happened at 1.38.3 ,but we've managed to fix that.
I have observed that the issue was related to the shared objects symbols in *.so files, the resolution I have for this is to statically link all the objects:
-DBUILD_SHARED_LIBS=OFF
also our arm-linux toolchain got issues with -DENABLE_PROTECTION=ON so we're using -DENABLE_PROTECTION=OFF
Maybe this would be helpfull for someone :)

@nijel
Copy link
Member

nijel commented Jun 12, 2017

Looks like the cross compiler toolchain has problem with some of the features we're using. In case you want to dig deeper into this, try commenting out MACRO_TUNE_COMPILER lines from CMakeLists.txt
to see which of these will fix that...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants