Module Name:    src
Committed By:   christos
Date:           Wed Oct 26 20:26:20 UTC 2016

Modified Files:
        src/external/gpl3/binutils/dist/ld: configure configure.ac

Log Message:
restore the initfini array tests


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 src/external/gpl3/binutils/dist/ld/configure
cvs rdiff -u -r1.3 -r1.4 src/external/gpl3/binutils/dist/ld/configure.ac

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/external/gpl3/binutils/dist/ld/configure
diff -u src/external/gpl3/binutils/dist/ld/configure:1.4 src/external/gpl3/binutils/dist/ld/configure:1.5
--- src/external/gpl3/binutils/dist/ld/configure:1.4	Wed Oct 26 14:43:26 2016
+++ src/external/gpl3/binutils/dist/ld/configure	Wed Oct 26 16:26:20 2016
@@ -1454,7 +1454,7 @@ Optional Features:
   --enable-werror         treat compile warnings as errors
   --enable-build-warnings enable build-time compiler warnings
   --disable-nls           do not use Native Language Support
-  --disable-initfini-array do not use .init_array/.fini_array sections
+  --enable-initfini-array	use .init_array/.fini_array sections
 
 Optional Packages:
   --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
@@ -16866,14 +16866,44 @@ fi
 
 # Check whether --enable-initfini-array was given.
 if test "${enable_initfini_array+set}" = set; then :
-  enableval=$enable_initfini_array; case "${enableval}" in
- yes|no) ;;
- *) as_fn_error "invalid --enable-initfini-array argument" "$LINENO" 5 ;;
- esac
+  enableval=$enable_initfini_array;
+else
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for .preinit_array/.init_array/.fini_array support" >&5
+$as_echo_n "checking for .preinit_array/.init_array/.fini_array support... " >&6; }
+if test "${gcc_cv_initfini_array+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+    if test "x${build}" = "x${target}" ; then
+    if test "$cross_compiling" = yes; then :
+  gcc_cv_initfini_array=no
 else
-  enable_initfini_array=yes
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+static int x = -1;
+int main (void) { return x; }
+int foo (void) { x = 0; }
+int (*fp) (void) __attribute__ ((section (".init_array"))) = foo;
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+  gcc_cv_initfini_array=yes
+ else
+  gcc_cv_initfini_array=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 
+   else
+     gcc_cv_initfini_array=no
+   fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_initfini_array" >&5
+$as_echo "$gcc_cv_initfini_array" >&6; }
+  enable_initfini_array=$gcc_cv_initfini_array
+
+ fi
 
 if test $enable_initfini_array = yes; then
 

Index: src/external/gpl3/binutils/dist/ld/configure.ac
diff -u src/external/gpl3/binutils/dist/ld/configure.ac:1.3 src/external/gpl3/binutils/dist/ld/configure.ac:1.4
--- src/external/gpl3/binutils/dist/ld/configure.ac:1.3	Wed Oct 26 14:43:26 2016
+++ src/external/gpl3/binutils/dist/ld/configure.ac	Wed Oct 26 16:26:20 2016
@@ -226,11 +226,23 @@ AC_SEARCH_LIBS([dlopen], [dl])
 AM_CONDITIONAL([ENABLE_PLUGINS], [test x$plugins = xyes])
 
 AC_ARG_ENABLE(initfini-array,
-[  --disable-initfini-array do not use .init_array/.fini_array sections],
-[case "${enableval}" in
- yes|no) ;;
- *) AC_MSG_ERROR([invalid --enable-initfini-array argument]) ;;
- esac], [enable_initfini_array=yes])
+	[  --enable-initfini-array	use .init_array/.fini_array sections],
+	[], [
+AC_CACHE_CHECK(for .preinit_array/.init_array/.fini_array support,
+		 gcc_cv_initfini_array, [dnl
+  if test "x${build}" = "x${target}" ; then
+    AC_RUN_IFELSE([AC_LANG_SOURCE([
+static int x = -1;
+int main (void) { return x; }
+int foo (void) { x = 0; }
+int (*fp) (void) __attribute__ ((section (".init_array"))) = foo;])],
+	     [gcc_cv_initfini_array=yes], [gcc_cv_initfini_array=no],
+	     [gcc_cv_initfini_array=no])
+   else
+     gcc_cv_initfini_array=no
+   fi])
+  enable_initfini_array=$gcc_cv_initfini_array
+])
 AC_SUBST(enable_initfini_array)
 if test $enable_initfini_array = yes; then
   AC_DEFINE(HAVE_INITFINI_ARRAY, 1,

Reply via email to