<feed xmlns='http://www.w3.org/2005/Atom'>
<title>portable/scripts/wrap-compiler-for-flag-check, branch v3.2.2</title>
<subtitle>A mirror of https://github.com/libressl/portable.git
</subtitle>
<id>https://git.lua4.win/portable/atom?h=v3.2.2</id>
<link rel='self' href='https://git.lua4.win/portable/atom?h=v3.2.2'/>
<link rel='alternate' type='text/html' href='https://git.lua4.win/portable/'/>
<updated>2015-01-02T13:42:15+00:00</updated>
<entry>
<title>move public domain to top, help automatic tools</title>
<updated>2015-01-02T13:42:15+00:00</updated>
<author>
<name>Brent Cook</name>
<email>bcook@openbsd.org</email>
</author>
<published>2015-01-02T13:42:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/portable/commit/?id=5be407a42427a298cc00241f5d6bf67c9c7fa041'/>
<id>urn:sha1:5be407a42427a298cc00241f5d6bf67c9c7fa041</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Change comments to remark on script not being needed for clang &gt;= 5.1</title>
<updated>2015-01-01T23:03:03+00:00</updated>
<author>
<name>Jim Barlow</name>
<email>jim@purplerock.ca</email>
</author>
<published>2015-01-01T23:03:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/portable/commit/?id=813e7bdac1308a39be89eba7eb02063970f795b3'/>
<id>urn:sha1:813e7bdac1308a39be89eba7eb02063970f795b3</id>
<content type='text'>
</content>
</entry>
<entry>
<title>configure.ac: use executable hardening where available</title>
<updated>2014-12-24T05:47:03+00:00</updated>
<author>
<name>Jim Barlow</name>
<email>jim@purplerock.ca</email>
</author>
<published>2014-12-24T05:47:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.lua4.win/portable/commit/?id=c0a8ddc163859ec7cbfe42cc163cc0a863b017f4'/>
<id>urn:sha1:c0a8ddc163859ec7cbfe42cc163cc0a863b017f4</id>
<content type='text'>
Where available, enable stack smashing protection, fortify source,
no-strict-overflow, and read only relocations.

Many Linux distributions automatically enable most of these options.
They are no brainers. The difference introduced here is in asking for a
few more aggressive options. An option to disable the more aggressive
options is provided (--disable-hardening). When set, configure will fall
back to the default CFLAGS on the system - in many cases that will still
be hardened. There is no point in going further than that.

Options enabled are:

-fstack-protector-strong is a relatively new GCC-4.9 feature that is
supposed to give a better balance between performance and protection.
-all is considered too aggressive, but was used in Chromium and other
security critical systems until -strong became available. Follow their
lead and use -strong when possible. clang 6.0 supports -all but not
-strong.

_FORTIFY_SOURCE replaces certain unsafe C str* and mem* functions with
more robust equivalents when the compiler can determine the length of
the buffers involved.

-fno-strict-overflow instructs GCC to not make optimizations based on
the assumption that signed arithmetic will wrap around on overflow (e.g.
(short)0x7FFF + 1 == 0). This prevents the optimizer from doing some
unexpected things. Further improvements should trap signed overflows and
reduce the use of signed to refer to naturally unsigned quantities.

I did not set -fPIE (position independent executables). The critical
function of Open/LibreSSL is as a library, not an executable.

Tested on Ubuntu Linux 14.04.1 LTS, OS X 10.10.1 with "make check".

The code added to m4/ is GPLv3 but con

Signed-off-by: Jim Barlow &lt;jim@purplerock.ca&gt;
</content>
</entry>
</feed>
