Subject: Re: [Boost-bugs] [Boost C++ Libraries] #9445: context asm files fail to build for x32 ABIs
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2016-02-28 12:05:53
#9445: context asm files fail to build for x32 ABIs
----------------------------------------+---------------------
Reporter: Mike Frysinger <vapier@â¦> | Owner: olli
Type: Bugs | Status: closed
Milestone: To Be Determined | Component: context
Version: Boost 1.55.0 | Severity: Problem
Resolution: fixed | Keywords:
----------------------------------------+---------------------
Comment (by olli):
Replying to [comment:26 anonymous]:
> I've tried building boost from the develop branch. Pretty much as I
expected:
>
> gcc.jam sets -m32 if a 32bit platform is detected. This isn't
appropriate for x32, since as I mentioned previously -m32 specifies IA32.
-mx32 is used for x32. Or simply no -m since it's the toolchain default.
[Why does boost set it anyway? Virtually every other project obeys
whatever ABI is set by compiler/cflags, and detects the properties based
upon the compiler output]
>
> boost-build adds -march=i686 to the cflags for building on 32bit x86
platform, this is incompatible with x32 since x32 is an x86-64 variant
ABI. It fails with "error: CPU you selected does not support x86-64
instruction set" [As above, why does boost set -march? The only time a
specific -march is necessary to allow use of flags such as -mavx is when
that instruction set flag is not allowed for the configured -march, if
there's no -march, the compiler produces code for the default and or
generic configured target (x86-64 on amd64/em64t), then all -m instruction
extension flags are allowed.]
>
> I'll see if I can remove the -march/ABI overrides and get it to build...
you could try address-model=64 on b2 cmdline
-- Ticket URL: <https://svn.boost.org/trac/boost/ticket/9445#comment:29> 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:19 UTC