[Boost-bugs] [Boost C++ Libraries] #12616: Cannot build boost 1.62 for x32 ABI

Subject: [Boost-bugs] [Boost C++ Libraries] #12616: Cannot build boost 1.62 for x32 ABI
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2016-11-21 12:03:44


#12616: Cannot build boost 1.62 for x32 ABI
---------------------+------------------------------
 Reporter: ross@… | Type: Bugs
   Status: new | Milestone: To Be Determined
Component: None | Version: Boost 1.62.0
 Severity: Problem | Keywords:
---------------------+------------------------------
 To build boost for the X32 ABI (which is x86-64 but with 32-bit pointers)
 we set CFLAGS to -mx32.

 However boost then decides that it knows best and also passes in
 -march=i686 -m32.

 For example:

 {{{
 | "x86_64-poky-linux-gnux32-g++" "-mx32" "-Wl,-O1" "-Wl,--hash-
 style=gnu" "-Wl,--as-needed" "--sysroot=/data/poky-master/tmp-
 glibc/sysroots/intel-corei7-64" -ftemplate-depth-128 -O2 -pipe -g
 -feliminate-unused-debug-types -fdebug-prefix-map=/data/poky-master/tmp-
 glibc/work/x86_64_x32-poky-linux-
 gnux32/boost/1.62.0-r1=/usr/src/debug/boost/1.62.0-r1 -fdebug-prefix-
 map=/data/poky-master/tmp-glibc/sysroots/x86_64-linux= -fdebug-prefix-
 map=/data/poky-master/tmp-glibc/sysroots/intel-corei7-64= -fvisibility-
 inlines-hidden -O3 -finline-functions -Wno-inline -Wall -march=i686
 -pthread -fPIC -m32 -DBOOST_ALL_NO_LIB=1 -DBOOST_FILESYSTEM_DYN_LINK=1
 -DBOOST_SYSTEM_DYN_LINK=1 -DNDEBUG -I"." -c -o "/data/poky-master/tmp-
 glibc/work/x86_64_x32-poky-linux-
 gnux32/boost/1.62.0-r1/boost_1_62_0/x86_64-poky-linux-
 gnux32/boost/bin.v2/libs/filesystem/build/aca09349fdb84d131321425f6c3a38ed/windows_file_codecvt.o"
 "libs/filesystem/src/windows_file_codecvt.cpp"
 |
 | In file included from /data/poky-master/tmp-glibc/sysroots/intel-
 corei7-64/usr/include/features.h:392:0,
 | from /data/poky-master/tmp-glibc/sysroots/intel-
 corei7-64/usr/include/c++/6.2.0/x86_64-poky-linux-
 gnux32/bits/os_defines.h:39,
 | from /data/poky-master/tmp-glibc/sysroots/intel-
 corei7-64/usr/include/c++/6.2.0/x86_64-poky-linux-
 gnux32/bits/c++config.h:495,
 | from /data/poky-master/tmp-glibc/sysroots/intel-
 corei7-64/usr/include/c++/6.2.0/cstddef:49,
 | from ./boost/config/compiler/gcc.hpp:165,
 | from ./boost/config.hpp:39,
 | from ./boost/filesystem/config.hpp:28,
 | from libs/filesystem/src/windows_file_codecvt.cpp:20:
 | /data/poky-master/tmp-glibc/sysroots/intel-
 corei7-64/usr/include/gnu/stubs.h:7:27: fatal error: gnu/stubs-32.h: No
 such file or directory
 | # include <gnu/stubs-32.h>
 }}}

 The -mx32 is our CFLAGS. -m32 -march=i686 is from boost/tools/build. The
 compiler ends up thinking that its doing a i686 build and tries to open
 stubs-32.h which doesn't exist as this sysroot is x32 so only stubs-x32.h
 is present.

-- 
Ticket URL: <https://svn.boost.org/trac/boost/ticket/12616>
Boost C++ Libraries <http://www.boost.org/>
Boost provides free peer-reviewed portable C++ source libraries.

This archive was generated by hypermail 2.1.7 : 2017-02-16 18:50:20 UTC