<feed xmlns='http://www.w3.org/2005/Atom'>
<title>fortify-headers/include/sys/select.h, branch 0.7</title>
<subtitle>Standalone portable header-based implementation of FORTIFY_SOURCE=3 
</subtitle>
<id>http://git.dustri.org/fortify-headers/atom?h=0.7</id>
<link rel='self' href='http://git.dustri.org/fortify-headers/atom?h=0.7'/>
<link rel='alternate' type='text/html' href='http://git.dustri.org/fortify-headers/'/>
<updated>2015-06-25T09:18:26Z</updated>
<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 the __inline__ keyword instead of __inline to avoid breakage</title>
<updated>2015-06-04T17:52:50Z</updated>
<author>
<name>Trutz Behn</name>
</author>
<published>2015-06-04T13:01:37Z</published>
<link rel='alternate' type='text/html' href='http://git.dustri.org/fortify-headers/commit/?id=4cdac9cbdaa01f884e0e8b3f947b7f0cb1170729'/>
<id>urn:sha1:4cdac9cbdaa01f884e0e8b3f947b7f0cb1170729</id>
<content type='text'>
Newer compilers default to GNU11, a C11 dialect. Some software however
is unprepared for this or has wrong compatibility checks. What happens
is that some software will for compatibility with C89

  #define inline

before inclusion of a standard header, which is undefined behaviour in
C99 and above (C99/C11 7.1.2/4), as inline is a keyword.

If any libc headers that are then included via #include_next provide an
__inline macro definition (current musl does this if C++ or C99 and
above is detected) like the following

  #define __inline inline

this results in any __inline token to be preprocessed away.

This breaks use of __builtin_va_arg_pack() in our stdio.h at
compile-time as it can only be used in always inlined functions. The
function attributes __always_inline__ and __gnu_inline__ themselves
require an inline specifier on the function to be applied.
</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>Fix return-type of fortified FD_CLR and FD_SET</title>
<updated>2015-05-21T09:10:17Z</updated>
<author>
<name>Trutz Behn</name>
</author>
<published>2015-05-20T20:09:46Z</published>
<link rel='alternate' type='text/html' href='http://git.dustri.org/fortify-headers/commit/?id=720c4f7414c3c3d980de8e6ddbc0f608d3e9050d'/>
<id>urn:sha1:720c4f7414c3c3d980de8e6ddbc0f608d3e9050d</id>
<content type='text'>
POSIX specifies them to have return-type void, not int.
</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 __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>
<entry>
<title>Put include guards in the reserved namespace</title>
<updated>2015-03-11T21:33:01Z</updated>
<author>
<name>Trutz Behn</name>
</author>
<published>2015-03-11T18:55:51Z</published>
<link rel='alternate' type='text/html' href='http://git.dustri.org/fortify-headers/commit/?id=b211796d68c4a6b56f999534627791f3576b6135'/>
<id>urn:sha1:b211796d68c4a6b56f999534627791f3576b6135</id>
<content type='text'>
fortify-headers is considered part of the implementation.
</content>
</entry>
<entry>
<title>Ignore C++ for now</title>
<updated>2015-03-11T11:18:31Z</updated>
<author>
<name>sin</name>
</author>
<published>2015-03-11T11:18:31Z</published>
<link rel='alternate' type='text/html' href='http://git.dustri.org/fortify-headers/commit/?id=14af218559243c1e16cf871e1823f1a5d8cece9f'/>
<id>urn:sha1:14af218559243c1e16cf871e1823f1a5d8cece9f</id>
<content type='text'>
It is not legal to override standard functions using macros in C++.
We may have to revisit this in the future.
</content>
</entry>
</feed>
