diff options
author | Khem Raj <raj.khem@gmail.com> | 2016-02-29 19:41:43 +0000 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2016-03-09 16:58:12 +0000 |
commit | 2193e9d064c1f99617e3010e884741657d856419 (patch) | |
tree | c257f009a1a0721f16914342e03bc7f6f1de3ce1 /meta/recipes-devtools/strace/strace/0001-Move-gcc-compat-macros-to-gcc_compat.h.patch | |
parent | ee8ff4263476f2f5c45c08b212e0e7423e6abedf (diff) | |
download | poky-2193e9d064c1f99617e3010e884741657d856419.tar.gz |
strace: Backport fixes for compiling with clang
Backport fixes needed to avoid use of VLAs which is not available
on clang/llvm
(From OE-Core rev: 57881c3dc68bd8697aaac7fa3587202121a042a4)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-devtools/strace/strace/0001-Move-gcc-compat-macros-to-gcc_compat.h.patch')
-rw-r--r-- | meta/recipes-devtools/strace/strace/0001-Move-gcc-compat-macros-to-gcc_compat.h.patch | 176 |
1 files changed, 176 insertions, 0 deletions
diff --git a/meta/recipes-devtools/strace/strace/0001-Move-gcc-compat-macros-to-gcc_compat.h.patch b/meta/recipes-devtools/strace/strace/0001-Move-gcc-compat-macros-to-gcc_compat.h.patch new file mode 100644 index 0000000000..aa61e15c81 --- /dev/null +++ b/meta/recipes-devtools/strace/strace/0001-Move-gcc-compat-macros-to-gcc_compat.h.patch | |||
@@ -0,0 +1,176 @@ | |||
1 | From f32126ba790dd4e61d43a2140b24f02426297bb6 Mon Sep 17 00:00:00 2001 | ||
2 | From: "Dmitry V. Levin" <ldv@altlinux.org> | ||
3 | Date: Thu, 31 Dec 2015 14:19:41 +0000 | ||
4 | Subject: [PATCH] Move gcc compat macros to gcc_compat.h | ||
5 | |||
6 | * defs.h: Include "gcc_compat.h". | ||
7 | (GNUC_PREREQ, ATTRIBUTE_NORETURN, ATTRIBUTE_FORMAT, | ||
8 | ATTRIBUTE_ALIGNED, ATTRIBUTE_PACKED, ATTRIBUTE_MALLOC, | ||
9 | ATTRIBUTE_NOINLINE, ATTRIBUTE_ALLOC_SIZE): Move ... | ||
10 | * gcc_compat.h: ... here. | ||
11 | * Makefile.am (strace_SOURCES): Add gcc_compat.h. | ||
12 | --- | ||
13 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | ||
14 | Upstream-Status: Backport | ||
15 | |||
16 | Makefile.am | 1 + | ||
17 | defs.h | 43 +---------------------------------- | ||
18 | gcc_compat.h | 73 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ | ||
19 | 3 files changed, 75 insertions(+), 42 deletions(-) | ||
20 | create mode 100644 gcc_compat.h | ||
21 | |||
22 | diff --git a/Makefile.am b/Makefile.am | ||
23 | index ab52778..d43608d 100644 | ||
24 | --- a/Makefile.am | ||
25 | +++ b/Makefile.am | ||
26 | @@ -97,6 +97,7 @@ strace_SOURCES = \ | ||
27 | flock.c \ | ||
28 | flock.h \ | ||
29 | futex.c \ | ||
30 | + gcc_compat.h \ | ||
31 | get_robust_list.c \ | ||
32 | getcpu.c \ | ||
33 | getcwd.c \ | ||
34 | diff --git a/defs.h b/defs.h | ||
35 | index 283ab1f..bae212c 100644 | ||
36 | --- a/defs.h | ||
37 | +++ b/defs.h | ||
38 | @@ -55,6 +55,7 @@ | ||
39 | #include <sys/syscall.h> | ||
40 | |||
41 | #include "mpers_type.h" | ||
42 | +#include "gcc_compat.h" | ||
43 | |||
44 | #ifndef HAVE_STRERROR | ||
45 | const char *strerror(int); | ||
46 | @@ -68,48 +69,6 @@ const char *strerror(int); | ||
47 | extern char *stpcpy(char *dst, const char *src); | ||
48 | #endif | ||
49 | |||
50 | -#if defined __GNUC__ && defined __GNUC_MINOR__ | ||
51 | -# define GNUC_PREREQ(maj, min) \ | ||
52 | - ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min)) | ||
53 | -#else | ||
54 | -# define __attribute__(x) /* empty */ | ||
55 | -# define GNUC_PREREQ(maj, min) 0 | ||
56 | -#endif | ||
57 | - | ||
58 | -#if GNUC_PREREQ(2, 5) | ||
59 | -# define ATTRIBUTE_NORETURN __attribute__((__noreturn__)) | ||
60 | -#else | ||
61 | -# define ATTRIBUTE_NORETURN /* empty */ | ||
62 | -#endif | ||
63 | - | ||
64 | -#if GNUC_PREREQ(2, 7) | ||
65 | -# define ATTRIBUTE_FORMAT(args) __attribute__((__format__ args)) | ||
66 | -# define ATTRIBUTE_ALIGNED(arg) __attribute__((__aligned__(arg))) | ||
67 | -# define ATTRIBUTE_PACKED __attribute__((__packed__)) | ||
68 | -#else | ||
69 | -# define ATTRIBUTE_FORMAT(args) /* empty */ | ||
70 | -# define ATTRIBUTE_ALIGNED(arg) /* empty */ | ||
71 | -# define ATTRIBUTE_PACKED /* empty */ | ||
72 | -#endif | ||
73 | - | ||
74 | -#if GNUC_PREREQ(3, 0) | ||
75 | -# define ATTRIBUTE_MALLOC __attribute__((__malloc__)) | ||
76 | -#else | ||
77 | -# define ATTRIBUTE_MALLOC /* empty */ | ||
78 | -#endif | ||
79 | - | ||
80 | -#if GNUC_PREREQ(3, 1) | ||
81 | -# define ATTRIBUTE_NOINLINE __attribute__((__noinline__)) | ||
82 | -#else | ||
83 | -# define ATTRIBUTE_NOINLINE /* empty */ | ||
84 | -#endif | ||
85 | - | ||
86 | -#if GNUC_PREREQ(4, 3) | ||
87 | -# define ATTRIBUTE_ALLOC_SIZE(args) __attribute__((__alloc_size__ args)) | ||
88 | -#else | ||
89 | -# define ATTRIBUTE_ALLOC_SIZE(args) /* empty */ | ||
90 | -#endif | ||
91 | - | ||
92 | #ifndef offsetof | ||
93 | # define offsetof(type, member) \ | ||
94 | (((char *) &(((type *) NULL)->member)) - ((char *) (type *) NULL)) | ||
95 | diff --git a/gcc_compat.h b/gcc_compat.h | ||
96 | new file mode 100644 | ||
97 | index 0000000..1f2c835 | ||
98 | --- /dev/null | ||
99 | +++ b/gcc_compat.h | ||
100 | @@ -0,0 +1,73 @@ | ||
101 | +/* | ||
102 | + * Copyright (c) 2015 Dmitry V. Levin <ldv@altlinux.org> | ||
103 | + * All rights reserved. | ||
104 | + * | ||
105 | + * Redistribution and use in source and binary forms, with or without | ||
106 | + * modification, are permitted provided that the following conditions | ||
107 | + * are met: | ||
108 | + * 1. Redistributions of source code must retain the above copyright | ||
109 | + * notice, this list of conditions and the following disclaimer. | ||
110 | + * 2. Redistributions in binary form must reproduce the above copyright | ||
111 | + * notice, this list of conditions and the following disclaimer in the | ||
112 | + * documentation and/or other materials provided with the distribution. | ||
113 | + * 3. The name of the author may not be used to endorse or promote products | ||
114 | + * derived from this software without specific prior written permission. | ||
115 | + * | ||
116 | + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR | ||
117 | + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES | ||
118 | + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. | ||
119 | + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, | ||
120 | + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT | ||
121 | + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | ||
122 | + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | ||
123 | + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||
124 | + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | ||
125 | + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||
126 | + */ | ||
127 | + | ||
128 | +#ifndef GCC_COMPAT_H_ | ||
129 | +#define GCC_COMPAT_H_ | ||
130 | + | ||
131 | +#if defined __GNUC__ && defined __GNUC_MINOR__ | ||
132 | +# define GNUC_PREREQ(maj, min) \ | ||
133 | + ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min)) | ||
134 | +#else | ||
135 | +# define __attribute__(x) /* empty */ | ||
136 | +# define GNUC_PREREQ(maj, min) 0 | ||
137 | +#endif | ||
138 | + | ||
139 | +#if GNUC_PREREQ(2, 5) | ||
140 | +# define ATTRIBUTE_NORETURN __attribute__((__noreturn__)) | ||
141 | +#else | ||
142 | +# define ATTRIBUTE_NORETURN /* empty */ | ||
143 | +#endif | ||
144 | + | ||
145 | +#if GNUC_PREREQ(2, 7) | ||
146 | +# define ATTRIBUTE_FORMAT(args) __attribute__((__format__ args)) | ||
147 | +# define ATTRIBUTE_ALIGNED(arg) __attribute__((__aligned__(arg))) | ||
148 | +# define ATTRIBUTE_PACKED __attribute__((__packed__)) | ||
149 | +#else | ||
150 | +# define ATTRIBUTE_FORMAT(args) /* empty */ | ||
151 | +# define ATTRIBUTE_ALIGNED(arg) /* empty */ | ||
152 | +# define ATTRIBUTE_PACKED /* empty */ | ||
153 | +#endif | ||
154 | + | ||
155 | +#if GNUC_PREREQ(3, 0) | ||
156 | +# define ATTRIBUTE_MALLOC __attribute__((__malloc__)) | ||
157 | +#else | ||
158 | +# define ATTRIBUTE_MALLOC /* empty */ | ||
159 | +#endif | ||
160 | + | ||
161 | +#if GNUC_PREREQ(3, 1) | ||
162 | +# define ATTRIBUTE_NOINLINE __attribute__((__noinline__)) | ||
163 | +#else | ||
164 | +# define ATTRIBUTE_NOINLINE /* empty */ | ||
165 | +#endif | ||
166 | + | ||
167 | +#if GNUC_PREREQ(4, 3) | ||
168 | +# define ATTRIBUTE_ALLOC_SIZE(args) __attribute__((__alloc_size__ args)) | ||
169 | +#else | ||
170 | +# define ATTRIBUTE_ALLOC_SIZE(args) /* empty */ | ||
171 | +#endif | ||
172 | + | ||
173 | +#endif | ||
174 | -- | ||
175 | 1.9.1 | ||
176 | |||