[esnacc-dev] "cross" compile

Aaron Conole aconole at bytheb.org
Tue Jul 25 13:29:20 UTC 2017


Hi Marty,

Marty Galligan <m_galligan at comcast.net> writes:

> I'm using esnacc to build a daemon.  The daemon build happens on
> Ubuntu, the daemon is targeted to run on windows.  So I need to build
> libcxxsn1.a as a windows binary.
>
> Running configure with --build=i686-pc-linux-gnu
> --host=i686-pc-windows didn't work, the cross compiling g++ I'm using
> gave me an error of  .../lib/libc++asn1.a: member
> .../lib/libc++asn1.a(cxx_lib_libcxxasn1_la-asn-null.o) in archive is
> not an object
> collect2: ld returned 1 exit status

On my system, I have installed mingw32, and I can do:

   CC=i686-w64-mingw32-gcc CXX=i686-w64-mingw32-g++ \
   AR=i686-w64-mingw32-ar RANLIB=i686-w64-mingw32-ranlib \
   ./configure --build=x86_64-pc-linux-gnu --host=i686-w64-mingw32 && \
   make -j8

Which does produce a cxx-lib/.libs/libcxxasn1.a

- that said -

I get an error:

   /bin/sh: compiler/esnacc.exe: cannot execute binary file: Exec format error

This is from trying to build ROSE support when cross compiling.  I'll
submit a first order fix for this (to disable during cross
compilation), and then probably the build system will have to make a
native version even when cross-compiling.

> libc++asn1.a is a soft link to libcxxasn1.a

Where did that soft link come from?  I don't think the build system
creates this.  If it does that's a bug.

> How can I generate a libcxxasn1.a for windows, while building on linux?
>
>
> -Marty Galligan, m_galligan at comcast.net, c: 978-505-5185  


More information about the dev mailing list