[Development] FreeBSD / Clang / Raspberry Pi

Laszlo Agocs laszlo.agocs at qt.io
Wed May 18 22:36:21 CEST 2016


Hello,

The device specs indeed assume cross-compiling (after all it's just a shorthand for -xplatform plus some common stuff to avoid duplication in the specs for each device) but note how for instance the linux-nuc-g++ device spec is used to build for an Intel device on an Intel host using an Intel compiler and sysroot. The architecture being the same all the way is not interesting, what matters is that there is a separate compiler and sysroot.

Therefore this won't be suitable in your case.

Introducing freebsd-clang-rasp-pi as a plain makespec works but does not sound very appealing as it is step back to the structure of device-specific makespecs from pre-Qt5 times. One alternative, out of my head, would be to add the support next to freebsd-clang and use -device-option with some custom, freebsd-clang-specific variable to trigger the RPi/ARM specifics - by doing a conditional include() for the RPi-specific snippet (or whatever device was specified, hence this would work just fine once you need to add FreeBSD support for some other device as well). Or something along these lines.

Best regards,
Laszlo


________________________________________
From: Development <development-bounces+laszlo.agocs=qt.io at qt-project.org> on behalf of Sylvain Garrigues <sylvain at sylvaingarrigues.com>
Sent: Tuesday, May 17, 2016 10:50 PM
To: development at qt-project.org
Subject: [Development] FreeBSD / Clang / Raspberry Pi

Hello,

I have ported Qt 5.6 to FreeBSD / Raspberry Pi and would like to share my config. I have a question though.

I have created a « device » mkspec (mkspecs/device/freebsd-rasp-pi-clang/ to follow the scheme) and I am using it with '-platform freebsd-clang -device freebsd-rasp-pi-clang’ but technically *I am not cross-compiling* as either the port is built on the Pi or it will later be on the FreeBSD packages building infrastructures which runs QEMU arm simulators which emulate a complete arm system (filesystem, kernel, etc). Therefore it’s always an arm compiler producing arm binaries on a freebsd system - no cross compiling.

So should I just create a mkspecs/freebsd-clang-rasp-pi/ in the top mkspecs folder and just use -platform freebsd-clang-rasp-pi? (no -device option)

I can see that using a device is triggering a cross_compile qmake feature with configure, and it has side effects (e.g. no stripping) - hence the question.

Happy to hear your thoughts.

Sylvain.
_______________________________________________
Development mailing list
Development at qt-project.org
http://lists.qt-project.org/mailman/listinfo/development



More information about the Development mailing list