533c94cd6d
* Pull in patch from MacPorts to handle 10.11 SDK header issue with fixincludes. * Backport upstream bugfix for GCC bug 66523, fixing an issue with Xcode 7. * Pull in --with-build-config=bootstrap-debug change from FreeBSD ports to fix bootstrap compare issue seen with clang / Xcode 7.
98 lines
3.6 KiB
Modula-2
98 lines
3.6 KiB
Modula-2
$NetBSD: patch-fixincludes_inclhack.def,v 1.2 2015/11/03 13:59:10 jperkin Exp $
|
|
|
|
Fix for El Capitan / Xcode 7 from https://trac.macports.org/ticket/48471
|
|
|
|
--- fixincludes/inclhack.def.orig 2014-12-13 17:47:30.000000000 +0000
|
|
+++ fixincludes/inclhack.def
|
|
@@ -1141,6 +1141,79 @@ fix = {
|
|
test_text = "#define _Noreturn [[noreturn]]";
|
|
};
|
|
|
|
+/*
|
|
+ * Add definitions of non-standard (clang) macros.
|
|
+ */
|
|
+fix = {
|
|
+ hackname = clang_macro___has_builtin;
|
|
+ select = "__has_builtin";
|
|
+ bypass = "#[ \t]*define[ \t]+__has_builtin";
|
|
+ c_fix = wrap;
|
|
+ c_fix_arg = "#ifndef __has_builtin\n"
|
|
+ " #define __has_builtin(x) 0\n"
|
|
+ "#endif\n";
|
|
+ test_text = "#if __has_builtin(__builtin_trap)\n"
|
|
+ " __builtin_trap();\n"
|
|
+ "#else\n"
|
|
+ " abort();\n"
|
|
+ "#endif\n";
|
|
+};
|
|
+fix = {
|
|
+ hackname = clang_macro___has_feature;
|
|
+ select = "__has_feature";
|
|
+ bypass = "#[ \t]*define[ \t]+__has_feature";
|
|
+ c_fix = wrap;
|
|
+ c_fix_arg = "#ifndef __has_feature\n"
|
|
+ " #define __has_feature(x) 0\n"
|
|
+ "#endif\n";
|
|
+ test_text = "#if __has_feature(cxx_rvalue_references)\n"
|
|
+ " // This code will only be compiled with the -std=c++11 and -std=gnu++11\n"
|
|
+ " // options, because rvalue references are only standardized in C++11.\n"
|
|
+ "#endif\n";
|
|
+};
|
|
+fix = {
|
|
+ hackname = clang_macro___has_cpp_attribute;
|
|
+ select = "__has_cpp_attribute";
|
|
+ bypass = "#[ \t]*define[ \t]+__has_cpp_attribute";
|
|
+ c_fix = wrap;
|
|
+ c_fix_arg = "#ifndef __has_cpp_attribute\n"
|
|
+ " #define __has_cpp_attribute(x) 0\n"
|
|
+ "#endif\n";
|
|
+ test_text = "#if __has_cpp_attribute(clang::fallthrough)\n"
|
|
+ " #define FALLTHROUGH [[clang::fallthrough]]\n"
|
|
+ "#else\n"
|
|
+ " #define FALLTHROUGH\n"
|
|
+ "#endif\n";
|
|
+};
|
|
+fix = {
|
|
+ hackname = clang_macro___has_attribute;
|
|
+ select = "__has_attribute";
|
|
+ bypass = "#[ \t]*define[ \t]+__has_attribute";
|
|
+ c_fix = wrap;
|
|
+ c_fix_arg = "#ifndef __has_attribute\n"
|
|
+ " #define __has_attribute(x) 0\n"
|
|
+ "#endif\n";
|
|
+ test_text = "#if __has_attribute(always_inline)\n"
|
|
+ " #define ALWAYS_INLINE __attribute__((always_inline))\n"
|
|
+ "#else\n"
|
|
+ " #define ALWAYS_INLINE\n"
|
|
+ "#endif\n";
|
|
+};
|
|
+fix = {
|
|
+ hackname = clang_macro___has_declspec_attribute;
|
|
+ select = "__has_declspec_attribute";
|
|
+ bypass = "#[ \t]*define[ \t]+__has_declspec_attribute";
|
|
+ c_fix = wrap;
|
|
+ c_fix_arg = "#ifndef __has_declspec_attribute\n"
|
|
+ " #define __has_declspec_attribute(x) 0\n"
|
|
+ "#endif\n";
|
|
+ test_text = "#if __has_declspec_attribute(dllexport)\n"
|
|
+ " #define DLLEXPORT __declspec(dllexport)\n"
|
|
+ "#else\n"
|
|
+ " #define DLLEXPORT\n"
|
|
+ "#endif\n";
|
|
+};
|
|
+
|
|
/*
|
|
* Fix various macros used to define ioctl numbers.
|
|
* The traditional syntax was:
|
|
@@ -3226,9 +3299,9 @@ fix = {
|
|
mach = "*-*-solaris2.*";
|
|
files = complex.h;
|
|
sed = "/#if[ \t]*!defined(__cplusplus)/c\\\n"
|
|
- "#ifdef\t__cplusplus\\\nextern \"C\" {\\\n#endif";
|
|
+ "#ifdef\t__cplusplus\\\nextern \"C\" {\\\n#endif\\\n";
|
|
sed = "/#endif[ \t]*\\/\\* !defined(__cplusplus) \\*\\//c\\\n"
|
|
- "#ifdef\t__cplusplus\\\n}\\\n#endif";
|
|
+ "#ifdef\t__cplusplus\\\n}\\\n#endif\\\n";
|
|
test_text = "#if !defined(__cplusplus)\n"
|
|
"#endif /* !defined(__cplusplus) */";
|
|
};
|