* configure.ac (MERGE_CONSTANTS_FLAG): New check.
* configure: Regenerate.
* Makefile.in: Regenerate.
* testsuite/merge_string_literals_1.c: Renamed to have .cc suffix.
* testsuite/merge_string_literals_2.c: Likewise.
* testsuite/Makefile.am
(merge_string_literals_1.o, merge_string_literals_2.o): Update deps.
(AM_CFLAGS, AM_CXXFLAGS): Use $(MERGE_CONSTANTS_FLAG) in place of
literal -fmerge-constants.
* testsuite/Makefile.in: Regenerate.
2013-10-11 Roland McGrath <mcgrathr@google.com>
+ * configure.ac (MERGE_CONSTANTS_FLAG): New check.
+ * configure: Regenerate.
+ * Makefile.in: Regenerate.
+ * testsuite/merge_string_literals_1.c: Renamed to have .cc suffix.
+ * testsuite/merge_string_literals_2.c: Likewise.
+ * testsuite/Makefile.am
+ (merge_string_literals_1.o, merge_string_literals_2.o): Update deps.
+ (AM_CFLAGS, AM_CXXFLAGS): Use $(MERGE_CONSTANTS_FLAG) in place of
+ literal -fmerge-constants.
+ * testsuite/Makefile.in: Regenerate.
+
* i386.cc (Target_i386): Remove unused member dynbss_.
* arm.cc (Target_arm): Likewise.
* powerpc.cc (Target_powerpc): Likewise.
2013-05-21 Cary Coutant <ccoutant@google.com>
- * object.cc (Sized_relobj_file::get_symbol_location_info): Set
- type of enclosing symbol.
- (Relocate_info::location): Check symbol type when describing symbol.
- * object.h (Symbol_location_info): Remove unused line_number;
- add enclosing_symbol_type.
- * testsuite/debug_msg.sh: Adjust expected output.
+ * object.cc (Sized_relobj_file::get_symbol_location_info): Set
+ type of enclosing symbol.
+ (Relocate_info::location): Check symbol type when describing symbol.
+ * object.h (Symbol_location_info): Remove unused line_number;
+ add enclosing_symbol_type.
+ * testsuite/debug_msg.sh: Adjust expected output.
2013-05-13 Cary Coutant <ccoutant@google.com>
- * configure.ac: Export DEFAULT_TARGET.
- * configure: Regenerate.
- * Makefile.in: Regenerate.
- * testsuite/Makefile.am: Add .EXPORT_ALL_VARIABLES.
- * testsuite/Makefile.in: Regenerate.
- * testsuite/debug_msg.sh: Delete duplicate tests.
- Don't check undef_int error message match for powerpc where the
- source file and line number aren't available.
+ * configure.ac: Export DEFAULT_TARGET.
+ * configure: Regenerate.
+ * Makefile.in: Regenerate.
+ * testsuite/Makefile.am: Add .EXPORT_ALL_VARIABLES.
+ * testsuite/Makefile.in: Regenerate.
+ * testsuite/debug_msg.sh: Delete duplicate tests.
+ Don't check undef_int error message match for powerpc where the
+ source file and line number aren't available.
2013-05-10 Roland McGrath <mcgrathr@google.com>
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
+MERGE_CONSTANTS_FLAG = @MERGE_CONSTANTS_FLAG@
MKDIR_P = @MKDIR_P@
MKINSTALLDIRS = @MKINSTALLDIRS@
MSGFMT = @MSGFMT@
STATIC_TLS_TRUE
TLS_FALSE
TLS_TRUE
+MERGE_CONSTANTS_FLAG
MCMODEL_MEDIUM_FALSE
MCMODEL_MEDIUM_TRUE
FN_PTRS_IN_SO_WITHOUT_PIC_FALSE
fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports -fmerge-constants" >&5
+$as_echo_n "checking whether $CC supports -fmerge-constants... " >&6; }
+if test "${gold_cv_merge_constants+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+
+save_CFLAGS="$CFLAGS"
+CFLAGS="$CFLAGS -fmerge-constants"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+const char *s = "foo";
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ have_merge_constants=yes
+else
+ have_merge_constants=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+CFLAGS="$save_CFLAGS"
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gold_cv_merge_constants" >&5
+$as_echo "$gold_cv_merge_constants" >&6; }
+
+if test "$gold_cv_merge_constants" = yes; then :
+ MERGE_CONSTANTS_FLAG=-fmerge-constants
+else
+ MERGE_CONSTANTS_FLAG=
+fi
+
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for thread support" >&5
$as_echo_n "checking for thread support... " >&6; }
if test "${gold_cv_c_thread+set}" = set; then :
dnl it under the terms of the GNU General Public License as published by
dnl the Free Software Foundation; either version 3 of the License, or
dnl (at your option) any later version.
-dnl
+dnl
dnl This program is distributed in the hope that it will be useful,
dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
dnl GNU General Public License for more details.
-dnl
+dnl
dnl You should have received a copy of the GNU General Public License
dnl along with this program; see the file COPYING3. If not see
dnl <http://www.gnu.org/licenses/>.
AM_CONDITIONAL(MCMODEL_MEDIUM,
[test "$target_cpu" = "x86_64" -a "$have_mcmodel_medium" = "yes" -a "$gold_cv_prog_gcc41" = "yes"])
+AC_CACHE_CHECK([whether $CC supports -fmerge-constants],
+ [gold_cv_merge_constants], [
+save_CFLAGS="$CFLAGS"
+CFLAGS="$CFLAGS -fmerge-constants"
+AC_COMPILE_IFELSE([const char *s = "foo";],
+ [have_merge_constants=yes],
+ [have_merge_constants=no])
+CFLAGS="$save_CFLAGS"])
+AC_SUBST([MERGE_CONSTANTS_FLAG])
+AS_IF([test "$gold_cv_merge_constants" = yes],
+ [MERGE_CONSTANTS_FLAG=-fmerge-constants],
+ [MERGE_CONSTANTS_FLAG=])
+
dnl Test for __thread support.
AC_CACHE_CHECK([for thread support], [gold_cv_c_thread],
[AC_COMPILE_IFELSE([__thread int i = 1;],
AUTOMAKE_OPTIONS = foreign -Wno-portability
# The two_file_test tests -fmerge-constants, so we simply always turn
-# it on. This may need to be controlled by a configure option
-# eventually.
-AM_CFLAGS = $(WARN_CFLAGS) $(LFS_CFLAGS) -fmerge-constants
-AM_CXXFLAGS = $(WARN_CXXFLAGS) $(LFS_CFLAGS) -fmerge-constants
+# it on. For compilers that do not support the command-line option,
+# we assume they just always emit SHF_MERGE sections unconditionally.
+AM_CFLAGS = $(WARN_CFLAGS) $(LFS_CFLAGS) $(MERGE_CONSTANTS_FLAG)
+AM_CXXFLAGS = $(WARN_CXXFLAGS) $(LFS_CFLAGS) $(MERGE_CONSTANTS_FLAG)
AM_CPPFLAGS = \
-I$(srcdir) -I$(srcdir)/.. -I$(srcdir)/../../include \
# Export make variables to the shell scripts so that they can see
# (for example) DEFAULT_TARGET.
.EXPORT_ALL_VARIABLES:
-
+
# We will add to these later, for each individual test. Note
# that we add each test under check_SCRIPTS or check_PROGRAMS;
# the TESTS variable is automatically populated from these.
check_SCRIPTS += gc_comdat_test.sh
check_DATA += gc_comdat_test.stdout
MOSTLYCLEANFILES += gc_comdat_test
-gc_comdat_test_1.o: gc_comdat_test_1.cc
+gc_comdat_test_1.o: gc_comdat_test_1.cc
$(CXXCOMPILE) -O0 -c -ffunction-sections -g -o $@ $<
-gc_comdat_test_2.o: gc_comdat_test_2.cc
+gc_comdat_test_2.o: gc_comdat_test_2.cc
$(CXXCOMPILE) -O0 -c -ffunction-sections -g -o $@ $<
gc_comdat_test: gc_comdat_test_1.o gc_comdat_test_2.o gcctestdir/ld
$(CXXLINK) -Bgcctestdir/ -Wl,--gc-sections gc_comdat_test_1.o gc_comdat_test_2.o
MOSTLYCLEANFILES += pr14265
pr14265.o: pr14265.c
$(COMPILE) -O0 -c -o $@ $<
-pr14265: pr14265.o
+pr14265: pr14265.o
$(LINK) -Bgcctestdir/ -Wl,--gc-sections -T $(srcdir)/pr14265.t -o $@ $<
pr14265.stdout: pr14265
$(TEST_NM) --format=bsd --numeric-sort $< > $@
check_SCRIPTS += icf_test.sh
check_DATA += icf_test.map
MOSTLYCLEANFILES += icf_test icf_test.map
-icf_test.o: icf_test.cc
+icf_test.o: icf_test.cc
$(CXXCOMPILE) -O0 -c -ffunction-sections -g -o $@ $<
icf_test: icf_test.o gcctestdir/ld
$(CXXLINK) -o icf_test -Bgcctestdir/ -Wl,--icf=all,-Map,icf_test.map icf_test.o
text_section_grouping.stdout: text_section_grouping
$(TEST_NM) -n --synthetic text_section_grouping > text_section_grouping.stdout
text_section_no_grouping.stdout: text_section_no_grouping
- $(TEST_NM) -n --synthetic text_section_no_grouping > text_section_no_grouping.stdout
+ $(TEST_NM) -n --synthetic text_section_no_grouping > text_section_no_grouping.stdout
check_SCRIPTS += section_sorting_name.sh
check_DATA += section_sorting_name.stdout
check_SCRIPTS += merge_string_literals.sh
check_DATA += merge_string_literals.stdout
MOSTLYCLEANFILES += merge_string_literals
-merge_string_literals_1.o: merge_string_literals_1.c
+merge_string_literals_1.o: merge_string_literals_1.cc
$(CXXCOMPILE) -O2 -c -fPIC -g -o $@ $<
-merge_string_literals_2.o: merge_string_literals_2.c
+merge_string_literals_2.o: merge_string_literals_2.cc
$(CXXCOMPILE) -O2 -c -fPIC -g -o $@ $<
merge_string_literals: merge_string_literals_1.o merge_string_literals_2.o gcctestdir/ld
$(CXXLINK) -Bgcctestdir/ merge_string_literals_1.o merge_string_literals_2.o -O2 -shared -nostdlib
echo '_ZN4t16bC1Ev' >> retain_symbols_file_test.in
echo '_ZNK4t20a3getEv' >> retain_symbols_file_test.in
echo '_Z3t18v' >> retain_symbols_file_test.in
- echo '__tcf_0' >> retain_symbols_file_test.in
+ echo '__tcf_0' >> retain_symbols_file_test.in
$(CXXLINK) -Bgcctestdir/ -shared -Wl,-retain-symbols-file,retain_symbols_file_test.in basic_pic_test.o
retain_symbols_file_test.stdout: retain_symbols_file_test.so
$(TEST_NM) -C retain_symbols_file_test.so > $@
test -d alt || mkdir -p alt
$(TEST_AR) rc $@ $^
-# Test that no .gnu.version sections are created when
+# Test that no .gnu.version sections are created when
# symbol versioning is not used.
check_SCRIPTS += no_version_test.sh
check_DATA += no_version_test.stdout
check_PROGRAMS += ifuncvar
ifuncvar1_pic.o: ifuncvar1.c
$(COMPILE) -c -fPIC -o $@ $<
-ifuncvar2_pic.o: ifuncvar2.c
+ifuncvar2_pic.o: ifuncvar2.c
$(COMPILE) -c -fPIC -o $@ $<
ifuncvar.so: ifuncvar1_pic.o ifuncvar2_pic.o gcctestdir/ld
$(LINK) -Bgcctestdir/ -shared ifuncvar1_pic.o ifuncvar2_pic.o
# Test -retain-symbols-file.
-# Test that no .gnu.version sections are created when
+# Test that no .gnu.version sections are created when
# symbol versioning is not used.
# Test that strong reference to a weak symbol in a DSO remains strong.
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAKEINFO = @MAKEINFO@
+MERGE_CONSTANTS_FLAG = @MERGE_CONSTANTS_FLAG@
MKDIR_P = @MKDIR_P@
MKINSTALLDIRS = @MKINSTALLDIRS@
MSGFMT = @MSGFMT@
AUTOMAKE_OPTIONS = foreign -Wno-portability
# The two_file_test tests -fmerge-constants, so we simply always turn
-# it on. This may need to be controlled by a configure option
-# eventually.
-AM_CFLAGS = $(WARN_CFLAGS) $(LFS_CFLAGS) -fmerge-constants
-AM_CXXFLAGS = $(WARN_CXXFLAGS) $(LFS_CFLAGS) -fmerge-constants
+# it on. For compilers that do not support the command-line option,
+# we assume they just always emit SHF_MERGE sections unconditionally.
+AM_CFLAGS = $(WARN_CFLAGS) $(LFS_CFLAGS) $(MERGE_CONSTANTS_FLAG)
+AM_CXXFLAGS = $(WARN_CXXFLAGS) $(LFS_CFLAGS) $(MERGE_CONSTANTS_FLAG)
AM_CPPFLAGS = \
-I$(srcdir) -I$(srcdir)/.. -I$(srcdir)/../../include \
-I$(srcdir)/../../elfcpp -I.. \
@GCC_TRUE@@NATIVE_LINKER_TRUE@ $(LINK) -Bgcctestdir/ -Wl,--incremental-full incremental_test_1.o incremental_test_2.o -Wl,-debug 2> incremental_test.cmdline
@GCC_TRUE@@NATIVE_LINKER_TRUE@incremental_test.stdout: incremental_test ../incremental-dump
@GCC_TRUE@@NATIVE_LINKER_TRUE@ ../incremental-dump incremental_test > $@
-@GCC_TRUE@@NATIVE_LINKER_TRUE@gc_comdat_test_1.o: gc_comdat_test_1.cc
+@GCC_TRUE@@NATIVE_LINKER_TRUE@gc_comdat_test_1.o: gc_comdat_test_1.cc
@GCC_TRUE@@NATIVE_LINKER_TRUE@ $(CXXCOMPILE) -O0 -c -ffunction-sections -g -o $@ $<
-@GCC_TRUE@@NATIVE_LINKER_TRUE@gc_comdat_test_2.o: gc_comdat_test_2.cc
+@GCC_TRUE@@NATIVE_LINKER_TRUE@gc_comdat_test_2.o: gc_comdat_test_2.cc
@GCC_TRUE@@NATIVE_LINKER_TRUE@ $(CXXCOMPILE) -O0 -c -ffunction-sections -g -o $@ $<
@GCC_TRUE@@NATIVE_LINKER_TRUE@gc_comdat_test: gc_comdat_test_1.o gc_comdat_test_2.o gcctestdir/ld
@GCC_TRUE@@NATIVE_LINKER_TRUE@ $(CXXLINK) -Bgcctestdir/ -Wl,--gc-sections gc_comdat_test_1.o gc_comdat_test_2.o
@GCC_TRUE@@NATIVE_LINKER_TRUE@ $(TEST_NM) gc_orphan_section_test > gc_orphan_section_test.stdout
@GCC_TRUE@@NATIVE_LINKER_TRUE@pr14265.o: pr14265.c
@GCC_TRUE@@NATIVE_LINKER_TRUE@ $(COMPILE) -O0 -c -o $@ $<
-@GCC_TRUE@@NATIVE_LINKER_TRUE@pr14265: pr14265.o
+@GCC_TRUE@@NATIVE_LINKER_TRUE@pr14265: pr14265.o
@GCC_TRUE@@NATIVE_LINKER_TRUE@ $(LINK) -Bgcctestdir/ -Wl,--gc-sections -T $(srcdir)/pr14265.t -o $@ $<
@GCC_TRUE@@NATIVE_LINKER_TRUE@pr14265.stdout: pr14265
@GCC_TRUE@@NATIVE_LINKER_TRUE@ $(TEST_NM) --format=bsd --numeric-sort $< > $@
-@GCC_TRUE@@NATIVE_LINKER_TRUE@icf_test.o: icf_test.cc
+@GCC_TRUE@@NATIVE_LINKER_TRUE@icf_test.o: icf_test.cc
@GCC_TRUE@@NATIVE_LINKER_TRUE@ $(CXXCOMPILE) -O0 -c -ffunction-sections -g -o $@ $<
@GCC_TRUE@@NATIVE_LINKER_TRUE@icf_test: icf_test.o gcctestdir/ld
@GCC_TRUE@@NATIVE_LINKER_TRUE@ $(CXXLINK) -o icf_test -Bgcctestdir/ -Wl,--icf=all,-Map,icf_test.map icf_test.o
@GCC_TRUE@@NATIVE_LINKER_TRUE@text_section_grouping.stdout: text_section_grouping
@GCC_TRUE@@NATIVE_LINKER_TRUE@ $(TEST_NM) -n --synthetic text_section_grouping > text_section_grouping.stdout
@GCC_TRUE@@NATIVE_LINKER_TRUE@text_section_no_grouping.stdout: text_section_no_grouping
-@GCC_TRUE@@NATIVE_LINKER_TRUE@ $(TEST_NM) -n --synthetic text_section_no_grouping > text_section_no_grouping.stdout
+@GCC_TRUE@@NATIVE_LINKER_TRUE@ $(TEST_NM) -n --synthetic text_section_no_grouping > text_section_no_grouping.stdout
@GCC_TRUE@@NATIVE_LINKER_TRUE@section_sorting_name.o: section_sorting_name.cc
@GCC_TRUE@@NATIVE_LINKER_TRUE@ $(CXXCOMPILE) -O0 -c -ffunction-sections -g -o $@ $<
@GCC_TRUE@@NATIVE_LINKER_TRUE@section_sorting_name: section_sorting_name.o gcctestdir/ld
@GCC_TRUE@@NATIVE_LINKER_TRUE@ $(CXXLINK) -Bgcctestdir/ -Wl,--icf=all icf_sht_rel_addend_test_1.o icf_sht_rel_addend_test_2.o
@GCC_TRUE@@NATIVE_LINKER_TRUE@icf_sht_rel_addend_test.stdout: icf_sht_rel_addend_test
@GCC_TRUE@@NATIVE_LINKER_TRUE@ $(TEST_NM) icf_sht_rel_addend_test > icf_sht_rel_addend_test.stdout
-@GCC_TRUE@@NATIVE_LINKER_TRUE@merge_string_literals_1.o: merge_string_literals_1.c
+@GCC_TRUE@@NATIVE_LINKER_TRUE@merge_string_literals_1.o: merge_string_literals_1.cc
@GCC_TRUE@@NATIVE_LINKER_TRUE@ $(CXXCOMPILE) -O2 -c -fPIC -g -o $@ $<
-@GCC_TRUE@@NATIVE_LINKER_TRUE@merge_string_literals_2.o: merge_string_literals_2.c
+@GCC_TRUE@@NATIVE_LINKER_TRUE@merge_string_literals_2.o: merge_string_literals_2.cc
@GCC_TRUE@@NATIVE_LINKER_TRUE@ $(CXXCOMPILE) -O2 -c -fPIC -g -o $@ $<
@GCC_TRUE@@NATIVE_LINKER_TRUE@merge_string_literals: merge_string_literals_1.o merge_string_literals_2.o gcctestdir/ld
@GCC_TRUE@@NATIVE_LINKER_TRUE@ $(CXXLINK) -Bgcctestdir/ merge_string_literals_1.o merge_string_literals_2.o -O2 -shared -nostdlib
@GCC_TRUE@@NATIVE_LINKER_TRUE@ echo '_ZN4t16bC1Ev' >> retain_symbols_file_test.in
@GCC_TRUE@@NATIVE_LINKER_TRUE@ echo '_ZNK4t20a3getEv' >> retain_symbols_file_test.in
@GCC_TRUE@@NATIVE_LINKER_TRUE@ echo '_Z3t18v' >> retain_symbols_file_test.in
-@GCC_TRUE@@NATIVE_LINKER_TRUE@ echo '__tcf_0' >> retain_symbols_file_test.in
+@GCC_TRUE@@NATIVE_LINKER_TRUE@ echo '__tcf_0' >> retain_symbols_file_test.in
@GCC_TRUE@@NATIVE_LINKER_TRUE@ $(CXXLINK) -Bgcctestdir/ -shared -Wl,-retain-symbols-file,retain_symbols_file_test.in basic_pic_test.o
@GCC_TRUE@@NATIVE_LINKER_TRUE@retain_symbols_file_test.stdout: retain_symbols_file_test.so
@GCC_TRUE@@NATIVE_LINKER_TRUE@ $(TEST_NM) -C retain_symbols_file_test.so > $@
@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@ $(LINK) -Bgcctestdir/ -pie ifuncmain7pie.o
@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@ifuncvar1_pic.o: ifuncvar1.c
@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@ $(COMPILE) -c -fPIC -o $@ $<
-@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@ifuncvar2_pic.o: ifuncvar2.c
+@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@ifuncvar2_pic.o: ifuncvar2.c
@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@ $(COMPILE) -c -fPIC -o $@ $<
@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@ifuncvar.so: ifuncvar1_pic.o ifuncvar2_pic.o gcctestdir/ld
@GCC_TRUE@@IFUNC_TRUE@@NATIVE_LINKER_TRUE@ $(LINK) -Bgcctestdir/ -shared ifuncvar1_pic.o ifuncvar2_pic.o