aboutsummaryrefslogtreecommitdiffstats
path: root/main/fortify-headers/0001-Only-include-limits.h-when-actually-used.patch
blob: 2093e98a33c0df96d20179355b1a333d7ec80746 (plain)
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
42
43
From a1445561442c19f2354b31ea4ac0084d2bd3b34f Mon Sep 17 00:00:00 2001
From: Natanael Copa <ncopa@alpinelinux.org>
Date: Thu, 14 Jul 2016 16:33:29 +0200
Subject: [PATCH] Only include limits.h when actually used

The __extension__ seems to trigger a bug in gcc when there are no
identifier specified afterwards.

Testcase:
  echo "#include <stdlib.h>" > try.c && cc -O0 -c try.c
  try.c:2:0: error: expected identifier or '(' at end of input

With -O2 it does not happen.

We work around this by only pulling in limits.h when we actually need the
PATH_MAX.

Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
---
 include/stdlib.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/include/stdlib.h b/include/stdlib.h
index 26c7e44..0717e81 100644
--- a/include/stdlib.h
+++ b/include/stdlib.h
@@ -19,12 +19,12 @@
 __extension__
 #include_next <stdlib.h>
 
+#if defined(_FORTIFY_SOURCE) && _FORTIFY_SOURCE > 0 && defined(__OPTIMIZE__) && __OPTIMIZE__ > 0
 #if defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
 __extension__
 #include_next <limits.h>
 #endif
 
-#if defined(_FORTIFY_SOURCE) && _FORTIFY_SOURCE > 0 && defined(__OPTIMIZE__) && __OPTIMIZE__ > 0
 #include "fortify-headers.h"
 
 #ifdef __cplusplus
-- 
2.9.0