All of lore.kernel.org
 help / color / mirror / Atom feed
* [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.