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]

[PATCH] Add gold configure options to pass in LDFLAGS and LDADD options for ld-new


Add gold configure options to pass in LDFLAGS and LDADD options for ld-new.

Gold plugins written in C++ need to use the same instance of libstcd++ as
that used by gold.  One way of handling this is to build gold with a static
libstdc++ and ensure that it exports all the symbols from this library to
plugins.  This patch adds --with-gold-ldadd and --with-gold-ldflags to gold's
configure script to allow the appropriate linker flags to be set by configure.

Tested for x86.  Okay?

gold/ChangeLog:
2011-09-20  Simon Baldwin  <simonb@google.com>

	* configure.ac: Add new --with-gold-ldadd and --with-gold-ldflags
	configuration options.
	* configure: Regenerate.
	* Makefile.am: Handle GOLD_LDADD and GOLD_LDFLAGS.
	* Makefile.in: Regenerate.
	* testsuite/Makefile.in: Regenerate.


diff -cr src_orig/gold/Makefile.am src/gold/Makefile.am
*** src_orig/gold/Makefile.am	Tue Apr 27 18:05:48 2010
--- src/gold/Makefile.am	Tue Sep 20 16:51:38 2011
***************
*** 151,162 ****
  
  sources_var = main.cc
  deps_var = $(TARGETOBJS) libgold.a $(LIBIBERTY) $(LIBINTL_DEP)
! ldadd_var = $(TARGETOBJS) libgold.a $(LIBIBERTY) $(LIBINTL) \
  	 $(THREADSLIB) $(LIBDL)
  
  ld_new_SOURCES = $(sources_var)
  ld_new_DEPENDENCIES = $(deps_var)
  ld_new_LDADD = $(ldadd_var)
  
  EXTRA_ld_new_SOURCES = $(TARGETSOURCES)
  
--- 151,164 ----
  
  sources_var = main.cc
  deps_var = $(TARGETOBJS) libgold.a $(LIBIBERTY) $(LIBINTL_DEP)
! ldadd_var = $(TARGETOBJS) libgold.a $(LIBIBERTY) $(GOLD_LDADD) $(LIBINTL) \
  	 $(THREADSLIB) $(LIBDL)
+ ldflags_var = $(GOLD_LDFLAGS)
  
  ld_new_SOURCES = $(sources_var)
  ld_new_DEPENDENCIES = $(deps_var)
  ld_new_LDADD = $(ldadd_var)
+ ld_new_LDFLAGS = $(ldflags_var)
  
  EXTRA_ld_new_SOURCES = $(TARGETSOURCES)
  
diff -cr src_orig/gold/Makefile.in src/gold/Makefile.in
*** src_orig/gold/Makefile.in	Wed Sep 14 03:29:01 2011
--- src/gold/Makefile.in	Tue Sep 20 17:26:19 2011
***************
*** 101,107 ****
  ld_new_OBJECTS = $(am_ld_new_OBJECTS)
  am__DEPENDENCIES_2 = $(am__DEPENDENCIES_1) libgold.a $(LIBIBERTY) \
  	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
! 	$(am__DEPENDENCIES_1)
  @GCC_TRUE@@NATIVE_LINKER_TRUE@am_ld1_OBJECTS = $(am__objects_4)
  ld1_OBJECTS = $(am_ld1_OBJECTS)
  ld1_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(ld1_LDFLAGS) \
--- 101,109 ----
  ld_new_OBJECTS = $(am_ld_new_OBJECTS)
  am__DEPENDENCIES_2 = $(am__DEPENDENCIES_1) libgold.a $(LIBIBERTY) \
  	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
! 	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
! ld_new_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(ld_new_LDFLAGS) \
! 	$(LDFLAGS) -o $@
  @GCC_TRUE@@NATIVE_LINKER_TRUE@am_ld1_OBJECTS = $(am__objects_4)
  ld1_OBJECTS = $(am_ld1_OBJECTS)
  ld1_LINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(ld1_LDFLAGS) \
***************
*** 251,256 ****
--- 253,260 ----
  EXEEXT = @EXEEXT@
  GENCAT = @GENCAT@
  GMSGFMT = @GMSGFMT@
+ GOLD_LDADD = @GOLD_LDADD@
+ GOLD_LDFLAGS = @GOLD_LDFLAGS@
  GREP = @GREP@
  INCINTL = @INCINTL@
  INSTALL = @INSTALL@
***************
*** 488,499 ****
  libgold_a_LIBADD = $(LIBOBJS)
  sources_var = main.cc
  deps_var = $(TARGETOBJS) libgold.a $(LIBIBERTY) $(LIBINTL_DEP)
! ldadd_var = $(TARGETOBJS) libgold.a $(LIBIBERTY) $(LIBINTL) \
  	 $(THREADSLIB) $(LIBDL)
  
  ld_new_SOURCES = $(sources_var)
  ld_new_DEPENDENCIES = $(deps_var)
  ld_new_LDADD = $(ldadd_var)
  EXTRA_ld_new_SOURCES = $(TARGETSOURCES)
  incremental_dump_SOURCES = incremental-dump.cc
  incremental_dump_DEPENDENCIES = $(TARGETOBJS) libgold.a $(LIBIBERTY) \
--- 492,505 ----
  libgold_a_LIBADD = $(LIBOBJS)
  sources_var = main.cc
  deps_var = $(TARGETOBJS) libgold.a $(LIBIBERTY) $(LIBINTL_DEP)
! ldadd_var = $(TARGETOBJS) libgold.a $(LIBIBERTY) $(GOLD_LDADD) $(LIBINTL) \
  	 $(THREADSLIB) $(LIBDL)
  
+ ldflags_var = $(GOLD_LDFLAGS)
  ld_new_SOURCES = $(sources_var)
  ld_new_DEPENDENCIES = $(deps_var)
  ld_new_LDADD = $(ldadd_var)
+ ld_new_LDFLAGS = $(ldflags_var)
  EXTRA_ld_new_SOURCES = $(TARGETSOURCES)
  incremental_dump_SOURCES = incremental-dump.cc
  incremental_dump_DEPENDENCIES = $(TARGETOBJS) libgold.a $(LIBIBERTY) \
***************
*** 601,607 ****
  	$(CXXLINK) $(incremental_dump_OBJECTS) $(incremental_dump_LDADD) $(LIBS)
  ld-new$(EXEEXT): $(ld_new_OBJECTS) $(ld_new_DEPENDENCIES) 
  	@rm -f ld-new$(EXEEXT)
! 	$(CXXLINK) $(ld_new_OBJECTS) $(ld_new_LDADD) $(LIBS)
  ld1$(EXEEXT): $(ld1_OBJECTS) $(ld1_DEPENDENCIES) 
  	@rm -f ld1$(EXEEXT)
  	$(ld1_LINK) $(ld1_OBJECTS) $(ld1_LDADD) $(LIBS)
--- 607,613 ----
  	$(CXXLINK) $(incremental_dump_OBJECTS) $(incremental_dump_LDADD) $(LIBS)
  ld-new$(EXEEXT): $(ld_new_OBJECTS) $(ld_new_DEPENDENCIES) 
  	@rm -f ld-new$(EXEEXT)
! 	$(ld_new_LINK) $(ld_new_OBJECTS) $(ld_new_LDADD) $(LIBS)
  ld1$(EXEEXT): $(ld1_OBJECTS) $(ld1_DEPENDENCIES) 
  	@rm -f ld1$(EXEEXT)
  	$(ld1_LINK) $(ld1_OBJECTS) $(ld1_LDADD) $(LIBS)
Only in src/gold: autom4te.cache
diff -cr src_orig/gold/configure src/gold/configure
*** src_orig/gold/configure	Wed Sep 14 03:29:01 2011
--- src/gold/configure	Tue Sep 20 17:26:17 2011
***************
*** 599,604 ****
--- 599,606 ----
  HAVE_ZLIB_TRUE
  LIBOBJS
  LFS_CFLAGS
+ GOLD_LDADD
+ GOLD_LDFLAGS
  WARN_CXXFLAGS
  NO_WERROR
  WARN_CFLAGS
***************
*** 777,782 ****
--- 779,786 ----
  enable_nls
  enable_werror
  enable_build_warnings
+ with_gold_ldflags
+ with_gold_ldadd
  enable_maintainer_mode
  '
        ac_precious_vars='build_alias
***************
*** 1431,1436 ****
--- 1435,1442 ----
    --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
    --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
    --with-sysroot=DIR    search for usr/lib et al within DIR
+   --with-gold-ldflags=FLAGS  additional link flags for gold
+   --with-gold-ldadd=LIBS     additional libraries for gold
  
  Some influential environment variables:
    CC          C compiler command
***************
*** 6619,6624 ****
--- 6625,6658 ----
  WARN_CXXFLAGS=`echo ${WARN_CFLAGS} | sed -e 's/-Wstrict-prototypes//' -e 's/-Wmissing-prototypes//' -e 's/-Wshadow//'`
  
  
+ 
+ # Check whether --with-gold-ldflags was given.
+ if test "${with_gold_ldflags+set}" = set; then :
+   withval=$with_gold_ldflags; if test "$withval" = "no" -o "$withval" = "yes"; then
+    GOLD_LDFLAGS=
+  else
+    GOLD_LDFLAGS=$withval
+  fi
+ else
+   GOLD_LDFLAGS=
+ fi
+ 
+ 
+ 
+ 
+ # Check whether --with-gold-ldadd was given.
+ if test "${with_gold_ldadd+set}" = set; then :
+   withval=$with_gold_ldadd; if test "$withval" = "no" -o "$withval" = "yes"; then
+    GOLD_LDADD=
+  else
+    GOLD_LDADD=$withval
+  fi
+ else
+   GOLD_LDADD=
+ fi
+ 
+ 
+ 
  LFS_CFLAGS="-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
  
  
diff -cr src_orig/gold/configure.ac src/gold/configure.ac
*** src_orig/gold/configure.ac	Wed Sep 14 03:29:01 2011
--- src/gold/configure.ac	Tue Sep 20 17:26:06 2011
***************
*** 409,414 ****
--- 409,434 ----
  WARN_CXXFLAGS=`echo ${WARN_CFLAGS} | sed -e 's/-Wstrict-prototypes//' -e 's/-Wmissing-prototypes//' -e 's/-Wshadow//'`
  AC_SUBST(WARN_CXXFLAGS)
  
+ AC_ARG_WITH(gold-ldflags,
+ [  --with-gold-ldflags=FLAGS  additional link flags for gold],
+ [if test "$withval" = "no" -o "$withval" = "yes"; then
+    GOLD_LDFLAGS=
+  else
+    GOLD_LDFLAGS=$withval
+  fi],
+ [GOLD_LDFLAGS=])
+ AC_SUBST(GOLD_LDFLAGS)
+ 
+ AC_ARG_WITH(gold-ldadd,
+ [  --with-gold-ldadd=LIBS     additional libraries for gold],
+ [if test "$withval" = "no" -o "$withval" = "yes"; then
+    GOLD_LDADD=
+  else
+    GOLD_LDADD=$withval
+  fi],
+ [GOLD_LDADD=])
+ AC_SUBST(GOLD_LDADD)
+ 
  dnl Force support for large files by default.  This may need to be
  dnl host dependent.  If build == host, we can check getconf LFS_CFLAGS.
  LFS_CFLAGS="-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
diff -cr src_orig/gold/testsuite/Makefile.in src/gold/testsuite/Makefile.in
*** src_orig/gold/testsuite/Makefile.in	Wed Sep 14 03:29:01 2011
--- src/gold/testsuite/Makefile.in	Tue Sep 20 17:26:19 2011
***************
*** 1797,1802 ****
--- 1797,1804 ----
  EXEEXT = @EXEEXT@
  GENCAT = @GENCAT@
  GMSGFMT = @GMSGFMT@
+ GOLD_LDADD = @GOLD_LDADD@
+ GOLD_LDFLAGS = @GOLD_LDFLAGS@
  GREP = @GREP@
  INCINTL = @INCINTL@
  INSTALL = @INSTALL@


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