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

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