[odb-users] Support for ODB on QNX

Juan Pablo Samper jp.samper at apex.ai
Fri Aug 21 12:18:06 EDT 2020


Hi Boris,

I noticed my mistake: I was running `bpkg create -d conf *cxx`. *Once I
used `cc`, no warning.

I did try to use the QNX-provided libssl and libcrypto, and I ran into the
following:

$ bpkg build libmysqlclient ?sys:libssl ?sys:libcrypto
error: unable to import target libssl%lib{ssl}
  info: use config.import.libssl configuration variable to specify its
project out_root
  info: or use config.import.libssl.ssl.lib configuration variable to
specify its path
error: unable to import target libssl%lib{ssl}
  info: use config.import.libssl configuration variable to specify its
project out_root
  info: or use config.import.libssl.ssl.lib configuration variable to
specify its path

So then I set  config.import.libssl.ssl.lib in the build/config.build:

config.import.libssl.ssl.lib = /path/to/qnx/usr/lib

But then bpkg crashes:

$ bpkg build libmysqlclient ?sys:libssl ?sys:libcrypto
b:
/home/jp.samper/workspace/odb_ws/build2-build/build2-toolchain-0.13/build2-0.13.0/libbuild2/target.cxx:550:
std::ostream& build2::to_stream(std::ostream&, const build2::target_key&,
butl::optional<build2::stream_verbosity>): Assertion `!k.ext' failed.
error: process b terminated abnormally: aborted (SIGABRT) (core dumped)

I assumed it was just an RTFM moment on how to configure the path to the
library,
so I decided to set it aside and come back to it if compiling from source
didn't work, but
since we are already here, maybe you can tell me what I'm doing wrong?

Thanks!
JP

On Thu, Aug 20, 2020 at 9:15 PM Boris Kolpackov <boris at codesynthesis.com>
wrote:

> Juan Pablo Samper <jp.samper at apex.ai> writes:
>
> > It required patching libcrypto and libmysqlclient to account for some
> > QNX-specific options.
>
> You can also use QNX-supplied versions of these if you would like
> (especially libcrypto/libssl). See notes on using system-installed
> dependencies in odb/install-build2.xhtml.
>
>
> > $ 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
>
> Yes, this is the same issue.
>
>
> > 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
>
> Hm, strange. This sequence of steps doesn't issue any warnings for me:
>
> bpkg create -d conf cc config.cxx=g++ config.c=gcc
> bpkg build -d conf libz at https://pkg.cppget.org/1/stable
>
>
> > 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
>
> What is the exact sequence of steps to reproduce this? And this is using
> build2 0.13.0, correct?
>


-- 

Juan Pablo Samper

Software Tooling and Infrastucture

Apex.AI

www.apex.ai


More information about the odb-users mailing list