From 516eec83c97a8d1f0d4e6af91c3c4bb0a70180e4 Mon Sep 17 00:00:00 2001 From: Igor Sysoev Date: Sat, 24 Sep 2016 22:13:31 +0300 Subject: [PATCH] All C feature attributes have been disabled for Linux/PPC64. --- nxt/auto/clang | 177 ++++++++++++++++++++++++++---------------------- nxt/nxt_clang.h | 6 -- 2 files changed, 95 insertions(+), 88 deletions(-) diff --git a/nxt/auto/clang b/nxt/auto/clang index c041e191..686003e1 100644 --- a/nxt/auto/clang +++ b/nxt/auto/clang @@ -166,85 +166,98 @@ END # C language features. -nxt_feature="GCC __builtin_expect()" -nxt_feature_name=NXT_HAVE_BUILTIN_EXPECT -nxt_feature_run=no -nxt_feature_incs= -nxt_feature_libs= -nxt_feature_test="int main(int argc, char *const *argv) { - if ((__typeof__(argc == 0)) - __builtin_expect((argc == 0), 0)) - return 0; - return 1; - }" -. ${NXT_AUTO}feature - - -nxt_feature="GCC __builtin_unreachable()" -nxt_feature_name=NXT_HAVE_BUILTIN_UNREACHABLE -nxt_feature_run=no -nxt_feature_incs= -nxt_feature_libs= -nxt_feature_test="int main() { - __builtin_unreachable(); - }" -. ${NXT_AUTO}feature - - -nxt_feature="GCC __builtin_prefetch()" -nxt_feature_name=NXT_HAVE_BUILTIN_PREFETCH -nxt_feature_run=no -nxt_feature_incs= -nxt_feature_libs= -nxt_feature_test="int main() { - __builtin_prefetch(0); - }" -. ${NXT_AUTO}feature - - -nxt_feature="GCC __attribute__ visibility" -nxt_feature_name=NXT_HAVE_GCC_ATTRIBUTE_VISIBILITY -nxt_feature_run= -nxt_feature_path= -nxt_feature_libs= -nxt_feature_test="int n __attribute__ ((visibility(\"default\"))); - - int main() { - return 1; - }" -. ${NXT_AUTO}feature - - -nxt_feature="GCC __attribute__ aligned" -nxt_feature_name=NXT_HAVE_GCC_ATTRIBUTE_ALIGNED -nxt_feature_run= -nxt_feature_path= -nxt_feature_libs= -nxt_feature_test="int n __attribute__ ((aligned(64))); - - int main() { - return 1; - }" -. ${NXT_AUTO}feature - - -nxt_feature="GCC __attribute__ malloc" -nxt_feature_name=NXT_HAVE_GCC_ATTRIBUTE_MALLOC -nxt_feature_run= -nxt_feature_path= -nxt_feature_libs= -nxt_feature_test="#include - - void *f(void) __attribute__ ((__malloc__)); - - void *f(void) { - return malloc(1); - } - - int main() { - if (f() != NULL) { - return 1; - } - return 0; - }" -. ${NXT_AUTO}feature +nxt_os="$NXT_SYSTEM/$NXT_SYSTEM_PLATFORM" + +if [ "$nxt_os" = "Linux/ppc64le" ]; then + + # Old GNU ld linker may hang on Linux ppc64le platform + # if some of these features are enabled. + + echo "checking for C language features is disabled for $nxt_os." + +else + + nxt_feature="GCC __builtin_expect()" + nxt_feature_name=NXT_HAVE_BUILTIN_EXPECT + nxt_feature_run=no + nxt_feature_incs= + nxt_feature_libs= + nxt_feature_test="int main(int argc, char *const *argv) { + if ((__typeof__(argc == 0)) + __builtin_expect((argc == 0), 0)) + return 0; + return 1; + }" + . ${NXT_AUTO}feature + + + nxt_feature="GCC __builtin_unreachable()" + nxt_feature_name=NXT_HAVE_BUILTIN_UNREACHABLE + nxt_feature_run=no + nxt_feature_incs= + nxt_feature_libs= + nxt_feature_test="int main() { + __builtin_unreachable(); + }" + . ${NXT_AUTO}feature + + + nxt_feature="GCC __builtin_prefetch()" + nxt_feature_name=NXT_HAVE_BUILTIN_PREFETCH + nxt_feature_run=no + nxt_feature_incs= + nxt_feature_libs= + nxt_feature_test="int main() { + __builtin_prefetch(0); + }" + . ${NXT_AUTO}feature + + + nxt_feature="GCC __attribute__ visibility" + nxt_feature_name=NXT_HAVE_GCC_ATTRIBUTE_VISIBILITY + nxt_feature_run= + nxt_feature_path= + nxt_feature_libs= + nxt_feature_test="int n __attribute__ ((visibility(\"default\"))); + + int main() { + return 1; + }" + . ${NXT_AUTO}feature + + + nxt_feature="GCC __attribute__ aligned" + nxt_feature_name=NXT_HAVE_GCC_ATTRIBUTE_ALIGNED + nxt_feature_run= + nxt_feature_path= + nxt_feature_libs= + nxt_feature_test="int n __attribute__ ((aligned(64))); + + int main() { + return 1; + }" + . ${NXT_AUTO}feature + + + nxt_feature="GCC __attribute__ malloc" + nxt_feature_name=NXT_HAVE_GCC_ATTRIBUTE_MALLOC + nxt_feature_run= + nxt_feature_path= + nxt_feature_libs= + nxt_feature_test="#include + + void *f(void) __attribute__ ((__malloc__)); + + void *f(void) { + return malloc(1); + } + + int main() { + if (f() != NULL) { + return 1; + } + return 0; + }" + . ${NXT_AUTO}feature + +fi diff --git a/nxt/nxt_clang.h b/nxt/nxt_clang.h index c409491a..03cb0a56 100644 --- a/nxt/nxt_clang.h +++ b/nxt/nxt_clang.h @@ -61,13 +61,7 @@ #if (NXT_HAVE_GCC_ATTRIBUTE_ALIGNED) - -#if (NXT_LINUX && __PPC64__) -/* Old GNU ld linker may hang on Linux ppc64le platform. */ -#define nxt_aligned(x) -#else #define nxt_aligned(x) __attribute__((aligned(x))) -#endif #else #define nxt_aligned(x) -- 2.47.3