aboutsummaryrefslogtreecommitdiffstats
path: root/meta-oe/recipes-extended/s-nail/files/0001-su_INLINE-gcc-only-GNU-specifics-after-Og.patch
blob: e011f5c712fdfd1ad450f0483d0ab3aab4d1641a (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
44
45
From 5429b9e343c808951b1418d8626e544c9dcb28de Mon Sep 17 00:00:00 2001
From: Steffen Nurpmeso <steffen@sdaoden.eu>
Date: Thu, 9 Jun 2022 18:06:04 +0800
Subject: [PATCH] su_INLINE: gcc: only GNU specifics after -Og

Upstream-Status: Backport[https://git.sdaoden.eu/browse/s-nail.git/commit/?id=c5544b66c3b4b2e161166562349908a07e324b38]

Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
---
 include/su/code.h | 17 +++++++++--------
 1 file changed, 9 insertions(+), 8 deletions(-)

diff --git a/include/su/code.h b/include/su/code.h
index 4d552c1..9683f4a 100644
--- a/include/su/code.h
+++ b/include/su/code.h
@@ -309,16 +309,17 @@ do{\
 #  define su_INLINE inline
 #  define su_SINLINE inline
 # elif su_CC_GCC
-   /* After lots of trouble with OpenBSD/gcc 4.2.1 and SunOS/gcc 3.4.3 */
-#  if !su_CC_VCHECK_GCC(3, 2) /* Unsure: only used C++ at that time */
-#   define su_INLINE extern __inline
-#   define su_SINLINE static __inline
-#  elif !su_CC_VCHECK_GCC(4, 3)
+#  if !su_CC_VCHECK_GCC(3, 1)
+#   define su_INLINE extern __inline__
+#   define su_SINLINE static __inline__
+#  elif !defined __GNUC_GNU_INLINE__  /*4.1.3; !su_CC_VCHECK_GCC(4, 2)*/
 #   define su_INLINE extern __inline __attribute__((always_inline))
 #   define su_SINLINE static __inline __attribute__((always_inline))
-   /* xxx gcc 8.3.0 bug: does not truly inline with -Os */
-#  elif !su_CC_VCHECK_GCC(8, 3) || !defined __OPTIMIZE__ ||\
-      !defined __STDC_VERSION__ || __STDC_VERSION__ +0 < 199901L
+   /* gcc 8.3.0 bug: does not gracefully inline with -Os
+    * gcc 12.1.0 bug: ditto, -Og
+    * Thus: always gcc-specific! */
+#  elif 1 /*!defined __OPTIMIZE__ || \
+      !defined __STDC_VERSION__ || __STDC_VERSION__ +0 < 199901L*/
 #   define su_INLINE extern __inline __attribute__((gnu_inline))
 #   define su_SINLINE static __inline __attribute__((gnu_inline))
 #  elif !defined NDEBUG || !defined __OPTIMIZE__
-- 
2.25.1