1*4882a593SmuzhiyunFrom 698a6ce88524b727d265b204d648e78d8acb485c Mon Sep 17 00:00:00 2001
2*4882a593SmuzhiyunFrom: Merlin Mathesius <mmathesi@redhat.com>
3*4882a593SmuzhiyunDate: Wed, 13 May 2020 11:58:37 -0500
4*4882a593SmuzhiyunSubject: [PATCH] Replace builtin strlen that appears to get optimized away
5*4882a593Smuzhiyun
6*4882a593Smuzhiyun[From https://src.fedoraproject.org/rpms/syslinux/raw/rawhide/f/0006-Replace-builtin-strlen-that-appears-to-get-optimized.patch]
7*4882a593SmuzhiyunSigned-off-by: Peter Seiderer <ps.report@gmx.net>
8*4882a593Smuzhiyun---
9*4882a593Smuzhiyun dos/string.h | 12 +++++++++++-
10*4882a593Smuzhiyun 1 file changed, 11 insertions(+), 1 deletion(-)
11*4882a593Smuzhiyun
12*4882a593Smuzhiyundiff --git a/dos/string.h b/dos/string.h
13*4882a593Smuzhiyunindex f648de2d..407d0233 100644
14*4882a593Smuzhiyun--- a/dos/string.h
15*4882a593Smuzhiyun+++ b/dos/string.h
16*4882a593Smuzhiyun@@ -5,12 +5,22 @@
17*4882a593Smuzhiyun #ifndef _STRING_H
18*4882a593Smuzhiyun #define _STRING_H
19*4882a593Smuzhiyun
20*4882a593Smuzhiyun+#include <stddef.h>
21*4882a593Smuzhiyun+
22*4882a593Smuzhiyun /* Standard routines */
23*4882a593Smuzhiyun #define memcpy(a,b,c)	__builtin_memcpy(a,b,c)
24*4882a593Smuzhiyun #define memmove(a,b,c)	__builtin_memmove(a,b,c)
25*4882a593Smuzhiyun #define memset(a,b,c)	__builtin_memset(a,b,c)
26*4882a593Smuzhiyun #define strcpy(a,b)	__builtin_strcpy(a,b)
27*4882a593Smuzhiyun-#define strlen(a)	__builtin_strlen(a)
28*4882a593Smuzhiyun+#define strlen(a)	inline_strlen(a)
29*4882a593Smuzhiyun+
30*4882a593Smuzhiyun+/* replacement for builtin strlen that appears to get optimized away */
31*4882a593Smuzhiyun+static inline size_t inline_strlen(const char *str)
32*4882a593Smuzhiyun+{
33*4882a593Smuzhiyun+    size_t l;
34*4882a593Smuzhiyun+    for (l = 0; *str++; l++);
35*4882a593Smuzhiyun+    return l;
36*4882a593Smuzhiyun+}
37*4882a593Smuzhiyun
38*4882a593Smuzhiyun /* This only returns true or false */
39*4882a593Smuzhiyun static inline int memcmp(const void *__m1, const void *__m2, unsigned int __n)
40*4882a593Smuzhiyun--
41*4882a593Smuzhiyun2.30.1
42*4882a593Smuzhiyun
43