[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [lmi] Cross-compiling lmi from Linux to MSW
From: |
Greg Chicares |
Subject: |
Re: [lmi] Cross-compiling lmi from Linux to MSW |
Date: |
Thu, 21 Jan 2016 22:12:25 +0000 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Icedove/31.3.0 |
On 2016-01-21 20:52, Vadim Zeitlin wrote:
> On Thu, 21 Jan 2016 19:37:30 +0000 Greg Chicares <address@hidden> wrote:
[...]
> GC> /home/greg/build/xmlwrapp-msw[1]$~/src/3rdparty/xmlwrapp/configure \
> GC> --disable-shared --disable-tests --disable-docs \
> GC> --with-boost=$HOME/msw/i686-w64-mingw32 \
> GC> --prefix=$HOME/msw/i686-w64-mingw32 \
> GC> --host=i686-w64-mingw32 \
> GC> PKG_CONFIG_LIBDIR=$HOME/msw/i686-w64-mingw32/lib/pkgconfig
[...]
> GC> checking for Boost headers version >= 0.0.0... no
> GC> configure: error: cannot find Boost headers version >= 0.0.0
>
> I'd need to see your config.log to be sure, but I think you might be
> running into a configure bug that prevented xmlwrapp from building with
> g++5, see
>
> https://github.com/vslavik/xmlwrapp/commit/aa6f34e3604f2b84dad7688ad3dd5c397767ffa8
I think I already have the latest xmlwrapp version (and never had any other);
it seems to include that changeset. From the URL above:
+dnl Beware that GCC 5, when expanding macros, may embed # line directives
>From my local copy:
$grep 'Beware that GCC' ~/src/3rdparty/xmlwrapp/admin/boost.m4
dnl Beware that GCC 5, when expanding macros, may embed # line directives
> I thought it wouldn't affect us because we use 4.9, after all, but
> apparently it does. I can retest to be sure, but if you plan on updating
> xmlwrapp to the latest version from https://github.com/vadz/xmlwrapp/, it
> would be worth doing it as it should really, really work.
Isn't that what I actually did, though? Here's the command I used:
git clone https://github.com/vadz/xmlwrapp.git
I didn't specify any sha1sum, so shouldn't that give me the latest?
> GC> I checked 'config.log'...
> GC>
> GC> /home/greg/build/xmlwrapp-msw[0]$tail -n5 config.log
>
> You need to grep for "checking for Boost headers version" in config.log to
> see why has the compilation of the test program using them failed, it's not
> at the end of the file, unfortunately.
In 'config.log' I see:
configure: this is boost.m4 serial 24
configure:15634: checking for Boost headers version >= 0.0.0
configure:15726: result: no
configure:15731: error: cannot find Boost headers version >= 0.0.0
## ---------------- ##
## Cache variables. ##
Serial 24 identifies the "vslavik committed Aug 2, 2015" change above.
This 'config.log' excerpt merely tells me that the test failed, repeats
the error message, and then moves on to something else. The only action
I can take is to look at line 15731 in 'configure', but...
> GC> ...but that doesn't seem to help. Looking in 'configure'
>
> Please don't look at the generated configure unless you just want to be
> horrified.
I'm duly horrified.
> GC> and then around line 15670 I get a vague impression that maybe
> GC> the script expects
> GC> path/to/include/boost/some_boost_file.hpp
> GC> where I have
> GC> path/to/include/some_boost_file.hpp
> GC> Is that worth trying after my lunch break?
>
> No, I don't think so. The command should work as written and it did for me
> with the latest xmlwrapp version.
One of the more readable parts of 'configure' says:
# If BOOST_ROOT is set and the user has not provided a value to
# --with-boost, then treat BOOST_ROOT as if it the user supplied it.
So let's try that...
ls ~/msw/i686-w64-mingw32/include/version.hpp
/home/greg/msw/i686-w64-mingw32/include/version.hpp
Should BOOST_ROOT be...
/home/greg/msw/i686-w64-mingw32/include/ ?
/home/greg/msw/i686-w64-mingw32/ ?
Let's try both ways.
/home/greg/build/xmlwrapp-msw[0]$export
BOOST_ROOT=/home/greg/msw/i686-w64-mingw32/include/
/home/greg/build/xmlwrapp-msw[0]$echo $BOOST_ROOT
/home/greg/msw/i686-w64-mingw32/include/
Attempting to heed the "has not provided a value to \n# --with-boost"
line above, I try removing '--with-boost':
/home/greg/build/xmlwrapp-msw[0]$~/src/3rdparty/xmlwrapp/configure \
--disable-shared --disable-tests --disable-docs \
--prefix=$HOME/msw/i686-w64-mingw32 \
--host=i686-w64-mingw32 \
PKG_CONFIG_LIBDIR=$HOME/msw/i686-w64-mingw32/lib/pkgconfig 2>&1 |less
which gives the same error as before, so I try keeping the '--with-boost'
line but removing its value:
$~/src/3rdparty/xmlwrapp/configure \
--disable-shared --disable-tests --disable-docs \
--with-boost \
--prefix=$HOME/msw/i686-w64-mingw32 \
--host=i686-w64-mingw32 \
PKG_CONFIG_LIBDIR=$HOME/msw/i686-w64-mingw32/lib/pkgconfig 2>&1 |less
configure: Detected BOOST_ROOT=/home/greg/msw/i686-w64-mingw32/include/, but
overridden by --with-boost=yes
checking for Boost headers version >= 0.0.0... /usr/include
checking for Boost's header version... 1_49
checking boost/pool/singleton_pool.hpp usability... no
checking boost/pool/singleton_pool.hpp presence... no
checking for boost/pool/singleton_pool.hpp... no
configure: error: cannot find boost/pool/singleton_pool.hpp
That seemed to get farther. However, it says 'singleton_pool.hpp' is
missing. It does indeed seem to be missing in 1.38:
/home/greg/msw/i686-w64-mingw32[0]$ls include/s [press Tab]
scoped_array.hpp smart_ptr.hpp
scoped_ptr.hpp spirit/
scope_exit.hpp spirit.hpp
serialization/ statechart/
shared_array.hpp state_saver.hpp
shared_container_iterator.hpp static_assert.hpp
shared_ptr.hpp static_warning.hpp
signal.hpp strong_typedef.hpp
signals/ swap.hpp
signals.hpp system/
smart_cast.hpp
but that's probably expected because 1.38 is old.
And why does 'configure' say I have 1.49:
checking for Boost's header version... 1_49
when I don't? Look:
$grep VERSION ~/msw/i686-w64-mingw32/include/version.hpp
#ifndef BOOST_VERSION_HPP
#define BOOST_VERSION_HPP
// BOOST_VERSION % 100 is the patch level
// BOOST_VERSION / 100 % 1000 is the minor version
// BOOST_VERSION / 100000 is the major version
#define BOOST_VERSION 103800
// BOOST_LIB_VERSION must be defined to be the same as BOOST_VERSION
#define BOOST_LIB_VERSION "1_38"
So...earlier I was going to try both these values for BOOST_ROOT:
/home/greg/msw/i686-w64-mingw32/include/
/home/greg/msw/i686-w64-mingw32/
and the first one failed, so now I try the second.
$export BOOST_ROOT=/home/greg/msw/i686-w64-mingw32/
$echo $BOOST_ROOT
/home/greg/msw/i686-w64-mingw32/
/home/greg/build/xmlwrapp-msw[0]$~/src/3rdparty/xmlwrapp/configure \
--disable-shared --disable-tests --disable-docs \
--with-boost \
--prefix=$HOME/msw/i686-w64-mingw32 \
--host=i686-w64-mingw32 \
PKG_CONFIG_LIBDIR=$HOME/msw/i686-w64-mingw32/lib/pkgconfig 2>&1 |less
Same as before: it detects 1.49, which is wrong, and of course
there's no singleton_pool.hpp:
configure: Detected BOOST_ROOT=/home/greg/msw/i686-w64-mingw32/, but overridden
by --with-boost=yes
checking for Boost headers version >= 0.0.0... /usr/include
checking for Boost's header version... 1_49
checking boost/pool/singleton_pool.hpp usability... no
checking boost/pool/singleton_pool.hpp presence... no
checking for boost/pool/singleton_pool.hpp... no
configure: error: cannot find boost/pool/singleton_pool.hpp
What else can I try? (All the numerous earlier steps worked perfectly, BTW.)
- Re: [lmi] Cross-compiling lmi from Linux to MSW, (continued)
[lmi] Cross-linking issues [Was: Cross-compiling lmi from Linux to MSW], Greg Chicares, 2016/01/26
Re: [lmi] Linker discarding initialization code (was: Cross-linking issues), Vadim Zeitlin, 2016/01/26
Re: [lmi] Linker discarding initialization code, Greg Chicares, 2016/01/26
Re: [lmi] Cross-compiling lmi from Linux to MSW, Greg Chicares, 2016/01/21
- Re: [lmi] Cross-compiling lmi from Linux to MSW, Vadim Zeitlin, 2016/01/21
- Re: [lmi] Cross-compiling lmi from Linux to MSW,
Greg Chicares <=
- Re: [lmi] Cross-compiling lmi from Linux to MSW, Vadim Zeitlin, 2016/01/21
- Re: [lmi] Cross-compiling lmi from Linux to MSW, Greg Chicares, 2016/01/21
- Re: [lmi] [Bulk] Re: Cross-compiling lmi from Linux to MSW, Greg Chicares, 2016/01/22
- Re: [lmi] [Bulk] Re: Cross-compiling lmi from Linux to MSW, Greg Chicares, 2016/01/22
- Re: [lmi] [Bulk] Re: Cross-compiling lmi from Linux to MSW, Vadim Zeitlin, 2016/01/22
- Re: [lmi] [Bulk] Re: Cross-compiling lmi from Linux to MSW, Greg Chicares, 2016/01/23
- Re: [lmi] [Bulk] Re: Cross-compiling lmi from Linux to MSW, Vadim Zeitlin, 2016/01/23
- Re: [lmi] [Bulk] Re: Cross-compiling lmi from Linux to MSW, Greg Chicares, 2016/01/24
- Re: [lmi] [Bulk] Re: Cross-compiling lmi from Linux to MSW, Greg Chicares, 2016/01/24
- Re: [lmi] [Bulk] Re: Cross-compiling lmi from Linux to MSW, Greg Chicares, 2016/01/24