]> code.delx.au - gnu-emacs/commitdiff
Port 'configure' to clang 3.5
authorPaul Eggert <eggert@cs.ucla.edu>
Fri, 3 Apr 2015 20:05:23 +0000 (13:05 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Fri, 3 Apr 2015 20:06:02 +0000 (13:06 -0700)
* configure.ac: Add -Wno-unknown-attributes if clang; otherwise
clang 3.5.0 (Fedora 21 x86-64) complains
"/usr/include/glib-2.0/glib/gmem.h: ... warning: unknown attribute
'__alloc_size__' ignored".  Use -Werror when checking for -nopie;
otherwise clang warns about -nopie instead of failing, and then
later it warns everytime the build uses -nopie.

ChangeLog
configure.ac

index 030ef37e850bf3ef7fa7251094a290c29ad89574..7746605c4b1ae12ad2729575896643fe26563eac 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2015-04-03  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Port 'configure' to clang 3.5
+       * configure.ac: Add -Wno-unknown-attributes if clang; otherwise
+       clang 3.5.0 (Fedora 21 x86-64) complains
+       "/usr/include/glib-2.0/glib/gmem.h: ... warning: unknown attribute
+       '__alloc_size__' ignored".  Use -Werror when checking for -nopie;
+       otherwise clang warns about -nopie instead of failing, and then
+       later it warns everytime the build uses -nopie.
+
 2015-04-03  Ulrich Müller  <ulm@gentoo.org>
 
        * configure.ac (LD_SWITCH_SYSTEM_TEMACS): Add -nopie option if it
index d2a9b375e402ab4bf9a571c60fd46a46796ff202..c504ed436cc47fa3c0e2bd06ec51250c9d4d1e6d 100644 (file)
@@ -883,6 +883,7 @@ if test "$gl_gcc_warnings" != yes; then
      gl_WARN_ADD([-Wno-tautological-constant-out-of-range-compare])
      gl_WARN_ADD([-Wno-pointer-sign])
      gl_WARN_ADD([-Wno-string-plus-int])
+     gl_WARN_ADD([-Wno-unknown-attributes])
   fi
 else
   isystem='-isystem '
@@ -5030,16 +5031,22 @@ case "$opsys" in
   *) LD_SWITCH_SYSTEM_TEMACS= ;;
 esac
 
-AC_CACHE_CHECK([whether the linker accepts -nopie],
+# -nopie fixes a temacs segfault on Gentoo for some reason (Bug#18784).
+# We don't know why -nopie works, but not segfaulting is better than
+# segfaulting.  Use -Werror when trying -nopie, otherwise clang keeps
+# warning that it does not understand -nopie.
+AC_CACHE_CHECK([whether $CC accepts -nopie],
   [emacs_cv_prog_cc_nopie],
-  [emacs_save_LDFLAGS=$LDFLAGS
-  LDFLAGS="$LDFLAGS -nopie"
-  AC_LINK_IFELSE([AC_LANG_PROGRAM([], [])],
-    [emacs_cv_prog_cc_nopie=yes],
-    [emacs_cv_prog_cc_nopie=no])
-  LDFLAGS=$emacs_save_LDFLAGS])
+  [emacs_save_CFLAGS=$CFLAGS
+   emacs_save_LDFLAGS=$LDFLAGS
+   CFLAGS="$CFLAGS -Werror"
+   LDFLAGS="$LDFLAGS -nopie"
+   AC_LINK_IFELSE([AC_LANG_PROGRAM([], [])],
+     [emacs_cv_prog_cc_nopie=yes],
+     [emacs_cv_prog_cc_nopie=no])
+   CFLAGS=$emacs_save_CFLAGS
+   LDFLAGS=$emacs_save_LDFLAGS])
 if test "$emacs_cv_prog_cc_nopie" = yes; then
-  # Disable PIE to avoid segfaults in temacs (bug#18784)
   LD_SWITCH_SYSTEM_TEMACS="$LD_SWITCH_SYSTEM_TEMACS -nopie"
 fi