* [Buildroot] flags to build Qt5 for AMD Geode LX arch ?
@ 2019-01-29 18:28 David Picard
2019-01-29 18:33 ` Yann E. MORIN
0 siblings, 1 reply; 8+ messages in thread
From: David Picard @ 2019-01-29 18:28 UTC (permalink / raw)
To: buildroot
Hello,
I can build Qt5 successfully. I tested my custom application in QEMU,
with the same disk.img that I use on the read target (AMD Geode LX).
But on the target, whenever I link one of my programs with Qt5, it
terminates straight away with a SIGILL (illegal instruction). Including
a simple printf("Hello world") that doesn't include nor call in Qt5.
With gdbserver + gdb, I could find the instruction where the SIGILL is
thrown :
movq?? %xmm0,0x8(%esp)
with op code :
66 0F D6 44 24 08
I'm not fluent in assembly code, but my guess is that the instruction is
not be supported by my CPU. Flags of /proc/cpuinfo : fpu de pse tsc msr
cx8 sep pge cmov clflush mmx mmxext 3dnowext 3dnow cpuid 3dnowprefetch
vmmcall
I thought I could pass e.g. -march=geode when I build Qt. But I don't
know how to do it. I noticed a arch.conf file in the build directory but
it gest overwritten when I make qt5base-reconfigure...
David
^ permalink raw reply [flat|nested] 8+ messages in thread* [Buildroot] flags to build Qt5 for AMD Geode LX arch ? 2019-01-29 18:28 [Buildroot] flags to build Qt5 for AMD Geode LX arch ? David Picard @ 2019-01-29 18:33 ` Yann E. MORIN 2019-01-30 7:46 ` David Picard 0 siblings, 1 reply; 8+ messages in thread From: Yann E. MORIN @ 2019-01-29 18:33 UTC (permalink / raw) To: buildroot David, All, On 2019-01-29 19:28 +0100, David Picard spake thusly: > I can build Qt5 successfully. I tested my custom application in QEMU, with > the same disk.img that I use on the read target (AMD Geode LX). > > But on the target, whenever I link one of my programs with Qt5, it > terminates straight away with a SIGILL (illegal instruction). Including a > simple printf("Hello world") that doesn't include nor call in Qt5. [--SNIP--] > I thought I could pass e.g. -march=geode when I build Qt. But I don't know > how to do it. I noticed a arch.conf file in the build directory but it gest > overwritten when I make qt5base-reconfigure... Well, if even a program that is not linked to Qt failes, you won;t solve that by only "fixing" it in Qt... In that cas, since your processor is a geode, you have to confiugyure Buildroot to generate code for that processor, i.e.: BR2_x86_geode=y Regards, Yann E. MORIN. -- .-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 561 099 427 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------' ^ permalink raw reply [flat|nested] 8+ messages in thread
* [Buildroot] flags to build Qt5 for AMD Geode LX arch ? 2019-01-29 18:33 ` Yann E. MORIN @ 2019-01-30 7:46 ` David Picard 2019-01-30 10:21 ` David Picard 0 siblings, 1 reply; 8+ messages in thread From: David Picard @ 2019-01-30 7:46 UTC (permalink / raw) To: buildroot Hello, I'm sorry, my message was not clear, it seems. To put it in a nutshell : as soon as a program is linked to Qt5, it crashes with a SIGILL. Everything else works : X11, framebuffer, network, and my own programs (provided they are not linked to Qt5). More interesting : I found by DuckDucking that the faulty instruction may be part of the SSE2 instruction set. My CPU doesn't support this. build/qt5base-5.11.2/src/corelib/Makefile has "-msse2" in CFLAGS and CXXFLAGS. Could you help me get rid of this flag ? I'm connected on the IRC channel today as "dplamp". I did select all the Geode stuff : - Builroot config : BR2_x86_geode=y, BR2_PACKAGE_XDRIVER_XF86_VIDEO_GEODE=y - Kernel config : CONFIG_MGEODE_LX=y, CONFIG_FB_GEODE=y, CONFIG_FB_GEODE_LX=y Le 29/01/2019 ? 19:33, Yann E. MORIN a ?crit?: > David, All, > > On 2019-01-29 19:28 +0100, David Picard spake thusly: >> I can build Qt5 successfully. I tested my custom application in QEMU, with >> the same disk.img that I use on the read target (AMD Geode LX). >> >> But on the target, whenever I link one of my programs with Qt5, it >> terminates straight away with a SIGILL (illegal instruction). Including a >> simple printf("Hello world") that doesn't include nor call in Qt5. > [--SNIP--] >> I thought I could pass e.g. -march=geode when I build Qt. But I don't know >> how to do it. I noticed a arch.conf file in the build directory but it gest >> overwritten when I make qt5base-reconfigure... > Well, if even a program that is not linked to Qt failes, you won;t solve > that by only "fixing" it in Qt... > > In that cas, since your processor is a geode, you have to confiugyure > Buildroot to generate code for that processor, i.e.: BR2_x86_geode=y > > Regards, > Yann E. MORIN. > ^ permalink raw reply [flat|nested] 8+ messages in thread
* [Buildroot] flags to build Qt5 for AMD Geode LX arch ? 2019-01-30 7:46 ` David Picard @ 2019-01-30 10:21 ` David Picard 2019-01-30 14:39 ` David Picard 0 siblings, 1 reply; 8+ messages in thread From: David Picard @ 2019-01-30 10:21 UTC (permalink / raw) To: buildroot Hello, With this search : $ cd build $ grep "\-msse2" $(find ./ -name "Makefile*") I can see that only Qt5 uses the SSE2 instruction set that my CPU doesn't support. Can anyone help me remove this flag ? Should I patch the qt5* packages somehow ? Thanks. Le 30/01/2019 ? 08:46, David Picard a ?crit?: > Hello, > > I'm sorry, my message was not clear, it seems. To put it in a nutshell > : as soon as a program is linked to Qt5, it crashes with a SIGILL. > Everything else works : X11, framebuffer, network, and my own programs > (provided they are not linked to Qt5). > > More interesting : > I found by DuckDucking that the faulty instruction may be part of the > SSE2 instruction set. My CPU doesn't support this. > build/qt5base-5.11.2/src/corelib/Makefile has "-msse2" in CFLAGS and > CXXFLAGS. > > Could you help me get rid of this flag ? I'm connected on the IRC > channel today as "dplamp". > > I did select all the Geode stuff : > - Builroot config : BR2_x86_geode=y, > BR2_PACKAGE_XDRIVER_XF86_VIDEO_GEODE=y > - Kernel config : CONFIG_MGEODE_LX=y, CONFIG_FB_GEODE=y, > CONFIG_FB_GEODE_LX=y > > > Le 29/01/2019 ? 19:33, Yann E. MORIN a ?crit?: >> David, All, >> >> On 2019-01-29 19:28 +0100, David Picard spake thusly: >>> I can build Qt5 successfully. I tested my custom application in >>> QEMU, with >>> the same disk.img that I use on the read target (AMD Geode LX). >>> >>> But on the target, whenever I link one of my programs with Qt5, it >>> terminates straight away with a SIGILL (illegal instruction). >>> Including a >>> simple printf("Hello world") that doesn't include nor call in Qt5. >> [--SNIP--] >>> I thought I could pass e.g. -march=geode when I build Qt. But I >>> don't know >>> how to do it. I noticed a arch.conf file in the build directory but >>> it gest >>> overwritten when I make qt5base-reconfigure... >> Well, if even a program that is not linked to Qt failes, you won;t solve >> that by only "fixing" it in Qt... >> >> In that cas, since your processor is a geode, you have to confiugyure >> Buildroot to generate code for that processor, i.e.: BR2_x86_geode=y >> >> Regards, >> Yann E. MORIN. >> > ^ permalink raw reply [flat|nested] 8+ messages in thread
* [Buildroot] flags to build Qt5 for AMD Geode LX arch ? 2019-01-30 10:21 ` David Picard @ 2019-01-30 14:39 ` David Picard 2019-01-31 21:24 ` Arnout Vandecappelle 0 siblings, 1 reply; 8+ messages in thread From: David Picard @ 2019-01-30 14:39 UTC (permalink / raw) To: buildroot Hello, I fixed it. So for the record, the solution was : BR2_PACKAGE_QT5BASE_CUSTOM_CONF_OPTS="-no-sse2" Got it from Qt's configure utility : $ configure --help Regards, David Le 30/01/2019 ? 11:21, David Picard a ?crit?: > Hello, > > With this search : > $ cd build > $ grep "\-msse2" $(find ./ -name "Makefile*") > > I can see that only Qt5 uses the SSE2 instruction set that my CPU > doesn't support. > > Can anyone help me remove this flag ? Should I patch the qt5* packages > somehow ? > > Thanks. > > Le 30/01/2019 ? 08:46, David Picard a ?crit?: >> Hello, >> >> I'm sorry, my message was not clear, it seems. To put it in a >> nutshell : as soon as a program is linked to Qt5, it crashes with a >> SIGILL. Everything else works : X11, framebuffer, network, and my own >> programs (provided they are not linked to Qt5). >> >> More interesting : >> I found by DuckDucking that the faulty instruction may be part of the >> SSE2 instruction set. My CPU doesn't support this. >> build/qt5base-5.11.2/src/corelib/Makefile has "-msse2" in CFLAGS and >> CXXFLAGS. >> >> Could you help me get rid of this flag ? I'm connected on the IRC >> channel today as "dplamp". >> >> I did select all the Geode stuff : >> - Builroot config : BR2_x86_geode=y, >> BR2_PACKAGE_XDRIVER_XF86_VIDEO_GEODE=y >> - Kernel config : CONFIG_MGEODE_LX=y, CONFIG_FB_GEODE=y, >> CONFIG_FB_GEODE_LX=y >> >> >> Le 29/01/2019 ? 19:33, Yann E. MORIN a ?crit?: >>> David, All, >>> >>> On 2019-01-29 19:28 +0100, David Picard spake thusly: >>>> I can build Qt5 successfully. I tested my custom application in >>>> QEMU, with >>>> the same disk.img that I use on the read target (AMD Geode LX). >>>> >>>> But on the target, whenever I link one of my programs with Qt5, it >>>> terminates straight away with a SIGILL (illegal instruction). >>>> Including a >>>> simple printf("Hello world") that doesn't include nor call in Qt5. >>> [--SNIP--] >>>> I thought I could pass e.g. -march=geode when I build Qt. But I >>>> don't know >>>> how to do it. I noticed a arch.conf file in the build directory but >>>> it gest >>>> overwritten when I make qt5base-reconfigure... >>> Well, if even a program that is not linked to Qt failes, you won;t >>> solve >>> that by only "fixing" it in Qt... >>> >>> In that cas, since your processor is a geode, you have to confiugyure >>> Buildroot to generate code for that processor, i.e.: BR2_x86_geode=y >>> >>> Regards, >>> Yann E. MORIN. >>> >> > > _______________________________________________ > buildroot mailing list > buildroot at busybox.net > http://lists.busybox.net/mailman/listinfo/buildroot ^ permalink raw reply [flat|nested] 8+ messages in thread
* [Buildroot] flags to build Qt5 for AMD Geode LX arch ? 2019-01-30 14:39 ` David Picard @ 2019-01-31 21:24 ` Arnout Vandecappelle 2019-01-31 22:49 ` Peter Seiderer 0 siblings, 1 reply; 8+ messages in thread From: Arnout Vandecappelle @ 2019-01-31 21:24 UTC (permalink / raw) To: buildroot On 30/01/2019 15:39, David Picard wrote: > Hello, > > I fixed it. So for the record, the solution was : > BR2_PACKAGE_QT5BASE_CUSTOM_CONF_OPTS="-no-sse2" > > Got it from Qt's configure utility : > $ configure --help So the proper fix would be to change qt5base.mk to pass this option automatically if !BR2_X86_CPU_HAS_SSE2. Regards, Arnout ^ permalink raw reply [flat|nested] 8+ messages in thread
* [Buildroot] flags to build Qt5 for AMD Geode LX arch ? 2019-01-31 21:24 ` Arnout Vandecappelle @ 2019-01-31 22:49 ` Peter Seiderer 2019-02-01 6:53 ` David Picard 0 siblings, 1 reply; 8+ messages in thread From: Peter Seiderer @ 2019-01-31 22:49 UTC (permalink / raw) To: buildroot Hello David, On Thu, 31 Jan 2019 22:24:28 +0100, Arnout Vandecappelle <arnout@mind.be> wrote: > On 30/01/2019 15:39, David Picard wrote: > > Hello, > > > > I fixed it. So for the record, the solution was : > > BR2_PACKAGE_QT5BASE_CUSTOM_CONF_OPTS="-no-sse2" > > > > Got it from Qt's configure utility : > > $ configure --help > > So the proper fix would be to change qt5base.mk to pass this option > automatically if !BR2_X86_CPU_HAS_SSE2. Yes something like this should fix it ;-) David would you mind to share your .config/defconfig file? Regards, Peter > > Regards, > Arnout > _______________________________________________ > buildroot mailing list > buildroot at busybox.net > http://lists.busybox.net/mailman/listinfo/buildroot ^ permalink raw reply [flat|nested] 8+ messages in thread
* [Buildroot] flags to build Qt5 for AMD Geode LX arch ? 2019-01-31 22:49 ` Peter Seiderer @ 2019-02-01 6:53 ` David Picard 0 siblings, 0 replies; 8+ messages in thread From: David Picard @ 2019-02-01 6:53 UTC (permalink / raw) To: buildroot Hi, Here is my defconfig. - David Le 31/01/2019 ? 23:49, Peter Seiderer a ?crit?: > Hello David, > > On Thu, 31 Jan 2019 22:24:28 +0100, Arnout Vandecappelle <arnout@mind.be> wrote: > >> On 30/01/2019 15:39, David Picard wrote: >>> Hello, >>> >>> I fixed it. So for the record, the solution was : >>> BR2_PACKAGE_QT5BASE_CUSTOM_CONF_OPTS="-no-sse2" >>> >>> Got it from Qt's configure utility : >>> $ configure --help >> So the proper fix would be to change qt5base.mk to pass this option >> automatically if !BR2_X86_CPU_HAS_SSE2. > Yes something like this should fix it ;-) > > David would you mind to share your .config/defconfig file? > > Regards, > Peter > >> Regards, >> Arnout >> _______________________________________________ >> buildroot mailing list >> buildroot at busybox.net >> http://lists.busybox.net/mailman/listinfo/buildroot -------------- next part -------------- BR2_x86_geode=y BR2_DL_DIR="$(BASE_DIR)/../dl_scanotron" BR2_TOOLCHAIN_BUILDROOT_WCHAR=y BR2_PTHREAD_DEBUG=y BR2_TOOLCHAIN_BUILDROOT_CXX=y BR2_PACKAGE_HOST_GDB=y BR2_PACKAGE_HOST_GDB_TUI=y BR2_PACKAGE_HOST_GDB_PYTHON=y BR2_TARGET_GENERIC_HOSTNAME="scanotron" BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y BR2_TARGET_GENERIC_ROOT_PASSWD="toor" BR2_TARGET_GENERIC_GETTY_PORT="tty1" BR2_ROOTFS_OVERLAY="$(BR2_EXTERNAL_SCANOTRON_PATH)/board/lx800/rootfs_overlay" BR2_ROOTFS_POST_IMAGE_SCRIPT="board/pc/post-image.sh support/scripts/genimage.sh" BR2_ROOTFS_POST_SCRIPT_ARGS="-c board/pc/genimage-bios.cfg" BR2_LINUX_KERNEL=y BR2_LINUX_KERNEL_CUSTOM_VERSION=y BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="4.18.10" BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="$(BR2_EXTERNAL_SCANOTRON_PATH)/board/lx800/linux.config" BR2_LINUX_KERNEL_INSTALL_TARGET=y BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y BR2_PACKAGE_GDB=y BR2_PACKAGE_LIBERATION=y BR2_PACKAGE_QT5=y BR2_PACKAGE_QT5BASE_CUSTOM_CONF_OPTS="-no-sse2" BR2_PACKAGE_QT5BASE_LINUXFB=y BR2_PACKAGE_QT5BASE_XCB=y BR2_PACKAGE_QT5BASE_DEFAULT_QPA="xcb" BR2_PACKAGE_QT5BASE_FONTCONFIG=y BR2_PACKAGE_QT5BASE_JPEG=y BR2_PACKAGE_QT5BASE_PNG=y BR2_PACKAGE_QT5BASE_DBUS=y BR2_PACKAGE_QT5BASE_TSLIB=y BR2_PACKAGE_QT5SERIALBUS=y BR2_PACKAGE_QWT=y BR2_PACKAGE_QWT_MATHML=y BR2_PACKAGE_XORG7=y BR2_PACKAGE_XSERVER_XORG_SERVER=y BR2_PACKAGE_XLIB_LIBXTST=y BR2_PACKAGE_XAPP_SESSREG=y BR2_PACKAGE_XAPP_XCALC=y BR2_PACKAGE_XAPP_XCLIPBOARD=y BR2_PACKAGE_XAPP_XCLOCK=y BR2_PACKAGE_XAPP_XCONSOLE=y BR2_PACKAGE_XAPP_XEYES=y BR2_PACKAGE_XAPP_XHOST=y BR2_PACKAGE_XAPP_XINIT=y BR2_PACKAGE_XAPP_XINPUT=y BR2_PACKAGE_XAPP_XINPUT_CALIBRATOR=y BR2_PACKAGE_XAPP_XMESSAGE=y BR2_PACKAGE_XAPP_XRANDR=y BR2_PACKAGE_XAPP_XRDB=y BR2_PACKAGE_XDRIVER_XF86_INPUT_EVDEV=y BR2_PACKAGE_XDRIVER_XF86_INPUT_KEYBOARD=y BR2_PACKAGE_XDRIVER_XF86_INPUT_MOUSE=y BR2_PACKAGE_XDRIVER_XF86_VIDEO_CIRRUS=y BR2_PACKAGE_XDRIVER_XF86_VIDEO_FBDEV=y BR2_PACKAGE_XDRIVER_XF86_VIDEO_GEODE=y BR2_PACKAGE_XDRIVER_XF86_VIDEO_VESA=y BR2_PACKAGE_XTERM=y BR2_PACKAGE_FLUXBOX=y BR2_PACKAGE_LINUX_FIRMWARE=y BR2_PACKAGE_LINUX_FIRMWARE_INTEL_E100=y BR2_PACKAGE_MSR_TOOLS=y BR2_PACKAGE_LIBSHA1=y BR2_PACKAGE_LIBFM=y BR2_PACKAGE_LIBUSB=y BR2_PACKAGE_LIBXML2=y BR2_PACKAGE_LIBNL=y BR2_PACKAGE_CONNMAN=y BR2_PACKAGE_CONNMAN_CLIENT=y BR2_PACKAGE_OPENSSH=y BR2_TARGET_ROOTFS_EXT2=y BR2_TARGET_ROOTFS_EXT2_SIZE="120M" BR2_TARGET_GRUB2=y BR2_PACKAGE_HOST_GENIMAGE=y BR2_PACKAGE_LIBRST=y BR2_PACKAGE_LIBSZDIST=y ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2019-02-01 6:53 UTC | newest] Thread overview: 8+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2019-01-29 18:28 [Buildroot] flags to build Qt5 for AMD Geode LX arch ? David Picard 2019-01-29 18:33 ` Yann E. MORIN 2019-01-30 7:46 ` David Picard 2019-01-30 10:21 ` David Picard 2019-01-30 14:39 ` David Picard 2019-01-31 21:24 ` Arnout Vandecappelle 2019-01-31 22:49 ` Peter Seiderer 2019-02-01 6:53 ` David Picard
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox