Subject: Re: [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 13:38:44
#12616: Cannot build boost 1.62 for x32 ABI
-------------------------------+----------------------------
Reporter: ross@⦠| Owner:
Type: Bugs | Status: new
Milestone: To Be Determined | Component: Building Boost
Version: Boost 1.62.0 | Severity: Problem
Resolution: | Keywords:
-------------------------------+----------------------------
Comment (by ross@â¦):
In an attempt to have less magic I added the flags line to gcc.jam in
build:
{{{
diff --git a/src/tools/gcc.py b/src/tools/gcc.py
index 270ca97..f31f4ef 100644
--- a/src/tools/gcc.py
+++ b/src/tools/gcc.py
@@ -746,2 +746,3 @@ def cpu_flags(toolset, variable, architecture,
instruction_set, values, default=
flags('gcc', 'OPTIONS', ['<architecture>x86/<address-model>32'],
['-m32'])
+flags('gcc', 'OPTIONS', ['<architecture>x86/<address-model>32_64'],
['-mx32'])
flags('gcc', 'OPTIONS', ['<architecture>x86/<address-model>64'],
['-m64'])
}}}
Then passed address-model=32_64 to my externally built jam (we're cross-
compiling).
It's passing less stupid options now:
{{{
| "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 -pedantic -pthread
-fPIC -DBOOST_ALL_NO_LIB=1 -DBOOST_REGEX_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/regex/build/8b5ffabbece29b037869af5264487af2/winstances.o"
"libs/regex/build/../src/winstances.cpp"
}}}
Now it fails differently:
{{{
libs/context/src/unsupported.cpp:7:2: error: #error "platform not
supported"
#error "platform not supported"
}}}
Presumably because this new 32_64 address-model doesn't match the build
rules for context which use a 64-bit address-model but abi to mark x32:
{{{
# X86_64/SYSV/X32
alias asm_context_sources
: [ make asm/make_x86_64_sysv_elf_gas.o :
asm/make_x86_64_sysv_elf_gas.S : @gas64 ]
[ make asm/jump_x86_64_sysv_elf_gas.o :
asm/jump_x86_64_sysv_elf_gas.S : @gas64 ]
[ make asm/ontop_x86_64_sysv_elf_gas.o :
asm/ontop_x86_64_sysv_elf_gas.S : @gas64 ]
: <abi>x32
<address-model>64
<architecture>x86
<binary-format>elf
;
}}}
-- Ticket URL: <https://svn.boost.org/trac/boost/ticket/12616#comment:2> 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