After addimg -m32
to linker without -Wl,-m32
, build works, but executable crashes
dbus[30505]: arguments to dbus_message_new_method_call() were incorrect, assertion "path != NULL" failed in file ../../../dbus/dbus-message.c line 1362.
This is normally a bug in some application using the D-Bus library.
D-Bus not built with -rdynamic so unable to print a backtrace
How to reproduce (ubuntu 18.04):
# remove libsdl2-dev and deps if installed, libsdl2-dev:i386 conflicts with some deps
sudo apt-get install gcc-multilib g++-multilib libsdl2-dev:i386
Checkout master branch https://github.com/puzrin/dispenser, open in platformio (vscode), uncomment -m32 flag and build “emulator”.
Then run .pio/build/emulator/program
from built-in terminal and see error.
Builder verbose output (linker only):
> Executing task in folder dispenser: platformio run --verbose --environment emulator <
Processing emulator (platform: native; extra_scripts: support/sdl2_build_extra.py; build_flags: -D LV_CONF_INCLUDE_SIMPLE, -I src, -DLV_MEM_SIZE=8000, -I hal/sdl2, -lSDL2, -m32, -D LV_LVGL_H_INCLUDE_SIMPLE, -D LV_DRV_NO_CONF, -D USE_MONITOR, -D MONITOR_ZOOM=2, -D USE_MOUSE, -D USE_MOUSEWHEEL, -D USE_KEYBOARD; src_build_flags: -Wall, -Wdouble-promotion, -Wextra, -Wclobbered, -Wdeprecated, -Wempty-body, -Wignored-qualifiers, -Wimplicit-fallthrough=3, -Wmissing-field-initializers, -Wsign-compare, -Wredundant-decls, -Wtype-limits, -Wuninitialized, -Wshift-negative-value, -Wunused-parameter, -Wunused-but-set-parameter; lib_deps: lvgl=https://github.com/littlevgl/lvgl/archive/7afd70a00564bea0150f2f96648b3cba7983d091.zip, Embedded Template Library@~15.5.0, lv_drivers@^6.0.2; src_filter: +<*>, +<../hal/sdl2>)
-------------------------------------------------------------------------------------------------
LDF: Library Dependency Finder -> http://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ soft
Found 4 compatible libraries
Scanning dependencies...
Dependency Graph
|-- <lvgl> 6.1.1 [https://github.com/littlevgl/lvgl/archive/7afd70a00564bea0150f2f96648b3cba7983d091.zip] (/home/vitaly/Coding/dispenser/.pio/libdeps/emulator/lvgl)
|-- <Embedded Template Library> 15.5.0 (/home/vitaly/Coding/dispenser/.pio/libdeps/emulator/Embedded Template Library_ID930)
|-- <lv_drivers> 6.1.1 (/home/vitaly/Coding/dispenser/.pio/libdeps/emulator/lv_drivers_ID6613)
| |-- <lvgl> 6.1.1 [https://github.com/littlevgl/lvgl/archive/7afd70a00564bea0150f2f96648b3cba7983d091.zip] (/home/vitaly/Coding/dispenser/.pio/libdeps/emulator/lvgl)
Building in release mode
g++ -o .pio/build/emulator/program -m32 .pio/build/emulator/hal/sdl2/app_hal.o .pio/build/emulator/src/app.o .pio/build/emulator/src/doses.o .pio/build/emulator/src/fonts/my_font_icons_18.o .pio/build/emulator/src/fonts/my_font_roboto_12.o .pio/build/emulator/src/fonts/my_font_roboto_14.o .pio/build/emulator/src/fonts/my_font_roboto_num_18.o .pio/build/emulator/src/screen_dose.o .pio/build/emulator/src/screen_flow.o .pio/build/emulator/src/screen_settings.o -L.pio/build/emulator -Wl,--start-group .pio/build/emulator/lib070/liblvgl.a ".pio/build/emulator/lib26d/libEmbedded Template Library_ID930.a" .pio/build/emulator/lib4d5/liblv_drivers_ID6613.a -lSDL2 -Wl,--end-group
================================== [SUCCESS] Took 1.83 seconds ==================================
Environment Status Duration
--------------- -------- ------------
emulator SUCCESS 00:00:01.831
hardware_stlink IGNORED
hardware_usb IGNORED
================================== 1 succeeded in 00:00:01.831 ==================================
Terminal will be reused by tasks, press any key to close it.
Src
Could anybody explain, what is wrong now?