Subject: Re: [Boost-bugs] [Boost C++ Libraries] #2535: Boost.Regex not compatible with gcc's align-double at optimization level 3
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2008-11-26 17:23:29
#2535: Boost.Regex not compatible with gcc's align-double at optimization level 3
---------------------------------+------------------------------------------
Reporter: Andrew Troschinetz | Owner: johnmaddock
Type: Bugs | Status: closed
Milestone: Boost 1.38.0 | Component: regex
Version: Boost 1.37.0 | Severity: Problem
Resolution: wontfix | Keywords:
---------------------------------+------------------------------------------
Changes (by johnmaddock):
* status: new => closed
* resolution: => wontfix
Comment:
I believe that this is inevitable and not fixable (unless you can suggest
otherwise), gcc's docs say:
"-malign-double
-mno-align-double
Control whether GCC aligns double, long double, and long long variables on
a two word boundary or a one word boundary. Aligning double variables on a
two word boundary will produce code that runs somewhat faster on a
âPentiumâ
at the expense of more memory.
On x86-64, â-malign-doubleâ is enabled by default.
Warning: if you use the â-malign-doubleâ switch, structures containing the
above types will be aligned differently than the published application
binary
interface specifications for the 386 and will not be binary compatible
with structures
in code compiled without that switch."
In other words setting that switch changes the binary compatibity of the
code - so your application's obj files are no longer compatible with the
way Boost.Regex is built by default. You would have to build regex with
-malign-double if you insist on using that option.
HTH, and sorry for the bad news, John
-- Ticket URL: <https://svn.boost.org/trac/boost/ticket/2535#comment:1> 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:49:59 UTC