
* Fix cdefs macro to be compatible with gcc 4.8.x See the discussion in #4945 (after the merge) for additional background. libbsd builds with gcc@5.4.0 on CentOS 7, but not with the system's gcc@4.8.5. Others have reported problems with gcc@4.8.3 on Fedora 19. The problem boils down to the lack of support for the clang extension `__has_include_next`. The immediate symptom seems to be the pre-processor using defining macro like this ``` ``` then then tripping over an expansion of it like this: ``` blah.h:13:23: error: missing binary operator before token "(" ``` This patch changes the macro definition to: ``` ``` which swallows the arguments with which the macro is invoked. The end result is that libbsd builds for me on CentOS 7 using the system compiler. * Apply this patch for any compiler version before 5 This includes subversions of 4, like 4.8.5.
16 lines
371 B
Diff
16 lines
371 B
Diff
--- a/nclude/bsd/sys/cdefs.h.orig 2017-08-04 16:34:56.404995800 -0700
|
|
+++ b/include/bsd/sys/cdefs.h 2017-08-04 16:35:19.345043883 -0700
|
|
@@ -25,10 +25,10 @@
|
|
*/
|
|
|
|
#ifndef __has_include
|
|
-#define __has_include 1
|
|
+#define __has_include(X) 1
|
|
#endif
|
|
#ifndef __has_include_next
|
|
-#define __has_include_next 1
|
|
+#define __has_include_next(X) 1
|
|
#endif
|
|
|
|
#ifdef LIBBSD_OVERLAY
|