* [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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.