details: http://hg.nginx.org/njs/rev/eed097d72d5e branches: changeset: 182:eed097d72d5e user: Igor Sysoev <i...@sysoev.ru> date: Mon Sep 26 14:01:39 2016 +0300 description: The cause of linker hanging on Linux/PPC64 has been finally tracked down and thus only the aligment attribute has been correctly disabled on this platform.
diffstat: nxt/auto/clang | 150 ++++++++++++++++++++++++++++---------------------------- 1 files changed, 75 insertions(+), 75 deletions(-) diffs (177 lines): diff -r 5ef1091ecfaf -r eed097d72d5e nxt/auto/clang --- a/nxt/auto/clang Sun Sep 25 10:54:51 2016 +0300 +++ b/nxt/auto/clang Mon Sep 26 14:01:39 2016 +0300 @@ -166,6 +166,77 @@ 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__ malloc" +nxt_feature_name=NXT_HAVE_GCC_ATTRIBUTE_MALLOC +nxt_feature_run= +nxt_feature_path= +nxt_feature_libs= +nxt_feature_test="#include <stdlib.h> + + 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 @@ -173,59 +244,10 @@ 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." + echo "checking for GCC __attribute__ aligned 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= @@ -233,31 +255,9 @@ else 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 <stdlib.h> - - void *f(void) __attribute__ ((__malloc__)); - - void *f(void) { - return malloc(1); - } - - int main() { - if (f() != NULL) { - return 1; - } - return 0; - }" + int main() { + return 1; + }" . ${NXT_AUTO}feature fi _______________________________________________ nginx-devel mailing list nginx-devel@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-devel