summaryrefslogtreecommitdiffstats
path: root/main/fortify-headers/0001-Fix-usage-of-__USER_LABEL_PREFIX__.patch
blob: 1c9eed5b25c11295d71ab1ec05ac6225905fc4d3 (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
From a9ee1d2743acb0b2903db87c0a241c0a569cfc4e Mon Sep 17 00:00:00 2001
From: Trutz Behn <me@trutz.be>
Date: Tue, 2 Jun 2015 21:33:39 +0200
Subject: [PATCH 1/3] Fix usage of __USER_LABEL_PREFIX__

The predefined __USER_LABEL_PREFIX__ macro if it is non-empty contains
an identifier, not a string literal, thus it needs to be stringified.
---
 include/fortify-headers.h | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/include/fortify-headers.h b/include/fortify-headers.h
index 72b99ec..fcb862d 100644
--- a/include/fortify-headers.h
+++ b/include/fortify-headers.h
@@ -16,7 +16,9 @@
 #ifndef _FORTIFY_HEADERS_H
 #define _FORTIFY_HEADERS_H
 
-#define fortify_fn(fn) __typeof__(fn) __orig_##fn __asm__(__USER_LABEL_PREFIX__ #fn); \
+#define _FORTIFY_STR(s) #s
+#define _FORTIFY_ORIG(p,fn) __typeof__(fn) __orig_##fn __asm__(_FORTIFY_STR(p) #fn)
+#define fortify_fn(fn) _FORTIFY_ORIG(__USER_LABEL_PREFIX__,fn); \
 	extern __inline __attribute__((__always_inline__,__gnu_inline__,__artificial__))
 
 #endif
-- 
2.4.2