[odb-users] Support for ODB on QNX
Juan Pablo Samper
jp.samper at apex.ai
Thu Aug 20 19:06:52 EDT 2020
Hi Boris,
The workaround works! I managed to compile libodb, libodb-boost, and
libodb-mysql for QNX.
It required patching libcrypto and libmysqlclient to account for some
QNX-specific options.
I still have to test whether our application will compile and run, so I'm
not out of the woods yet.
There is one quirk that would be nice to iron out, though:
I specified config.cxx and config.cxx.target when running bpkg create, but
then when I try to build libz, I got this warning:
$ bpkg build libz
...
libz-1.2.1100+1/build/root.build:6:7: error: cxx and c module target
mismatch
info: cxx is 'aarch64-nto-qnx7.0.0'
info: c is 'aarch64-nto-qnx7.0.0'
info: consider explicitly specifying config.cxx and config.c
It's probably the same underlying mismatch, so I explicitly add it to
build/config.build
config.c = ntoaarch64-gcc
config.c.target = aarch64-nto-qnx7.0.0
I then run bpkg build libz again and everything compiles successfully, but
it prints the following warning:
$ bpkg build libz
...
libz-1.2.1100+1/build/config.build: warning: saving previously inherited
variable config.c
info: because project
/home/jp.samper/workspace/odb_ws/odb-build/qnx-aarch64-with-c/ no longer
uses it in its configuration
libz-1.2.1100+1/build/config.build: warning: saving previously inherited
variable config.c.target
info: because project
/home/jp.samper/workspace/odb_ws/odb-build/qnx-aarch64-with-c/ no longer
uses it in its configuration
libz-1.2.1100+1/tests/build/config.build: warning: saving previously
inherited variable config.c
info: because project
/home/jp.samper/workspace/odb_ws/odb-build/qnx-aarch64-with-c/ no longer
uses it in its configuration
libz-1.2.1100+1/tests/build/config.build: warning: saving previously
inherited variable config.c.target
info: because project
/home/jp.samper/workspace/odb_ws/odb-build/qnx-aarch64-with-c/ no longer
uses it in its configuration
...
updated libz/1.2.1100+1
I can live with the warning, but it does seem strange that bpkg first asked
me to configure it, and then tells me it no longer uses it.
The actual quirk that would be nice to iron out is that if I try to set
config.c and config.c.target when running bpkg create, bpkg drops it:
qnx-aarch64-with-c/build/config.build: warning: dropping no longer used
variable config.c
info: variable value: 'ntoaarch64-gcc'
qnx-aarch64-with-c/build/config.build: warning: dropping no longer used
variable config.c.target
info: variable value: 'aarch64-nto-qnx7.0.0'
Is this all expected or am I missing something?
Thanks!
JP
On Thu, Aug 20, 2020 at 5:34 AM Boris Kolpackov <boris at codesynthesis.com>
wrote:
> Juan Pablo Samper <jp.samper at apex.ai> writes:
>
> > qnx-aarch64-qcc/build/root.build:3:7: error: cxx and bin module target
> > mismatch
> > info: cxx target is aarch64-nto-qnx7.0.0
> > info: bin target is aarch64-nto-qnx7.0.0
>
> I looked into this and there is a bug in our handling of target
> triplets (in the first target `nto` is attributed to the system
> while in the second -- to the vendor). I still need to meditate
> on how to best fix this.
>
> In the meantime, you should be able to work around this issue by
> overriding the guessed target:
>
> config.cxx.target=aarch64-nto-qnx7.0.0
>
>
> > W.R.T side note:
> > I think a note in the FAQ like the reply above would be enough to get
> > someone started.
>
> Sounds good, I will add it.
>
>
--
Juan Pablo Samper
Software Tooling and Infrastucture
Apex.AI
www.apex.ai
More information about the odb-users
mailing list