This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: differences in generated ldscripts for native and cross builds


On Tue, Oct 13, 2015 at 01:17:50PM +0200, Thomas Schwinge wrote:
> Hi!
> 
> On Mon, 12 Oct 2015 17:04:21 +0000, Joseph Myers <joseph@codesourcery.com> wrote:
> > On Sun, 11 Oct 2015, H.J. Lu wrote:
> > 
> > > >> Try adding --enable-initfini-array to the cross configuration.  The
> > > >> autoconf test for this option uses AC_RUN_IFELSE so only works on
> > > >> native builds.
> > > >
> > > > can't we make this smarter ?  this feature has been around for quite
> > > > a long time now.  seems crazy that the default is to disable these
> > > > when cross-compiling.
> > > 
> > > Yes, the default should be ON for Linux targets.
> > 
> > Thomas, I think you had plans to work on that at some point....
> 
> Yes, in 2012-07...  :-| Unfortunately, that never happened, and is very
> unlikely to be happening anytime soon.
> 
> > As I said in <https://gcc.gnu.org/ml/gcc-patches/2013-11/msg00619.html> I 
> > think it should be on by default for ELF targets, not limited to GNU/Linux 
> > or GNU targets.
> 
> Yes, per my notes,
> <http://news.gmane.org/find-root.php?message_id=%3C20120118232441.GO18768%40tyan-ft48-01.lab.bos.redhat.com%3E>
> and
> <http://news.gmane.org/find-root.php?message_id=%3CPine.LNX.4.64.1311061831350.13465%40digraph.polyomino.org.uk%3E>
> were two relevant discussion threads.

I think it's time we defaulted to --enable-initfini-array, at least for
binutils-2.27.

	* configure.ac (--enable-initfini-array): Remove run test.  Default
	to "yes".  Change help string to --disable-initfini-array.
	* configure: Regenerate.

diff --git a/ld/configure.ac b/ld/configure.ac
index 188172d..d61beb2 100644
--- a/ld/configure.ac
+++ b/ld/configure.ac
@@ -215,23 +215,11 @@ AC_SEARCH_LIBS([dlopen], [dl])
 AM_CONDITIONAL([ENABLE_PLUGINS], [test x$plugins = xyes])
 
 AC_ARG_ENABLE(initfini-array,
-	[  --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
-])
+[  --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])
 AC_SUBST(enable_initfini_array)
 if test $enable_initfini_array = yes; then
   AC_DEFINE(HAVE_INITFINI_ARRAY, 1,

-- 
Alan Modra
Australia Development Lab, IBM


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]