<feed xmlns='http://www.w3.org/2005/Atom'>
<title>fortify-headers/include/sys/socket.h, branch 1.1</title>
<subtitle>Standalone portable header-based implementation of FORTIFY_SOURCE=3 
</subtitle>
<id>http://git.dustri.org/fortify-headers/atom?h=1.1</id>
<link rel='self' href='http://git.dustri.org/fortify-headers/atom?h=1.1'/>
<link rel='alternate' type='text/html' href='http://git.dustri.org/fortify-headers/'/>
<updated>2018-07-24T10:00:30Z</updated>
<entry>
<title>Don't use __extension__ in C++ code</title>
<updated>2018-07-24T10:00:30Z</updated>
<author>
<name>A. Wilcox</name>
</author>
<published>2018-06-23T22:57:48Z</published>
<link rel='alternate' type='text/html' href='http://git.dustri.org/fortify-headers/commit/?id=a9ffac8596b094da8563aa5dd5d81c946670afe5'/>
<id>urn:sha1:a9ffac8596b094da8563aa5dd5d81c946670afe5</id>
<content type='text'>
A few important notes:

*  __extension__ is a GNU C "alternate" keyword, not a C++ keyword.[1]

*  __extension__ is designed to work on "expressions"; it does work on
   #include_next in C mode, but it has no effect in C++ mode; the
   warning will still appear, if enabled, even with __extension__
   preceding #include_next.  This is because #include_next is not
   considered an expression in C++, so the compiler attaches
   __extension__ to the first expression of the header.

All of this leads us to a build failure while building at least all
Mozilla software.  Moz has an alternate -isystem dir searched before
/usr/include that overrides some headers, including &lt;features.h&gt;.  The
first statement in each of these headers is a #pragma, and since
__extension__ is looking for an expression, and #pragma is a "null"
expression, we end up with the following error:

dist/system_wrappers/features.h:1:9: error: '#pragma' is not allowed here

Since __extension__ has no effect on #include_next in C++ mode anyway,
and since it can cause breakage, this commit omits __extension__ in C++
mode.

[1]: https://gcc.gnu.org/onlinedocs/gcc-6.4.0/gcc/Alternate-Keywords.html
</content>
</entry>
<entry>
<title>Bump copyright year</title>
<updated>2016-09-10T11:54:17Z</updated>
<author>
<name>sin</name>
</author>
<published>2016-09-10T11:54:06Z</published>
<link rel='alternate' type='text/html' href='http://git.dustri.org/fortify-headers/commit/?id=2bc423c355a992fea2f95724235898218575c95e'/>
<id>urn:sha1:2bc423c355a992fea2f95724235898218575c95e</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add __extension__ mark to include_next to silence -pedantic</title>
<updated>2015-06-25T09:18:26Z</updated>
<author>
<name>Steven Barth</name>
</author>
<published>2015-06-24T18:13:37Z</published>
<link rel='alternate' type='text/html' href='http://git.dustri.org/fortify-headers/commit/?id=7fd984fcb532be01f68cddc194c09a7ca10c1ea6'/>
<id>urn:sha1:7fd984fcb532be01f68cddc194c09a7ca10c1ea6</id>
<content type='text'>
Signed-off-by: Steven Barth &lt;steven@midlink.org&gt;
</content>
</entry>
<entry>
<title>Use namespace-safe macro, param and variable names</title>
<updated>2015-06-03T17:55:35Z</updated>
<author>
<name>Trutz Behn</name>
</author>
<published>2015-06-03T17:27:01Z</published>
<link rel='alternate' type='text/html' href='http://git.dustri.org/fortify-headers/commit/?id=1cd5461a5375207602f2cbdfd9a50a9b751cb7c8'/>
<id>urn:sha1:1cd5461a5375207602f2cbdfd9a50a9b751cb7c8</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add LICENSE header</title>
<updated>2015-05-13T11:15:36Z</updated>
<author>
<name>sin</name>
</author>
<published>2015-05-13T11:15:36Z</published>
<link rel='alternate' type='text/html' href='http://git.dustri.org/fortify-headers/commit/?id=07adb509146e4185b9b7587baad26cdfb766c67e'/>
<id>urn:sha1:07adb509146e4185b9b7587baad26cdfb766c67e</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add fortify_fn() helper in fortify-headers.h</title>
<updated>2015-05-13T11:05:29Z</updated>
<author>
<name>sin</name>
</author>
<published>2015-05-13T11:04:15Z</published>
<link rel='alternate' type='text/html' href='http://git.dustri.org/fortify-headers/commit/?id=158782b3bb791eae3c97947944c7023452bfbc96'/>
<id>urn:sha1:158782b3bb791eae3c97947944c7023452bfbc96</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Use __typeof__ to in part avoid replicating function types</title>
<updated>2015-03-14T20:37:27Z</updated>
<author>
<name>Trutz Behn</name>
</author>
<published>2015-03-14T19:06:48Z</published>
<link rel='alternate' type='text/html' href='http://git.dustri.org/fortify-headers/commit/?id=22e7e51007f3a28ded43f6cb8f0ff59a7a691175'/>
<id>urn:sha1:22e7e51007f3a28ded43f6cb8f0ff59a7a691175</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add __artificial__ to aid in debugging</title>
<updated>2015-03-14T09:38:22Z</updated>
<author>
<name>sin</name>
</author>
<published>2015-03-14T09:38:11Z</published>
<link rel='alternate' type='text/html' href='http://git.dustri.org/fortify-headers/commit/?id=37eb2c9c1d71c2ff21605ecaf46cdd926244d361'/>
<id>urn:sha1:37eb2c9c1d71c2ff21605ecaf46cdd926244d361</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Restore C++ support</title>
<updated>2015-03-13T23:09:15Z</updated>
<author>
<name>sin</name>
</author>
<published>2015-03-13T23:09:15Z</published>
<link rel='alternate' type='text/html' href='http://git.dustri.org/fortify-headers/commit/?id=d12254166a55d17932ea4143fbd50fb52539ff8b'/>
<id>urn:sha1:d12254166a55d17932ea4143fbd50fb52539ff8b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Rework fortify implementation to use extern inline</title>
<updated>2015-03-13T11:00:46Z</updated>
<author>
<name>sin</name>
</author>
<published>2015-03-13T11:00:46Z</published>
<link rel='alternate' type='text/html' href='http://git.dustri.org/fortify-headers/commit/?id=9f8c543dc81f0c4239acae6713f5414eb7dc681d'/>
<id>urn:sha1:9f8c543dc81f0c4239acae6713f5414eb7dc681d</id>
<content type='text'>
Overriding functions with macros is legal in C but a lot of software
is not prepared for it.  Use the extern inline method to achieve the
same result.
</content>
</entry>
</feed>
