about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/libraries/fortify-headers/wchar-imports-skip.patch
blob: 255ceba9f099b265828f2c5de39e5b6943728319 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
wchar.h: only include other headers if _FORTIFY_SOURCE is enabled

unexpectedly including other headers can cause problems with
sensitive/brittle code, particularly with alternative compilers
(clang) which are already operating on the margins of what's
supported/expected by some projects.

having a way to almost entirely short-circuit these headers (by
disabling _FORTIFY_SOURCE) is therefore important.

--- a/include/fortify/wchar.h
+++ b/include/fortify/wchar.h
@@ -20,21 +20,23 @@
 #if !defined(__cplusplus) && !defined(__clang__)
 __extension__
 #endif
-#include_next <limits.h>
+#include_next <wchar.h>
+
+#if defined(_FORTIFY_SOURCE) && _FORTIFY_SOURCE > 0 && defined(__OPTIMIZE__) && __OPTIMIZE__ > 0
+
 #if !defined(__cplusplus) && !defined(__clang__)
 __extension__
 #endif
-#include_next <stdlib.h>
+#include_next <limits.h>
 #if !defined(__cplusplus) && !defined(__clang__)
 __extension__
 #endif
-#include_next <string.h>
+#include_next <stdlib.h>
 #if !defined(__cplusplus) && !defined(__clang__)
 __extension__
 #endif
-#include_next <wchar.h>
+#include_next <string.h>
 
-#if defined(_FORTIFY_SOURCE) && _FORTIFY_SOURCE > 0 && defined(__OPTIMIZE__) && __OPTIMIZE__ > 0
 #include "fortify-headers.h"
 
 #ifdef __cplusplus