Sync libiberty from GCC, replaying updates to configure scripts

This commit is contained in:
Iain Buclaw 2015-06-24 21:43:02 +02:00
parent 59cab53283
commit f91ca6bc00
19 changed files with 1404 additions and 605 deletions

View File

@ -21,6 +21,13 @@
(sim_release): Pass gdb as fifth parameter to tar_compress. (sim_release): Pass gdb as fifth parameter to tar_compress.
(SIM_SUPPORT_DIRS): Add gdb/common/create-version.sh. (SIM_SUPPORT_DIRS): Add gdb/common/create-version.sh.
2015-04-14 Max Ostapenko <m.ostapenko@partner.samsung.com>
* Makefile.tpl (EXTRA_HOST_EXPORTS): New variables.
(EXTRA_BOOTSTRAP_FLAGS): Likewise.
(check-[+module+]): Add EXTRA_HOST_EXPORTS and EXTRA_BOOTSTRAP_FLAGS.
* Makefile.in: Regenerate.
2015-04-01 H.J. Lu <hongjiu.lu@intel.com> 2015-04-01 H.J. Lu <hongjiu.lu@intel.com>
* configure.ac: Add --with-system-zlib. * configure.ac: Add --with-system-zlib.

View File

@ -833,6 +833,14 @@ POSTSTAGE1_FLAGS_TO_PASS = \
$(LTO_FLAGS_TO_PASS) \ $(LTO_FLAGS_TO_PASS) \
"`echo 'ADAFLAGS=$(BOOT_ADAFLAGS)' | sed -e s'/[^=][^=]*=$$/XFOO=/'`" "`echo 'ADAFLAGS=$(BOOT_ADAFLAGS)' | sed -e s'/[^=][^=]*=$$/XFOO=/'`"
@if gcc-bootstrap
EXTRA_HOST_EXPORTS = if [ $(current_stage) != stage1 ]; then \
$(POSTSTAGE1_HOST_EXPORTS) \
fi ;
EXTRA_BOOTSTRAP_FLAGS = CC="$$CC" CXX="$$CXX" LDFLAGS="$$LDFLAGS"
@endif gcc-bootstrap
# Flags to pass down to makes which are built with the target environment. # Flags to pass down to makes which are built with the target environment.
# The double $ decreases the length of the command line; those variables # The double $ decreases the length of the command line; those variables
# are set in BASE_FLAGS_TO_PASS, and the sub-make will expand them. The # are set in BASE_FLAGS_TO_PASS, and the sub-make will expand them. The
@ -3651,9 +3659,9 @@ check-bfd:
@: $(MAKE); $(unstage) @: $(MAKE); $(unstage)
@r=`${PWD_COMMAND}`; export r; \ @r=`${PWD_COMMAND}`; export r; \
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(HOST_EXPORTS) \ $(HOST_EXPORTS) $(EXTRA_HOST_EXPORTS) \
(cd $(HOST_SUBDIR)/bfd && \ (cd $(HOST_SUBDIR)/bfd && \
$(MAKE) $(FLAGS_TO_PASS) check) $(MAKE) $(FLAGS_TO_PASS) $(EXTRA_BOOTSTRAP_FLAGS) check)
@endif bfd @endif bfd
@ -4525,9 +4533,9 @@ check-opcodes:
@: $(MAKE); $(unstage) @: $(MAKE); $(unstage)
@r=`${PWD_COMMAND}`; export r; \ @r=`${PWD_COMMAND}`; export r; \
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(HOST_EXPORTS) \ $(HOST_EXPORTS) $(EXTRA_HOST_EXPORTS) \
(cd $(HOST_SUBDIR)/opcodes && \ (cd $(HOST_SUBDIR)/opcodes && \
$(MAKE) $(FLAGS_TO_PASS) check) $(MAKE) $(FLAGS_TO_PASS) $(EXTRA_BOOTSTRAP_FLAGS) check)
@endif opcodes @endif opcodes
@ -5399,9 +5407,9 @@ check-binutils:
@: $(MAKE); $(unstage) @: $(MAKE); $(unstage)
@r=`${PWD_COMMAND}`; export r; \ @r=`${PWD_COMMAND}`; export r; \
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(HOST_EXPORTS) \ $(HOST_EXPORTS) $(EXTRA_HOST_EXPORTS) \
(cd $(HOST_SUBDIR)/binutils && \ (cd $(HOST_SUBDIR)/binutils && \
$(MAKE) $(FLAGS_TO_PASS) check) $(MAKE) $(FLAGS_TO_PASS) $(EXTRA_BOOTSTRAP_FLAGS) check)
@endif binutils @endif binutils
@ -5829,9 +5837,9 @@ check-bison:
@if [ '$(host)' = '$(target)' ] ; then \ @if [ '$(host)' = '$(target)' ] ; then \
r=`${PWD_COMMAND}`; export r; \ r=`${PWD_COMMAND}`; export r; \
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(HOST_EXPORTS) \ $(HOST_EXPORTS) \
(cd $(HOST_SUBDIR)/bison && \ (cd $(HOST_SUBDIR)/bison && \
$(MAKE) $(FLAGS_TO_PASS) check); \ $(MAKE) $(FLAGS_TO_PASS) check)
fi fi
@endif bison @endif bison
@ -6271,7 +6279,7 @@ check-cgen:
@: $(MAKE); $(unstage) @: $(MAKE); $(unstage)
@r=`${PWD_COMMAND}`; export r; \ @r=`${PWD_COMMAND}`; export r; \
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(HOST_EXPORTS) \ $(HOST_EXPORTS) \
(cd $(HOST_SUBDIR)/cgen && \ (cd $(HOST_SUBDIR)/cgen && \
$(MAKE) $(FLAGS_TO_PASS) check) $(MAKE) $(FLAGS_TO_PASS) check)
@ -6712,7 +6720,7 @@ check-dejagnu:
@: $(MAKE); $(unstage) @: $(MAKE); $(unstage)
@r=`${PWD_COMMAND}`; export r; \ @r=`${PWD_COMMAND}`; export r; \
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(HOST_EXPORTS) \ $(HOST_EXPORTS) \
(cd $(HOST_SUBDIR)/dejagnu && \ (cd $(HOST_SUBDIR)/dejagnu && \
$(MAKE) $(FLAGS_TO_PASS) check) $(MAKE) $(FLAGS_TO_PASS) check)
@ -7153,7 +7161,7 @@ check-etc:
@: $(MAKE); $(unstage) @: $(MAKE); $(unstage)
@r=`${PWD_COMMAND}`; export r; \ @r=`${PWD_COMMAND}`; export r; \
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(HOST_EXPORTS) \ $(HOST_EXPORTS) \
(cd $(HOST_SUBDIR)/etc && \ (cd $(HOST_SUBDIR)/etc && \
$(MAKE) $(FLAGS_TO_PASS) check) $(MAKE) $(FLAGS_TO_PASS) check)
@ -7596,9 +7604,9 @@ check-fastjar:
@if [ '$(host)' = '$(target)' ] ; then \ @if [ '$(host)' = '$(target)' ] ; then \
r=`${PWD_COMMAND}`; export r; \ r=`${PWD_COMMAND}`; export r; \
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(HOST_EXPORTS) \ $(HOST_EXPORTS) \
(cd $(HOST_SUBDIR)/fastjar && \ (cd $(HOST_SUBDIR)/fastjar && \
$(MAKE) $(FLAGS_TO_PASS) check); \ $(MAKE) $(FLAGS_TO_PASS) check)
fi fi
@endif fastjar @endif fastjar
@ -8484,9 +8492,9 @@ check-fixincludes:
@: $(MAKE); $(unstage) @: $(MAKE); $(unstage)
@r=`${PWD_COMMAND}`; export r; \ @r=`${PWD_COMMAND}`; export r; \
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(HOST_EXPORTS) \ $(HOST_EXPORTS) $(EXTRA_HOST_EXPORTS) \
(cd $(HOST_SUBDIR)/fixincludes && \ (cd $(HOST_SUBDIR)/fixincludes && \
$(MAKE) $(FLAGS_TO_PASS) check) $(MAKE) $(FLAGS_TO_PASS) $(EXTRA_BOOTSTRAP_FLAGS) check)
@endif fixincludes @endif fixincludes
@ -8899,9 +8907,9 @@ check-flex:
@if [ '$(host)' = '$(target)' ] ; then \ @if [ '$(host)' = '$(target)' ] ; then \
r=`${PWD_COMMAND}`; export r; \ r=`${PWD_COMMAND}`; export r; \
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(HOST_EXPORTS) \ $(HOST_EXPORTS) \
(cd $(HOST_SUBDIR)/flex && \ (cd $(HOST_SUBDIR)/flex && \
$(MAKE) $(FLAGS_TO_PASS) check); \ $(MAKE) $(FLAGS_TO_PASS) check)
fi fi
@endif flex @endif flex
@ -9787,9 +9795,9 @@ check-gas:
@: $(MAKE); $(unstage) @: $(MAKE); $(unstage)
@r=`${PWD_COMMAND}`; export r; \ @r=`${PWD_COMMAND}`; export r; \
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(HOST_EXPORTS) \ $(HOST_EXPORTS) $(EXTRA_HOST_EXPORTS) \
(cd $(HOST_SUBDIR)/gas && \ (cd $(HOST_SUBDIR)/gas && \
$(MAKE) $(FLAGS_TO_PASS) check) $(MAKE) $(FLAGS_TO_PASS) $(EXTRA_BOOTSTRAP_FLAGS) check)
@endif gas @endif gas
@ -10661,9 +10669,9 @@ check-gcc:
@: $(MAKE); $(unstage) @: $(MAKE); $(unstage)
@r=`${PWD_COMMAND}`; export r; \ @r=`${PWD_COMMAND}`; export r; \
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(HOST_EXPORTS) \ $(HOST_EXPORTS) $(EXTRA_HOST_EXPORTS) \
(cd $(HOST_SUBDIR)/gcc && \ (cd $(HOST_SUBDIR)/gcc && \
$(MAKE) $(FLAGS_TO_PASS) $(EXTRA_GCC_FLAGS) check) $(MAKE) $(FLAGS_TO_PASS) $(EXTRA_GCC_FLAGS) $(EXTRA_BOOTSTRAP_FLAGS) check)
@endif gcc @endif gcc
@ -11541,9 +11549,9 @@ check-gmp:
@: $(MAKE); $(unstage) @: $(MAKE); $(unstage)
@r=`${PWD_COMMAND}`; export r; \ @r=`${PWD_COMMAND}`; export r; \
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(HOST_EXPORTS) \ $(HOST_EXPORTS) $(EXTRA_HOST_EXPORTS) \
(cd $(HOST_SUBDIR)/gmp && \ (cd $(HOST_SUBDIR)/gmp && \
$(MAKE) $(FLAGS_TO_PASS) check) $(MAKE) $(FLAGS_TO_PASS) $(EXTRA_BOOTSTRAP_FLAGS) check)
@endif gmp @endif gmp
@ -12409,9 +12417,9 @@ check-mpfr:
@: $(MAKE); $(unstage) @: $(MAKE); $(unstage)
@r=`${PWD_COMMAND}`; export r; \ @r=`${PWD_COMMAND}`; export r; \
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(HOST_EXPORTS) \ $(HOST_EXPORTS) $(EXTRA_HOST_EXPORTS) \
(cd $(HOST_SUBDIR)/mpfr && \ (cd $(HOST_SUBDIR)/mpfr && \
$(MAKE) $(FLAGS_TO_PASS) check) $(MAKE) $(FLAGS_TO_PASS) $(EXTRA_BOOTSTRAP_FLAGS) check)
@endif mpfr @endif mpfr
@ -13277,9 +13285,9 @@ check-mpc:
@: $(MAKE); $(unstage) @: $(MAKE); $(unstage)
@r=`${PWD_COMMAND}`; export r; \ @r=`${PWD_COMMAND}`; export r; \
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(HOST_EXPORTS) \ $(HOST_EXPORTS) $(EXTRA_HOST_EXPORTS) \
(cd $(HOST_SUBDIR)/mpc && \ (cd $(HOST_SUBDIR)/mpc && \
$(MAKE) $(FLAGS_TO_PASS) check) $(MAKE) $(FLAGS_TO_PASS) $(EXTRA_BOOTSTRAP_FLAGS) check)
@endif mpc @endif mpc
@ -14145,9 +14153,9 @@ check-isl:
@: $(MAKE); $(unstage) @: $(MAKE); $(unstage)
@r=`${PWD_COMMAND}`; export r; \ @r=`${PWD_COMMAND}`; export r; \
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(HOST_EXPORTS) \ $(HOST_EXPORTS) $(EXTRA_HOST_EXPORTS) \
(cd $(HOST_SUBDIR)/isl && \ (cd $(HOST_SUBDIR)/isl && \
$(MAKE) $(FLAGS_TO_PASS) V=1 check) $(MAKE) $(FLAGS_TO_PASS) V=1 $(EXTRA_BOOTSTRAP_FLAGS) check)
@endif isl @endif isl
@ -15013,9 +15021,9 @@ check-libelf:
@: $(MAKE); $(unstage) @: $(MAKE); $(unstage)
@r=`${PWD_COMMAND}`; export r; \ @r=`${PWD_COMMAND}`; export r; \
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(HOST_EXPORTS) \ $(HOST_EXPORTS) $(EXTRA_HOST_EXPORTS) \
(cd $(HOST_SUBDIR)/libelf && \ (cd $(HOST_SUBDIR)/libelf && \
$(MAKE) $(FLAGS_TO_PASS) check) $(MAKE) $(FLAGS_TO_PASS) $(EXTRA_BOOTSTRAP_FLAGS) check)
@endif libelf @endif libelf
@ -15875,9 +15883,9 @@ check-gold:
@: $(MAKE); $(unstage) @: $(MAKE); $(unstage)
@r=`${PWD_COMMAND}`; export r; \ @r=`${PWD_COMMAND}`; export r; \
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(HOST_EXPORTS) \ $(HOST_EXPORTS) $(EXTRA_HOST_EXPORTS) \
(cd $(HOST_SUBDIR)/gold && \ (cd $(HOST_SUBDIR)/gold && \
$(MAKE) $(FLAGS_TO_PASS) check) $(MAKE) $(FLAGS_TO_PASS) $(EXTRA_BOOTSTRAP_FLAGS) check)
@endif gold @endif gold
@ -16303,7 +16311,7 @@ check-gprof:
@: $(MAKE); $(unstage) @: $(MAKE); $(unstage)
@r=`${PWD_COMMAND}`; export r; \ @r=`${PWD_COMMAND}`; export r; \
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(HOST_EXPORTS) \ $(HOST_EXPORTS) \
(cd $(HOST_SUBDIR)/gprof && \ (cd $(HOST_SUBDIR)/gprof && \
$(MAKE) $(FLAGS_TO_PASS) check) $(MAKE) $(FLAGS_TO_PASS) check)
@ -17190,9 +17198,9 @@ check-intl:
@: $(MAKE); $(unstage) @: $(MAKE); $(unstage)
@r=`${PWD_COMMAND}`; export r; \ @r=`${PWD_COMMAND}`; export r; \
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(HOST_EXPORTS) \ $(HOST_EXPORTS) $(EXTRA_HOST_EXPORTS) \
(cd $(HOST_SUBDIR)/intl && \ (cd $(HOST_SUBDIR)/intl && \
$(MAKE) $(FLAGS_TO_PASS) check) $(MAKE) $(FLAGS_TO_PASS) $(EXTRA_BOOTSTRAP_FLAGS) check)
@endif intl @endif intl
@ -17618,7 +17626,7 @@ check-tcl:
@: $(MAKE); $(unstage) @: $(MAKE); $(unstage)
@r=`${PWD_COMMAND}`; export r; \ @r=`${PWD_COMMAND}`; export r; \
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(HOST_EXPORTS) \ $(HOST_EXPORTS) \
(cd $(HOST_SUBDIR)/tcl && \ (cd $(HOST_SUBDIR)/tcl && \
$(MAKE) $(FLAGS_TO_PASS) check) $(MAKE) $(FLAGS_TO_PASS) check)
@ -18044,7 +18052,7 @@ check-itcl:
@: $(MAKE); $(unstage) @: $(MAKE); $(unstage)
@r=`${PWD_COMMAND}`; export r; \ @r=`${PWD_COMMAND}`; export r; \
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(HOST_EXPORTS) \ $(HOST_EXPORTS) \
(cd $(HOST_SUBDIR)/itcl && \ (cd $(HOST_SUBDIR)/itcl && \
$(MAKE) $(FLAGS_TO_PASS) check) $(MAKE) $(FLAGS_TO_PASS) check)
@ -18931,9 +18939,9 @@ check-ld:
@: $(MAKE); $(unstage) @: $(MAKE); $(unstage)
@r=`${PWD_COMMAND}`; export r; \ @r=`${PWD_COMMAND}`; export r; \
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(HOST_EXPORTS) \ $(HOST_EXPORTS) $(EXTRA_HOST_EXPORTS) \
(cd $(HOST_SUBDIR)/ld && \ (cd $(HOST_SUBDIR)/ld && \
$(MAKE) $(FLAGS_TO_PASS) check) $(MAKE) $(FLAGS_TO_PASS) $(EXTRA_BOOTSTRAP_FLAGS) check)
@endif ld @endif ld
@ -19805,9 +19813,9 @@ check-libbacktrace:
@: $(MAKE); $(unstage) @: $(MAKE); $(unstage)
@r=`${PWD_COMMAND}`; export r; \ @r=`${PWD_COMMAND}`; export r; \
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(HOST_EXPORTS) \ $(HOST_EXPORTS) $(EXTRA_HOST_EXPORTS) \
(cd $(HOST_SUBDIR)/libbacktrace && \ (cd $(HOST_SUBDIR)/libbacktrace && \
$(MAKE) $(FLAGS_TO_PASS) check) $(MAKE) $(FLAGS_TO_PASS) $(EXTRA_BOOTSTRAP_FLAGS) check)
@endif libbacktrace @endif libbacktrace
@ -20679,9 +20687,9 @@ check-libcpp:
@: $(MAKE); $(unstage) @: $(MAKE); $(unstage)
@r=`${PWD_COMMAND}`; export r; \ @r=`${PWD_COMMAND}`; export r; \
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(HOST_EXPORTS) \ $(HOST_EXPORTS) $(EXTRA_HOST_EXPORTS) \
(cd $(HOST_SUBDIR)/libcpp && \ (cd $(HOST_SUBDIR)/libcpp && \
$(MAKE) $(FLAGS_TO_PASS) check) $(MAKE) $(FLAGS_TO_PASS) $(EXTRA_BOOTSTRAP_FLAGS) check)
@endif libcpp @endif libcpp
@ -21553,9 +21561,9 @@ check-libdecnumber:
@: $(MAKE); $(unstage) @: $(MAKE); $(unstage)
@r=`${PWD_COMMAND}`; export r; \ @r=`${PWD_COMMAND}`; export r; \
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(HOST_EXPORTS) \ $(HOST_EXPORTS) $(EXTRA_HOST_EXPORTS) \
(cd $(HOST_SUBDIR)/libdecnumber && \ (cd $(HOST_SUBDIR)/libdecnumber && \
$(MAKE) $(FLAGS_TO_PASS) check) $(MAKE) $(FLAGS_TO_PASS) $(EXTRA_BOOTSTRAP_FLAGS) check)
@endif libdecnumber @endif libdecnumber
@ -21981,7 +21989,7 @@ check-libgui:
@: $(MAKE); $(unstage) @: $(MAKE); $(unstage)
@r=`${PWD_COMMAND}`; export r; \ @r=`${PWD_COMMAND}`; export r; \
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(HOST_EXPORTS) \ $(HOST_EXPORTS) \
(cd $(HOST_SUBDIR)/libgui && \ (cd $(HOST_SUBDIR)/libgui && \
$(MAKE) $(FLAGS_TO_PASS) check) $(MAKE) $(FLAGS_TO_PASS) check)
@ -22874,9 +22882,9 @@ check-libiberty:
@: $(MAKE); $(unstage) @: $(MAKE); $(unstage)
@r=`${PWD_COMMAND}`; export r; \ @r=`${PWD_COMMAND}`; export r; \
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(HOST_EXPORTS) \ $(HOST_EXPORTS) $(EXTRA_HOST_EXPORTS) \
(cd $(HOST_SUBDIR)/libiberty && \ (cd $(HOST_SUBDIR)/libiberty && \
$(MAKE) $(FLAGS_TO_PASS) check) $(MAKE) $(FLAGS_TO_PASS) $(EXTRA_BOOTSTRAP_FLAGS) check)
@endif libiberty @endif libiberty
@ -23754,9 +23762,9 @@ check-libiberty-linker-plugin:
@: $(MAKE); $(unstage) @: $(MAKE); $(unstage)
@r=`${PWD_COMMAND}`; export r; \ @r=`${PWD_COMMAND}`; export r; \
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(HOST_EXPORTS) \ $(HOST_EXPORTS) $(EXTRA_HOST_EXPORTS) \
(cd $(HOST_SUBDIR)/libiberty-linker-plugin && \ (cd $(HOST_SUBDIR)/libiberty-linker-plugin && \
$(MAKE) $(FLAGS_TO_PASS) @extra_linker_plugin_flags@ check) $(MAKE) $(FLAGS_TO_PASS) @extra_linker_plugin_flags@ $(EXTRA_BOOTSTRAP_FLAGS) check)
@endif libiberty-linker-plugin @endif libiberty-linker-plugin
@ -24182,7 +24190,7 @@ check-libiconv:
@: $(MAKE); $(unstage) @: $(MAKE); $(unstage)
@r=`${PWD_COMMAND}`; export r; \ @r=`${PWD_COMMAND}`; export r; \
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(HOST_EXPORTS) \ $(HOST_EXPORTS) \
(cd $(HOST_SUBDIR)/libiconv && \ (cd $(HOST_SUBDIR)/libiconv && \
$(MAKE) $(FLAGS_TO_PASS) check) $(MAKE) $(FLAGS_TO_PASS) check)
@ -24560,7 +24568,7 @@ check-m4:
@: $(MAKE); $(unstage) @: $(MAKE); $(unstage)
@r=`${PWD_COMMAND}`; export r; \ @r=`${PWD_COMMAND}`; export r; \
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(HOST_EXPORTS) \ $(HOST_EXPORTS) \
(cd $(HOST_SUBDIR)/m4 && \ (cd $(HOST_SUBDIR)/m4 && \
$(MAKE) $(FLAGS_TO_PASS) check) $(MAKE) $(FLAGS_TO_PASS) check)
@ -25001,7 +25009,7 @@ check-readline:
@: $(MAKE); $(unstage) @: $(MAKE); $(unstage)
@r=`${PWD_COMMAND}`; export r; \ @r=`${PWD_COMMAND}`; export r; \
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(HOST_EXPORTS) \ $(HOST_EXPORTS) \
(cd $(HOST_SUBDIR)/readline && \ (cd $(HOST_SUBDIR)/readline && \
$(MAKE) $(FLAGS_TO_PASS) check) $(MAKE) $(FLAGS_TO_PASS) check)
@ -25442,7 +25450,7 @@ check-sid:
@: $(MAKE); $(unstage) @: $(MAKE); $(unstage)
@r=`${PWD_COMMAND}`; export r; \ @r=`${PWD_COMMAND}`; export r; \
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(HOST_EXPORTS) \ $(HOST_EXPORTS) \
(cd $(HOST_SUBDIR)/sid && \ (cd $(HOST_SUBDIR)/sid && \
$(MAKE) $(FLAGS_TO_PASS) check) $(MAKE) $(FLAGS_TO_PASS) check)
@ -25883,7 +25891,7 @@ check-sim:
@: $(MAKE); $(unstage) @: $(MAKE); $(unstage)
@r=`${PWD_COMMAND}`; export r; \ @r=`${PWD_COMMAND}`; export r; \
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(HOST_EXPORTS) \ $(HOST_EXPORTS) \
(cd $(HOST_SUBDIR)/sim && \ (cd $(HOST_SUBDIR)/sim && \
$(MAKE) $(FLAGS_TO_PASS) check) $(MAKE) $(FLAGS_TO_PASS) check)
@ -26324,7 +26332,7 @@ check-texinfo:
@: $(MAKE); $(unstage) @: $(MAKE); $(unstage)
@r=`${PWD_COMMAND}`; export r; \ @r=`${PWD_COMMAND}`; export r; \
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(HOST_EXPORTS) \ $(HOST_EXPORTS) \
(cd $(HOST_SUBDIR)/texinfo && \ (cd $(HOST_SUBDIR)/texinfo && \
$(MAKE) $(FLAGS_TO_PASS) check) $(MAKE) $(FLAGS_TO_PASS) check)
@ -27615,7 +27623,7 @@ check-gdb:
@: $(MAKE); $(unstage) @: $(MAKE); $(unstage)
@r=`${PWD_COMMAND}`; export r; \ @r=`${PWD_COMMAND}`; export r; \
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(HOST_EXPORTS) \ $(HOST_EXPORTS) \
(cd $(HOST_SUBDIR)/gdb && \ (cd $(HOST_SUBDIR)/gdb && \
$(MAKE) $(FLAGS_TO_PASS) check) $(MAKE) $(FLAGS_TO_PASS) check)
@ -28056,7 +28064,7 @@ check-expect:
@: $(MAKE); $(unstage) @: $(MAKE); $(unstage)
@r=`${PWD_COMMAND}`; export r; \ @r=`${PWD_COMMAND}`; export r; \
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(HOST_EXPORTS) \ $(HOST_EXPORTS) \
(cd $(HOST_SUBDIR)/expect && \ (cd $(HOST_SUBDIR)/expect && \
$(MAKE) $(FLAGS_TO_PASS) check) $(MAKE) $(FLAGS_TO_PASS) check)
@ -28497,7 +28505,7 @@ check-guile:
@: $(MAKE); $(unstage) @: $(MAKE); $(unstage)
@r=`${PWD_COMMAND}`; export r; \ @r=`${PWD_COMMAND}`; export r; \
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(HOST_EXPORTS) \ $(HOST_EXPORTS) \
(cd $(HOST_SUBDIR)/guile && \ (cd $(HOST_SUBDIR)/guile && \
$(MAKE) $(FLAGS_TO_PASS) check) $(MAKE) $(FLAGS_TO_PASS) check)
@ -28938,7 +28946,7 @@ check-tk:
@: $(MAKE); $(unstage) @: $(MAKE); $(unstage)
@r=`${PWD_COMMAND}`; export r; \ @r=`${PWD_COMMAND}`; export r; \
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(HOST_EXPORTS) \ $(HOST_EXPORTS) \
(cd $(HOST_SUBDIR)/tk && \ (cd $(HOST_SUBDIR)/tk && \
$(MAKE) $(FLAGS_TO_PASS) check) $(MAKE) $(FLAGS_TO_PASS) check)
@ -30189,7 +30197,7 @@ check-gnattools:
@: $(MAKE); $(unstage) @: $(MAKE); $(unstage)
@r=`${PWD_COMMAND}`; export r; \ @r=`${PWD_COMMAND}`; export r; \
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(HOST_EXPORTS) \ $(HOST_EXPORTS) \
(cd $(HOST_SUBDIR)/gnattools && \ (cd $(HOST_SUBDIR)/gnattools && \
$(MAKE) $(FLAGS_TO_PASS) check) $(MAKE) $(FLAGS_TO_PASS) check)
@ -31082,9 +31090,9 @@ check-lto-plugin:
@: $(MAKE); $(unstage) @: $(MAKE); $(unstage)
@r=`${PWD_COMMAND}`; export r; \ @r=`${PWD_COMMAND}`; export r; \
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(HOST_EXPORTS) \ $(HOST_EXPORTS) $(EXTRA_HOST_EXPORTS) \
(cd $(HOST_SUBDIR)/lto-plugin && \ (cd $(HOST_SUBDIR)/lto-plugin && \
$(MAKE) $(FLAGS_TO_PASS) @extra_linker_plugin_flags@ check) $(MAKE) $(FLAGS_TO_PASS) @extra_linker_plugin_flags@ $(EXTRA_BOOTSTRAP_FLAGS) check)
@endif lto-plugin @endif lto-plugin
@ -31510,7 +31518,7 @@ check-libcc1:
@: $(MAKE); $(unstage) @: $(MAKE); $(unstage)
@r=`${PWD_COMMAND}`; export r; \ @r=`${PWD_COMMAND}`; export r; \
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(HOST_EXPORTS) \ $(HOST_EXPORTS) \
(cd $(HOST_SUBDIR)/libcc1 && \ (cd $(HOST_SUBDIR)/libcc1 && \
$(MAKE) $(FLAGS_TO_PASS) check) $(MAKE) $(FLAGS_TO_PASS) check)
@ -31951,7 +31959,7 @@ check-gotools:
@: $(MAKE); $(unstage) @: $(MAKE); $(unstage)
@r=`${PWD_COMMAND}`; export r; \ @r=`${PWD_COMMAND}`; export r; \
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(HOST_EXPORTS) \ $(HOST_EXPORTS) \
(cd $(HOST_SUBDIR)/gotools && \ (cd $(HOST_SUBDIR)/gotools && \
$(MAKE) $(FLAGS_TO_PASS) check) $(MAKE) $(FLAGS_TO_PASS) check)

View File

@ -634,6 +634,14 @@ POSTSTAGE1_FLAGS_TO_PASS = \
$(LTO_FLAGS_TO_PASS) \ $(LTO_FLAGS_TO_PASS) \
"`echo 'ADAFLAGS=$(BOOT_ADAFLAGS)' | sed -e s'/[^=][^=]*=$$/XFOO=/'`" "`echo 'ADAFLAGS=$(BOOT_ADAFLAGS)' | sed -e s'/[^=][^=]*=$$/XFOO=/'`"
@if gcc-bootstrap
EXTRA_HOST_EXPORTS = if [ $(current_stage) != stage1 ]; then \
$(POSTSTAGE1_HOST_EXPORTS) \
fi ;
EXTRA_BOOTSTRAP_FLAGS = CC="$$CC" CXX="$$CXX" LDFLAGS="$$LDFLAGS"
@endif gcc-bootstrap
# Flags to pass down to makes which are built with the target environment. # Flags to pass down to makes which are built with the target environment.
# The double $ decreases the length of the command line; those variables # The double $ decreases the length of the command line; those variables
# are set in BASE_FLAGS_TO_PASS, and the sub-make will expand them. The # are set in BASE_FLAGS_TO_PASS, and the sub-make will expand them. The
@ -1203,18 +1211,22 @@ check-[+module+]:
@if [ '$(host)' = '$(target)' ] ; then \ @if [ '$(host)' = '$(target)' ] ; then \
r=`${PWD_COMMAND}`; export r; \ r=`${PWD_COMMAND}`; export r; \
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(HOST_EXPORTS) \ $(HOST_EXPORTS) [+ IF bootstrap +]$(EXTRA_HOST_EXPORTS)[+
ENDIF bootstrap +] \
(cd $(HOST_SUBDIR)/[+module+] && \ (cd $(HOST_SUBDIR)/[+module+] && \
$(MAKE) $(FLAGS_TO_PASS) [+extra_make_flags+] check); \ $(MAKE) $(FLAGS_TO_PASS) [+extra_make_flags+][+
IF bootstrap +] $(EXTRA_BOOTSTRAP_FLAGS)[+ ENDIF bootstrap +] check)
fi fi
[+ ELSE check +] [+ ELSE check +]
check-[+module+]: check-[+module+]:
@: $(MAKE); $(unstage) @: $(MAKE); $(unstage)
@r=`${PWD_COMMAND}`; export r; \ @r=`${PWD_COMMAND}`; export r; \
s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
$(HOST_EXPORTS) \ $(HOST_EXPORTS) [+ IF bootstrap +]$(EXTRA_HOST_EXPORTS)[+
ENDIF bootstrap +] \
(cd $(HOST_SUBDIR)/[+module+] && \ (cd $(HOST_SUBDIR)/[+module+] && \
$(MAKE) $(FLAGS_TO_PASS) [+extra_make_flags+] check) $(MAKE) $(FLAGS_TO_PASS) [+extra_make_flags+][+
IF bootstrap +] $(EXTRA_BOOTSTRAP_FLAGS)[+ ENDIF bootstrap +] check)
[+ ENDIF no_check +] [+ ENDIF no_check +]
@endif [+module+] @endif [+module+]

View File

@ -1,3 +1,18 @@
2015-04-10 Jakub Jelinek <jakub@redhat.com>
Iain Sandoe <iain@codesourcery.com>
PR target/65351
* mh-darwin: Only apply -mdynamic-no-pic for m32 Darwin when the
compiler in use supports -mno-dynamic-no-pic.
* picflag.m4: Only append -mno-dynamic-no-pic for Darwin when
-mdynamic-no-pic is present in CFLAGS.
2015-04-07 Jakub Jelinek <jakub@redhat.com>
Iain Sandoe <iain@codesourcery.com>
PR target/65351
* picflag.m4: Append -mno-dynamic-no-pic for Darwin.
2015-04-02 H.J. Lu <hongjiu.lu@intel.com> 2015-04-02 H.J. Lu <hongjiu.lu@intel.com>
* zlib.m4 (AM_ZLIB): Set zlibdir to -L\$(top_builddir)/../zlib * zlib.m4 (AM_ZLIB): Set zlibdir to -L\$(top_builddir)/../zlib

View File

@ -1,18 +1,29 @@
# The -mdynamic-no-pic ensures that the compiler executable is built without # The -mdynamic-no-pic ensures that the compiler executable is built without
# position-independent-code -- the usual default on Darwin. This fix speeds # position-independent-code -- the usual default on Darwin. This fix speeds
# compiles by 3-5%. # compiles by 3-5%. Don't add it if the compiler doesn't also support
BOOT_CFLAGS += \ # -mno-dynamic-no-pic to undo it.
DARWIN_MDYNAMIC_NO_PIC := \
`case ${host} in i?86-*-darwin* | powerpc-*-darwin*) \ `case ${host} in i?86-*-darwin* | powerpc-*-darwin*) \
echo -mdynamic-no-pic ;; esac;` $(CC) -S -xc /dev/null -o /dev/null -mno-dynamic-no-pic 2>/dev/null \
&& echo -mdynamic-no-pic ;; esac`
DARWIN_GCC_MDYNAMIC_NO_PIC := \
`case ${host} in i?86-*-darwin* | powerpc-*-darwin*) \
$(CC) -S -xc /dev/null -o /dev/null -mno-dynamic-no-pic 2>/dev/null \
|| echo -mdynamic-no-pic ;; esac`
# ld on Darwin versions >= 10.7 defaults to PIE executables. Disable this for # ld on Darwin versions >= 10.7 defaults to PIE executables. Disable this for
# gcc components, since it is incompatible with our pch implementation. # gcc components, since it is incompatible with our pch implementation.
BOOT_LDFLAGS += \ DARWIN_NO_PIE := `case ${host} in *-*-darwin[1][1-9]*) echo -Wl,-no_pie ;; esac;`
`case ${host} in *-*-darwin[1][1-9]*) echo -Wl,-no_pie ;; esac;`
BOOT_CFLAGS += $(DARWIN_MDYNAMIC_NO_PIC)
BOOT_LDFLAGS += $(DARWIN_NO_PIE)
# Similarly, for cross-compilation. # Similarly, for cross-compilation.
STAGE1_CFLAGS += \ STAGE1_CFLAGS += $(DARWIN_MDYNAMIC_NO_PIC)
`case ${host} in i?86-*-darwin* | powerpc-*-darwin*)\ STAGE1_LDFLAGS += $(DARWIN_NO_PIE)
echo -mdynamic-no-pic ;; esac;`
STAGE1_LDFLAGS += \ # Without -mno-dynamic-no-pic support, add -mdynamic-no-pic just to later
`case ${host} in *-*-darwin[1][1-9]*) echo -Wl,-no_pie ;; esac;` # stages when we know it is built with gcc.
STAGE2_CFLAGS += $(DARWIN_GCC_MDYNAMIC_NO_PIC)
STAGE3_CFLAGS += $(DARWIN_GCC_MDYNAMIC_NO_PIC)
STAGE4_CFLAGS += $(DARWIN_GCC_MDYNAMIC_NO_PIC)

View File

@ -7,9 +7,15 @@ AC_DEFUN([_GCC_PICFLAG], [
case "${$2}" in case "${$2}" in
# PIC is the default on some targets or must not be used. # PIC is the default on some targets or must not be used.
*-*-darwin*) *-*-darwin*)
# PIC is the default on this platform # For darwin, common symbols are not allowed in MH_DYLIB files
# Common symbols not allowed in MH_DYLIB files case "${CFLAGS}" in
$1=-fno-common # If we are using a compiler supporting mdynamic-no-pic
# and the option has been tested as safe to add, then cancel
# it here, since the code generated is incompatible with shared
# libs.
*-mdynamic-no-pic*) $1='-fno-common -mno-dynamic-no-pic' ;;
*) $1=-fno-common ;;
esac
;; ;;
alpha*-dec-osf5*) alpha*-dec-osf5*)
# PIC is the default. # PIC is the default.

View File

@ -7,6 +7,11 @@
include/ include/
* bfdlink.h: Rename eh_frame_hdr to eh_frame_hdr_type. * bfdlink.h: Rename eh_frame_hdr to eh_frame_hdr_type.
2015-05-22 Yunlian Jiang <yunlian@google.com>
* libiberty.h (asprintf): Don't declare if HAVE_DECL_ASPRINTF is
not defined.
2015-05-12 Jiong Wang <jiong.wang@arm.com> 2015-05-12 Jiong Wang <jiong.wang@arm.com>
* elf/aarch64.h (R_AARCH64_P32_LD32_GOTPAGE_LO14): New enumeration. * elf/aarch64.h (R_AARCH64_P32_LD32_GOTPAGE_LO14): New enumeration.

View File

@ -621,7 +621,7 @@ extern int pexecute (const char *, char * const *, const char *,
extern int pwait (int, int *, int); extern int pwait (int, int *, int);
#if !HAVE_DECL_ASPRINTF #if defined(HAVE_DECL_ASPRINTF) && !HAVE_DECL_ASPRINTF
/* Like sprintf but provides a pointer to malloc'd storage, which must /* Like sprintf but provides a pointer to malloc'd storage, which must
be freed by the caller. */ be freed by the caller. */

View File

@ -1,3 +1,85 @@
2015-06-01 Jason Merrill <jason@redhat.com>
* cp-demangle.c (cplus_demangle_type): Handle arguments to vendor
extended qualifier.
2015-05-22 Yunlian Jiang <yunlian@google.com>
* configure.ac: Add AC_GNU_SOURCE.
* Makefile.in (COMPILE.c): Add -D_GNU_SOURCE.
* configure, config.in: Rebuild.
* floatformat.c (_GNU_SOURCE): Don't define if already defined.
2015-05-16 Iain Buclaw <ibuclaw@gdcproject.org>
* d-demangle.c (dlang_symbol_kinds): New enum.
(dlang_parse_symbol): Update signature. Handle an ambiguity between
pascal functions and template value arguments. Only check for a type
if parsing a function, or at the top level. Return failure if the
entire symbol was not successfully demangled.
(dlang_identifier): Update signature. Handle an ambiguity between two
adjacent digits in a mangled symbol string.
(dlang_type): Update call to dlang_parse_symbol.
(dlang_template_args): Likewise.
(dlang_parse_template): Likewise.
(dlang_demangle): Likewise.
* testsuite/d-demangle-expected: Fix bad tests found, and add problematic
examples to the unittests.
2015-05-16 Iain Buclaw <ibuclaw@gdcproject.org>
* d-demangle.c (dlang_template_args): Skip over specialized template
parameters in mangled symbol.
* testsuite/d-demangle-expected: Add coverage and unittest for specialized
template parameters.
2015-05-16 Iain Buclaw <ibuclaw@gdcproject.org>
* d-demangle.c (dlang_type): Handle cent and ucent types.
* testsuite/d-demangle-expected: Add coverage tests for cent and ucent.
2015-05-16 Iain Buclaw <ibuclaw@gdcproject.org>
* d-demangle.c (dlang_attributes): Handle return attributes, ignoring
return parameters in the mangled string. Return NULL if have encountered
an unknown attribute.
(dlang_function_args): Handle return parameters in the mangled string.
* testsuite/d-demangle-expected: Add coverage tests for functions with
return parameters and return attributes.
2015-05-16 Iain Buclaw <ibuclaw@gdcproject.org>
* d-demangle.c (dlang_identifier): Check encoded length of identifier
to verify strncmp matches entire string.
* testsuite/d-demangle-expected: Fix wrong test for postblit symbol.
2015-05-16 Iain Buclaw <ibuclaw@gdcproject.org>
* d-demangle.c (dlang_type_modifiers): New function.
(dlang_type_modifier_p): New function.
(dlang_call_convention_p): Ignore any kind of type modifier.
(dlang_type): Handle and emit the type modifier after delegate types.
(dlang_parse_symbol): Handle and emit the type modifier after the symbol.
* testsuite/d-demangle-expected: Add coverage tests for all valid
usages of function symbols with type modifiers.
2015-05-16 Iain Buclaw <ibuclaw@gdcproject.org>
* d-demangle.c (dlang_call_convention): Return NULL if have reached the
end of the symbol, but expected something to read.
(dlang_attributes): Likewise.
(dlang_function_type): Likewise.
(dlang_type): Likewise.
(dlang_identifier): Likewise.
(dlang_value): Likewise.
2015-05-16 Iain Buclaw <ibuclaw@gdcproject.org>
* d-demangle.c (dlang_parse_string): Represent embedded whitespace or
non-printable characters as hex or escape sequences.
* testsuite/d-demangle-expected: Add test for templates with tabs and
newlines embedded into the signature.
2015-05-08 Joel Brobecker <brobecker@adacore.com> 2015-05-08 Joel Brobecker <brobecker@adacore.com>
* mkstemps.c: #include <time.h> if HAVE_TIME_H is defined * mkstemps.c: #include <time.h> if HAVE_TIME_H is defined
@ -7,6 +89,22 @@
* setenv.c <environ>: Declare only if not a macro. * setenv.c <environ>: Declare only if not a macro.
2015-04-14 Max Ostapenko <m.ostapenko@partner.samsung.com>
* testsuite/Makefile.in (LIBCFLAGS): Add LDFLAGS.
2015-04-10 Jakub Jelinek <jakub@redhat.com>
Iain Sandoe <iain@codesourcery.com>
PR target/65351
* configure: Regenerate.
2015-04-07 Jakub Jelinek <jakub@redhat.com>
Iain Sandoe <iain@codesourcery.com>
PR target/65351
* configure: Regenerate.
2015-01-19 Eli Zaretskii <eliz@gnu.org> 2015-01-19 Eli Zaretskii <eliz@gnu.org>
* strerror.c <sys_nerr, sys_errlist>: Declare only if they aren't * strerror.c <sys_nerr, sys_errlist>: Declare only if they aren't

View File

@ -3,7 +3,7 @@
# #
# Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, # Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
# 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, # 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011,
# 2012, 2014 Free Software Foundation # 2012, 2014, 2015 Free Software Foundation
# #
# This file is part of the libiberty library. # This file is part of the libiberty library.
# Libiberty is free software; you can redistribute it and/or # Libiberty is free software; you can redistribute it and/or
@ -113,7 +113,8 @@ installcheck: installcheck-subdir
INCDIR=$(srcdir)/$(MULTISRCTOP)../include INCDIR=$(srcdir)/$(MULTISRCTOP)../include
COMPILE.c = $(CC) -c @DEFS@ $(CFLAGS) $(CPPFLAGS) -I. -I$(INCDIR) $(HDEFINES) @ac_libiberty_warn_cflags@ COMPILE.c = $(CC) -c @DEFS@ $(CFLAGS) $(CPPFLAGS) -I. -I$(INCDIR) \
$(HDEFINES) @ac_libiberty_warn_cflags@ -D_GNU_SOURCE
# Just to make sure we don't use a built-in rule with VPATH # Just to make sure we don't use a built-in rule with VPATH
.c.$(objext): .c.$(objext):

View File

@ -485,6 +485,28 @@
/* Define to an unsigned 64-bit type available in the compiler. */ /* Define to an unsigned 64-bit type available in the compiler. */
#undef UNSIGNED_64BIT_TYPE #undef UNSIGNED_64BIT_TYPE
/* Enable extensions on AIX 3, Interix. */
#ifndef _ALL_SOURCE
# undef _ALL_SOURCE
#endif
/* Enable GNU extensions on systems that have them. */
#ifndef _GNU_SOURCE
# undef _GNU_SOURCE
#endif
/* Enable threading extensions on Solaris. */
#ifndef _POSIX_PTHREAD_SEMANTICS
# undef _POSIX_PTHREAD_SEMANTICS
#endif
/* Enable extensions on HP NonStop. */
#ifndef _TANDEM_SOURCE
# undef _TANDEM_SOURCE
#endif
/* Enable general extensions on Solaris. */
#ifndef __EXTENSIONS__
# undef __EXTENSIONS__
#endif
/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most /* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
significant byte first (like Motorola and SPARC, unlike Intel). */ significant byte first (like Motorola and SPARC, unlike Intel). */
#if defined AC_APPLE_UNIVERSAL_BUILD #if defined AC_APPLE_UNIVERSAL_BUILD
@ -503,6 +525,16 @@
/* Define for large files, on AIX-style hosts. */ /* Define for large files, on AIX-style hosts. */
#undef _LARGE_FILES #undef _LARGE_FILES
/* Define to 1 if on MINIX. */
#undef _MINIX
/* Define to 2 if the system does not provide POSIX.1 features except with
this defined. */
#undef _POSIX_1_SOURCE
/* Define to 1 if you need to in order for `stat' and other things to work. */
#undef _POSIX_SOURCE
/* Define to empty if `const' does not conform to ANSI C. */ /* Define to empty if `const' does not conform to ANSI C. */
#undef const #undef const

990
libiberty/configure vendored

File diff suppressed because it is too large Load Diff

View File

@ -155,6 +155,7 @@ AC_MSG_NOTICE([target_header_dir = $target_header_dir])
GCC_NO_EXECUTABLES GCC_NO_EXECUTABLES
AC_PROG_CC AC_PROG_CC
AC_GNU_SOURCE
AC_SYS_LARGEFILE AC_SYS_LARGEFILE
AC_PROG_CPP_WERROR AC_PROG_CPP_WERROR

View File

@ -2470,6 +2470,9 @@ cplus_demangle_type (struct d_info *di)
case 'U': case 'U':
d_advance (di, 1); d_advance (di, 1);
ret = d_source_name (di); ret = d_source_name (di);
if (d_peek_char (di) == 'I')
ret = d_make_comp (di, DEMANGLE_COMPONENT_TEMPLATE, ret,
d_template_args (di));
ret = d_make_comp (di, DEMANGLE_COMPONENT_VENDOR_TYPE_QUAL, ret = d_make_comp (di, DEMANGLE_COMPONENT_VENDOR_TYPE_QUAL,
cplus_demangle_type (di), ret); cplus_demangle_type (di), ret);
break; break;

View File

@ -1,5 +1,5 @@
/* Demangler for the D programming language /* Demangler for the D programming language
Copyright 2014 Free Software Foundation, Inc. Copyright 2014, 2015 Free Software Foundation, Inc.
Written by Iain Buclaw (ibuclaw@gdcproject.org) Written by Iain Buclaw (ibuclaw@gdcproject.org)
This file is part of the libiberty library. This file is part of the libiberty library.
@ -165,6 +165,21 @@ string_prepend (string *p, const char *s)
} }
} }
/* What kinds of symbol we could be parsing. */
enum dlang_symbol_kinds
{
/* Top-level symbol, needs it's type checked. */
dlang_top_level,
/* Function symbol, needs it's type checked. */
dlang_function,
/* Strongly typed name, such as for classes, structs and enums. */
dlang_type_name,
/* Template identifier. */
dlang_template_ident,
/* Template symbol parameter. */
dlang_template_param
};
/* Prototypes for forward referenced functions */ /* Prototypes for forward referenced functions */
static const char *dlang_function_args (string *, const char *); static const char *dlang_function_args (string *, const char *);
@ -172,7 +187,8 @@ static const char *dlang_type (string *, const char *);
static const char *dlang_value (string *, const char *, const char *, char); static const char *dlang_value (string *, const char *, const char *, char);
static const char *dlang_parse_symbol (string *, const char *); static const char *dlang_parse_symbol (string *, const char *,
enum dlang_symbol_kinds);
static const char *dlang_parse_tuple (string *, const char *); static const char *dlang_parse_tuple (string *, const char *);
@ -185,7 +201,7 @@ static const char *
dlang_call_convention (string *decl, const char *mangled) dlang_call_convention (string *decl, const char *mangled)
{ {
if (mangled == NULL || *mangled == '\0') if (mangled == NULL || *mangled == '\0')
return mangled; return NULL;
switch (*mangled) switch (*mangled)
{ {
@ -215,13 +231,51 @@ dlang_call_convention (string *decl, const char *mangled)
return mangled; return mangled;
} }
/* Extract the type modifiers from MANGLED and append them to DECL.
Returns the remaining signature on success or NULL on failure. */
static const char *
dlang_type_modifiers (string *decl, const char *mangled)
{
if (mangled == NULL || *mangled == '\0')
return NULL;
switch (*mangled)
{
case 'x': /* const */
mangled++;
string_append (decl, " const");
return mangled;
case 'y': /* immutable */
mangled++;
string_append (decl, " immutable");
return mangled;
case 'O': /* shared */
mangled++;
string_append (decl, " shared");
return dlang_type_modifiers (decl, mangled);
case 'N':
mangled++;
if (*mangled == 'g') /* wild */
{
mangled++;
string_append (decl, " inout");
return dlang_type_modifiers (decl, mangled);
}
else
return NULL;
default:
return mangled;
}
}
/* Demangle the D function attributes from MANGLED and append it to DECL. /* Demangle the D function attributes from MANGLED and append it to DECL.
Return the remaining string on success or NULL on failure. */ Return the remaining string on success or NULL on failure. */
static const char * static const char *
dlang_attributes (string *decl, const char *mangled) dlang_attributes (string *decl, const char *mangled)
{ {
if (mangled == NULL || *mangled == '\0') if (mangled == NULL || *mangled == '\0')
return mangled; return NULL;
while (*mangled == 'N') while (*mangled == 'N')
{ {
@ -254,8 +308,10 @@ dlang_attributes (string *decl, const char *mangled)
continue; continue;
case 'g': case 'g':
case 'h': case 'h':
case 'k':
/* inout parameter is represented as 'Ng'. /* inout parameter is represented as 'Ng'.
vector parameter is represented as 'Nh'. vector parameter is represented as 'Nh'.
return paramenter is represented as 'Nk'.
If we see this, then we know we're really in the If we see this, then we know we're really in the
parameter list. Rewind and break. */ parameter list. Rewind and break. */
mangled--; mangled--;
@ -264,6 +320,13 @@ dlang_attributes (string *decl, const char *mangled)
mangled++; mangled++;
string_append (decl, "@nogc "); string_append (decl, "@nogc ");
continue; continue;
case 'j': /* return */
mangled++;
string_append (decl, "return ");
continue;
default: /* unknown attribute */
return NULL;
} }
break; break;
} }
@ -280,7 +343,7 @@ dlang_function_type (string *decl, const char *mangled)
size_t szattr, szargs, sztype; size_t szattr, szargs, sztype;
if (mangled == NULL || *mangled == '\0') if (mangled == NULL || *mangled == '\0')
return mangled; return NULL;
/* The order of the mangled string is: /* The order of the mangled string is:
CallConvention FuncAttrs Arguments ArgClose Type CallConvention FuncAttrs Arguments ArgClose Type
@ -353,6 +416,12 @@ dlang_function_args (string *decl, const char *mangled)
string_append (decl, "scope "); string_append (decl, "scope ");
} }
if (mangled[0] == 'N' && mangled[1] == 'k') /* return(T) */
{
mangled += 2;
string_append (decl, "return ");
}
switch (*mangled) switch (*mangled)
{ {
case 'J': /* out(T) */ case 'J': /* out(T) */
@ -380,7 +449,7 @@ static const char *
dlang_type (string *decl, const char *mangled) dlang_type (string *decl, const char *mangled)
{ {
if (mangled == NULL || *mangled == '\0') if (mangled == NULL || *mangled == '\0')
return mangled; return NULL;
switch (*mangled) switch (*mangled)
{ {
@ -474,12 +543,24 @@ dlang_type (string *decl, const char *mangled)
case 'E': /* enum T */ case 'E': /* enum T */
case 'T': /* typedef T */ case 'T': /* typedef T */
mangled++; mangled++;
return dlang_parse_symbol (decl, mangled); return dlang_parse_symbol (decl, mangled, dlang_type_name);
case 'D': /* delegate T */ case 'D': /* delegate T */
{
string mods;
size_t szmods;
mangled++; mangled++;
string_init (&mods);
mangled = dlang_type_modifiers (&mods, mangled);
szmods = string_length (&mods);
mangled = dlang_function_type (decl, mangled); mangled = dlang_function_type (decl, mangled);
string_append (decl, "delegate"); string_append (decl, "delegate");
string_appendn (decl, mods.b, szmods);
string_delete (&mods);
return mangled; return mangled;
}
case 'B': /* tuple T */ case 'B': /* tuple T */
mangled++; mangled++;
return dlang_parse_tuple (decl, mangled); return dlang_parse_tuple (decl, mangled);
@ -588,6 +669,20 @@ dlang_type (string *decl, const char *mangled)
mangled++; mangled++;
string_append (decl, "dchar"); string_append (decl, "dchar");
return mangled; return mangled;
case 'z':
mangled++;
switch (*mangled)
{
case 'i':
mangled++;
string_append (decl, "cent");
return mangled;
case 'k':
mangled++;
string_append (decl, "ucent");
return mangled;
}
return NULL;
default: /* unhandled */ default: /* unhandled */
return NULL; return NULL;
@ -597,97 +692,162 @@ dlang_type (string *decl, const char *mangled)
/* Extract the identifier from MANGLED and append it to DECL. /* Extract the identifier from MANGLED and append it to DECL.
Return the remaining string on success or NULL on failure. */ Return the remaining string on success or NULL on failure. */
static const char * static const char *
dlang_identifier (string *decl, const char *mangled) dlang_identifier (string *decl, const char *mangled,
enum dlang_symbol_kinds kind)
{ {
char *endptr;
long len;
if (mangled == NULL || *mangled == '\0') if (mangled == NULL || *mangled == '\0')
return mangled; return NULL;
if (ISDIGIT (*mangled)) len = strtol (mangled, &endptr, 10);
if (endptr == NULL || len <= 0)
return NULL;
/* In template parameter symbols, the first character of the mangled
name can be a digit. This causes ambiguity issues because the
digits of the two numbers are adjacent. */
if (kind == dlang_template_param)
{ {
char *endptr; long psize = len;
long i = strtol (mangled, &endptr, 10); char *pend;
int saved = string_length (decl);
if (endptr == NULL || i <= 0 || strlen (endptr) < (size_t) i) /* Work backwards until a match is found. */
for (pend = endptr; endptr != NULL; pend--)
{
mangled = pend;
/* Reached the beginning of the pointer to the name length,
try parsing the entire symbol. */
if (psize == 0)
{
psize = len;
pend = endptr;
endptr = NULL;
}
/* Check whether template parameter is a function with a valid
return type or an untyped identifier. */
if (ISDIGIT (*mangled))
mangled = dlang_parse_symbol (decl, mangled, dlang_template_ident);
else if (strncmp (mangled, "_D", 2) == 0)
{
mangled += 2;
mangled = dlang_parse_symbol (decl, mangled, dlang_function);
}
/* Check for name length mismatch. */
if (mangled && (mangled - pend) == psize)
return mangled;
psize /= 10;
string_setlength (decl, saved);
}
/* No match on any combinations. */
return NULL;
}
else
{
if (strlen (endptr) < (size_t) len)
return NULL; return NULL;
mangled = endptr; mangled = endptr;
/* May be a template instance. */ /* May be a template instance. */
if (i >= 5 && strncmp (mangled, "__T", 3) == 0) if (len >= 5 && strncmp (mangled, "__T", 3) == 0)
{ {
/* Template symbol. */ /* Template symbol. */
if (ISDIGIT (mangled[3]) && mangled[3] != '0') if (ISDIGIT (mangled[3]) && mangled[3] != '0')
return dlang_parse_template (decl, mangled, i); return dlang_parse_template (decl, mangled, len);
return NULL; return NULL;
} }
if (strncmp (mangled, "__ctor", i) == 0) switch (len)
{ {
/* Constructor symbol for a class/struct. */ case 6:
string_append (decl, "this"); if (strncmp (mangled, "__ctor", len) == 0)
mangled += i; {
return mangled; /* Constructor symbol for a class/struct. */
} string_append (decl, "this");
else if (strncmp (mangled, "__dtor", i) == 0) mangled += len;
{ return mangled;
/* Destructor symbol for a class/struct. */ }
string_append (decl, "~this"); else if (strncmp (mangled, "__dtor", len) == 0)
mangled += i; {
return mangled; /* Destructor symbol for a class/struct. */
} string_append (decl, "~this");
else if (strncmp (mangled, "__postblit", i) == 0) mangled += len;
{ return mangled;
/* Postblit symbol for a struct. */ }
string_append (decl, "this(this)"); else if (strncmp (mangled, "__initZ", len+1) == 0)
mangled += i; {
return mangled; /* The static initialiser for a given symbol. */
} string_append (decl, "init$");
else if (strncmp (mangled, "__initZ", i+1) == 0) mangled += len;
{ return mangled;
/* The static initialiser for a given symbol. */ }
string_append (decl, "init$"); else if (strncmp (mangled, "__vtblZ", len+1) == 0)
mangled += i + 1; {
return mangled; /* The vtable symbol for a given class. */
} string_prepend (decl, "vtable for ");
else if (strncmp (mangled, "__ClassZ", i+1) == 0) string_setlength (decl, string_length (decl) - 1);
{ mangled += len;
/* The classinfo symbol for a given class. */ return mangled;
string_prepend (decl, "ClassInfo for "); }
string_setlength (decl, string_length (decl) - 1); break;
mangled += i + 1;
return mangled; case 7:
} if (strncmp (mangled, "__ClassZ", len+1) == 0)
else if (strncmp (mangled, "__vtblZ", i+1) == 0) {
{ /* The classinfo symbol for a given class. */
/* The vtable symbol for a given class. */ string_prepend (decl, "ClassInfo for ");
string_prepend (decl, "vtable for "); string_setlength (decl, string_length (decl) - 1);
string_setlength (decl, string_length (decl) - 1); mangled += len;
mangled += i + 1; return mangled;
return mangled; }
} break;
else if (strncmp (mangled, "__InterfaceZ", i+1) == 0)
{ case 10:
/* The interface symbol for a given class. */ if (strncmp (mangled, "__postblitMFZ", len+3) == 0)
string_prepend (decl, "Interface for "); {
string_setlength (decl, string_length (decl) - 1); /* Postblit symbol for a struct. */
mangled += i + 1; string_append (decl, "this(this)");
return mangled; mangled += len + 3;
} return mangled;
else if (strncmp (mangled, "__ModuleInfoZ", i+1) == 0) }
{ break;
/* The ModuleInfo symbol for a given module. */
string_prepend (decl, "ModuleInfo for "); case 11:
string_setlength (decl, string_length (decl) - 1); if (strncmp (mangled, "__InterfaceZ", len+1) == 0)
mangled += i + 1; {
return mangled; /* The interface symbol for a given class. */
string_prepend (decl, "Interface for ");
string_setlength (decl, string_length (decl) - 1);
mangled += len;
return mangled;
}
break;
case 12:
if (strncmp (mangled, "__ModuleInfoZ", len+1) == 0)
{
/* The ModuleInfo symbol for a given module. */
string_prepend (decl, "ModuleInfo for ");
string_setlength (decl, string_length (decl) - 1);
mangled += len;
return mangled;
}
break;
} }
string_appendn (decl, mangled, i); string_appendn (decl, mangled, len);
mangled += i; mangled += len;
} }
else
return NULL;
return mangled; return mangled;
} }
@ -931,7 +1091,38 @@ dlang_parse_string (string *decl, const char *mangled)
char a = ascii2hex (mangled[0]); char a = ascii2hex (mangled[0]);
char b = ascii2hex (mangled[1]); char b = ascii2hex (mangled[1]);
char val = (a << 4) | b; char val = (a << 4) | b;
string_appendn (decl, &val, 1);
/* Sanitize white and non-printable characters. */
switch (val)
{
case ' ':
string_append (decl, " ");
break;
case '\t':
string_append (decl, "\\t");
break;
case '\n':
string_append (decl, "\\n");
break;
case '\r':
string_append (decl, "\\r");
break;
case '\f':
string_append (decl, "\\f");
break;
case '\v':
string_append (decl, "\\v");
break;
default:
if (ISPRINT (val))
string_appendn (decl, &val, 1);
else
{
string_append (decl, "\\x");
string_appendn (decl, mangled, 2);
}
}
} }
else else
return NULL; return NULL;
@ -1030,7 +1221,7 @@ static const char *
dlang_value (string *decl, const char *mangled, const char *name, char type) dlang_value (string *decl, const char *mangled, const char *name, char type)
{ {
if (mangled == NULL || *mangled == '\0') if (mangled == NULL || *mangled == '\0')
return mangled; return NULL;
switch (*mangled) switch (*mangled)
{ {
@ -1104,10 +1295,48 @@ dlang_value (string *decl, const char *mangled, const char *name, char type)
return mangled; return mangled;
} }
/* Extract the type modifiers from MANGLED and return the string
length that it consumes in MANGLED on success or 0 on failure. */
static int
dlang_type_modifier_p (const char *mangled)
{
int i;
switch (*mangled)
{
case 'x': case 'y':
return 1;
case 'O':
mangled++;
i = dlang_type_modifier_p (mangled);
return i + 1;
case 'N':
mangled++;
if (*mangled == 'g')
{
mangled++;
i = dlang_type_modifier_p (mangled);
return i + 2;
}
}
return 0;
}
/* Extract the function calling convention from MANGLED and
return 1 on success or 0 on failure. */
static int static int
dlang_call_convention_p (const char *mangled) dlang_call_convention_p (const char *mangled)
{ {
size_t i; /* Prefix for functions needing 'this' */
if (*mangled == 'M')
{
mangled++;
/* Also skip over any type modifiers. */
mangled += dlang_type_modifier_p (mangled);
}
switch (*mangled) switch (*mangled)
{ {
@ -1115,18 +1344,6 @@ dlang_call_convention_p (const char *mangled)
case 'W': case 'R': case 'W': case 'R':
return 1; return 1;
case 'M': /* Prefix for functions needing 'this' */
i = 1;
if (mangled[i] == 'x')
i++;
switch (mangled[i])
{
case 'F': case 'U': case 'V':
case 'W': case 'R':
return 1;
}
default: default:
return 0; return 0;
} }
@ -1135,23 +1352,41 @@ dlang_call_convention_p (const char *mangled)
/* Extract and demangle the symbol in MANGLED and append it to DECL. /* Extract and demangle the symbol in MANGLED and append it to DECL.
Returns the remaining signature on success or NULL on failure. */ Returns the remaining signature on success or NULL on failure. */
static const char * static const char *
dlang_parse_symbol (string *decl, const char *mangled) dlang_parse_symbol (string *decl, const char *mangled,
enum dlang_symbol_kinds kind)
{ {
int saved;
size_t n = 0; size_t n = 0;
do do
{ {
if (n++) if (n++)
string_append (decl, "."); string_append (decl, ".");
mangled = dlang_identifier (decl, mangled); mangled = dlang_identifier (decl, mangled, kind);
if (mangled && dlang_call_convention_p (mangled)) if (mangled && dlang_call_convention_p (mangled))
{ {
int saved; string mods;
const char *start = NULL;
int checkpoint = 0;
/* Skip over 'this' parameter. */ /* Skip over 'this' parameter. */
if (*mangled == 'M') if (*mangled == 'M')
mangled += (mangled[1] == 'x') ? 2 : 1; mangled++;
/* We have reached here because we expect an extern(Pascal) function.
However this is so rare, that it is more likely a template value
parameter. Since this can't be assumed, first attempt parsing
the symbol as a function, and then back out on failure. */
if (*mangled == 'V')
{
start = mangled;
checkpoint = string_length (decl);
}
/* Save the type modifiers for appending at the end. */
string_init (&mods);
mangled = dlang_type_modifiers (&mods, mangled);
/* Skip over calling convention and attributes in qualified name. */ /* Skip over calling convention and attributes in qualified name. */
saved = string_length (decl); saved = string_length (decl);
@ -1163,17 +1398,41 @@ dlang_parse_symbol (string *decl, const char *mangled)
mangled = dlang_function_args (decl, mangled); mangled = dlang_function_args (decl, mangled);
string_append (decl, ")"); string_append (decl, ")");
/* Demangle the function return type as a kind of sanity test. */ /* Add any const/immutable/shared modifier. */
if (mangled && !ISDIGIT (*mangled)) string_appendn (decl, mods.b, string_length (&mods));
string_delete (&mods);
if (mangled == NULL && checkpoint != 0)
{ {
saved = string_length (decl); mangled = start;
mangled = dlang_type (decl, mangled); string_setlength (decl, checkpoint);
string_setlength (decl, saved);
} }
} }
} }
while (mangled && ISDIGIT (*mangled)); while (mangled && ISDIGIT (*mangled));
/* Only top-level symbols or function template parameters have
a type that needs checking. */
if (kind == dlang_top_level || kind == dlang_function)
{
/* Artificial symbols end with 'Z' and have no type. */
if (mangled && *mangled == 'Z')
mangled++;
else
{
saved = string_length (decl);
mangled = dlang_type (decl, mangled);
string_setlength (decl, saved);
}
/* Check that the entire symbol was successfully demangled. */
if (kind == dlang_top_level)
{
if (mangled == NULL || *mangled != '\0')
return NULL;
}
}
return mangled; return mangled;
} }
@ -1221,11 +1480,15 @@ dlang_template_args (string *decl, const char *mangled)
if (n++) if (n++)
string_append (decl, ", "); string_append (decl, ", ");
/* Skip over specialised template prefix. */
if (*mangled == 'H')
mangled++;
switch (*mangled) switch (*mangled)
{ {
case 'S': /* Symbol parameter. */ case 'S': /* Symbol parameter. */
mangled++; mangled++;
mangled = dlang_parse_symbol (decl, mangled); mangled = dlang_parse_symbol (decl, mangled, dlang_template_param);
break; break;
case 'T': /* Type parameter. */ case 'T': /* Type parameter. */
mangled++; mangled++;
@ -1283,7 +1546,7 @@ dlang_parse_template (string *decl, const char *mangled, long len)
mangled += 3; mangled += 3;
/* Template identifier. */ /* Template identifier. */
mangled = dlang_identifier (decl, mangled); mangled = dlang_identifier (decl, mangled, dlang_template_ident);
/* Template arguments. */ /* Template arguments. */
string_append (decl, "!("); string_append (decl, "!(");
@ -1322,7 +1585,7 @@ dlang_demangle (const char *mangled, int option ATTRIBUTE_UNUSED)
{ {
mangled += 2; mangled += 2;
if (dlang_parse_symbol (&decl, mangled) == NULL) if (dlang_parse_symbol (&decl, mangled, dlang_top_level) == NULL)
string_delete (&decl); string_delete (&decl);
} }

View File

@ -1,5 +1,5 @@
/* IEEE floating point support routines, for GDB, the GNU Debugger. /* IEEE floating point support routines, for GDB, the GNU Debugger.
Copyright 1991, 1994, 1999, 2000, 2003, 2005, 2006, 2010, 2012 Copyright 1991, 1994, 1999, 2000, 2003, 2005, 2006, 2010, 2012, 2015
Free Software Foundation, Inc. Free Software Foundation, Inc.
This file is part of GDB. This file is part of GDB.
@ -19,7 +19,9 @@ along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
/* This is needed to pick up the NAN macro on some systems. */ /* This is needed to pick up the NAN macro on some systems. */
#ifndef _GNU_SOURCE
#define _GNU_SOURCE #define _GNU_SOURCE
#endif
#ifdef HAVE_CONFIG_H #ifdef HAVE_CONFIG_H
#include "config.h" #include "config.h"

View File

@ -33,7 +33,7 @@ SHELL = @SHELL@
CC = @CC@ CC = @CC@
CFLAGS = @CFLAGS@ CFLAGS = @CFLAGS@
LIBCFLAGS = $(CFLAGS) LIBCFLAGS = $(CFLAGS) $(LDFLAGS)
# Multilib support variables. # Multilib support variables.
MULTISRCTOP = MULTISRCTOP =

View File

@ -114,6 +114,14 @@ _D8demangle4testFwZv
demangle.test(dchar) demangle.test(dchar)
# #
--format=dlang --format=dlang
_D8demangle4testFziZv
demangle.test(cent)
#
--format=dlang
_D8demangle4testFzkZv
demangle.test(ucent)
#
--format=dlang
_D8demangle4testFOaZv _D8demangle4testFOaZv
demangle.test(shared(char)) demangle.test(shared(char))
# #
@ -314,6 +322,14 @@ _D8demangle4testFMaZv
demangle.test(scope char) demangle.test(scope char)
# #
--format=dlang --format=dlang
_D8demangle4testFNjaZv
demangle.test(char)
#
--format=dlang
_D8demangle4testFNkaZv
demangle.test(return char)
#
--format=dlang
_D8demangle4testFaXv _D8demangle4testFaXv
demangle.test(char...) demangle.test(char...)
# #
@ -434,6 +450,22 @@ _D8demangle4testFDFNdNfNaZaZv
demangle.test(char() @property @safe pure delegate) demangle.test(char() @property @safe pure delegate)
# #
--format=dlang --format=dlang
_D8demangle4testFNjDFZaZv
demangle.test(char() delegate)
#
--format=dlang
_D8demangle4testFNkDFZaZv
demangle.test(return char() delegate)
#
--format=dlang
_D8demangle4testFDFNjZaZv
demangle.test(char() return delegate)
#
--format=dlang
_D8demangle4testFNjNkDFNjZaZv
demangle.test(return char() return delegate)
#
--format=dlang
_D8demangle4testFFNaZaZv _D8demangle4testFFNaZaZv
demangle.test(char() pure function) demangle.test(char() pure function)
# #
@ -474,6 +506,22 @@ _D8demangle4testFFNdNfNaZaZv
demangle.test(char() @property @safe pure function) demangle.test(char() @property @safe pure function)
# #
--format=dlang --format=dlang
_D8demangle4testFNjFZaZv
demangle.test(char() function)
#
--format=dlang
_D8demangle4testFNkFZaZv
demangle.test(return char() function)
#
--format=dlang
_D8demangle4testFFNjZaZv
demangle.test(char() return function)
#
--format=dlang
_D8demangle4testFNjNkFNjZaZv
demangle.test(return char() return function)
#
--format=dlang
_D8demangle4test6__initZ _D8demangle4test6__initZ
demangle.test.init$ demangle.test.init$
# #
@ -502,7 +550,7 @@ _D8demangle4test6__dtorMFZv
demangle.test.~this() demangle.test.~this()
# #
--format=dlang --format=dlang
_D8demangle4test6__postblitMFZv _D8demangle4test10__postblitMFZv
demangle.test.this(this) demangle.test.this(this)
# #
--format=dlang --format=dlang
@ -566,12 +614,12 @@ _D8demangle17__T4testS6symbolZv
demangle.test!(symbol) demangle.test!(symbol)
# #
--format=dlang --format=dlang
_D8demangle21__T4testS6symbol3fooZv _D8demangle23__T4testS116symbol3fooZv
demangle.test!(symbol.foo) demangle.test!(symbol.foo)
# #
--format=dlang --format=dlang
_D8demangle25__T4testS6symbol3foo3barZv _D8demangle32__T4testS20_D6symbol3foo3barFZvZv
demangle.test!(symbol.foo.bar) demangle.test!(symbol.foo.bar())
# #
--format=dlang --format=dlang
_D8demangle19__T4testTaS6symbolZv _D8demangle19__T4testTaS6symbolZv
@ -582,6 +630,10 @@ _D8demangle19__T4testS6symbolTaZv
demangle.test!(symbol, char) demangle.test!(symbol, char)
# #
--format=dlang --format=dlang
_D8demangle12__T4testHTaZv
demangle.test!(char)
#
--format=dlang
_D8demangle13__T4testVPinZv _D8demangle13__T4testVPinZv
demangle.test!(null) demangle.test!(null)
# #
@ -753,6 +805,70 @@ demangle.test!(demangle.S(1, 2))
_D8demangle35__T4testVS8demangle1SS2i1a3_616263Zv _D8demangle35__T4testVS8demangle1SS2i1a3_616263Zv
demangle.test!(demangle.S(1, "abc")) demangle.test!(demangle.S(1, "abc"))
# #
--format=dlang
_D8demangle4testMxFZv
demangle.test() const
#
--format=dlang
_D8demangle4testMyFZv
demangle.test() immutable
#
--format=dlang
_D8demangle4testMNgFZv
demangle.test() inout
#
--format=dlang
_D8demangle4testMNgxFZv
demangle.test() inout const
#
--format=dlang
_D8demangle4testMOFZv
demangle.test() shared
#
--format=dlang
_D8demangle4testMOxFZv
demangle.test() shared const
#
--format=dlang
_D8demangle4testMONgFZv
demangle.test() shared inout
#
--format=dlang
_D8demangle4testMONgxFZv
demangle.test() shared inout const
#
--format=dlang
_D8demangle4testFDxFZaZv
demangle.test(char() delegate const)
#
--format=dlang
_D8demangle4testFDyFZaZv
demangle.test(char() delegate immutable)
#
--format=dlang
_D8demangle4testFDNgFZaZv
demangle.test(char() delegate inout)
#
--format=dlang
_D8demangle4testFDNgxFZaZv
demangle.test(char() delegate inout const)
#
--format=dlang
_D8demangle4testFDOFZaZv
demangle.test(char() delegate shared)
#
--format=dlang
_D8demangle4testFDOxFZaZv
demangle.test(char() delegate shared const)
#
--format=dlang
_D8demangle4testFDONgFZaZv
demangle.test(char() delegate shared inout)
#
--format=dlang
_D8demangle4testFDONgxFZaZv
demangle.test(char() delegate shared inout const)
#
# Unittests # Unittests
# #
--format=dlang --format=dlang
@ -816,19 +932,19 @@ _D6plugin8generateFiiZAOa
plugin.generate(int, int) plugin.generate(int, int)
# #
--format=dlang --format=dlang
_D8demangle3fnAFZv3fnBMFZv _D8demangle3fnAFZ3fnBMFZv
demangle.fnA().fnB() demangle.fnA().fnB()
# #
--format=dlang --format=dlang
_D8demangle4mainFZv1S3fnCFZv _D8demangle4mainFZ1S3fnCMFZv
demangle.main().S.fnC() demangle.main().S.fnC()
# #
--format=dlang --format=dlang
_D8demangle4mainFZv1S3fnDMFZv _D8demangle4mainFZ1S3fnDMFZv
demangle.main().S.fnD() demangle.main().S.fnD()
# #
--format=dlang --format=dlang
_D8demangle4mainFZv5localMFZi _D8demangle4mainFZ5localMFZi
demangle.main().local() demangle.main().local()
# #
--format=dlang --format=dlang
@ -872,7 +988,7 @@ _D6object14TypeInfo_Array8argTypesMFNbNfJC8TypeInfoJC8TypeInfoZi
object.TypeInfo_Array.argTypes(out TypeInfo, out TypeInfo) object.TypeInfo_Array.argTypes(out TypeInfo, out TypeInfo)
# #
--format=dlang --format=dlang
_D2rt6dmain211_d_run_mainUiPPaPUAAaZiZi7tryExecMFMDFZvZv _D2rt6dmain211_d_run_mainUiPPaPUAAaZiZ7tryExecMFMDFZvZv
rt.dmain2._d_run_main(int, char**, extern(C) int(char[][]) function*).tryExec(scope void() delegate) rt.dmain2._d_run_main(int, char**, extern(C) int(char[][]) function*).tryExec(scope void() delegate)
# #
--format=dlang --format=dlang
@ -928,9 +1044,37 @@ _D2gc11gctemplates56__T8mkBitmapTS3std5range13__T4iotaTiTiZ4iotaFiiZ6ResultZ8mkB
gc.gctemplates.mkBitmap!(std.range.iota!(int, int).iota(int, int).Result).mkBitmap(ulong*, ulong) gc.gctemplates.mkBitmap!(std.range.iota!(int, int).iota(int, int).Result).mkBitmap(ulong*, ulong)
# #
--format=dlang --format=dlang
_D8serenity9persister6Sqlite70__T15SqlitePersisterTS8serenity9persister6Sqlite11__unittest6FZv4TestZ15SqlitePersister12__T7opIndexZ7opIndexMFmZS8serenity9persister6Sqlite11__unittest6FZv4Test _D8serenity9persister6Sqlite69__T15SqlitePersisterTS8serenity9persister6Sqlite11__unittest6FZ4TestZ15SqlitePersister12__T7opIndexZ7opIndexMFmZS8serenity9persister6Sqlite11__unittest6FZ4Test
serenity.persister.Sqlite.SqlitePersister!(serenity.persister.Sqlite.__unittest6().Test).SqlitePersister.opIndex!().opIndex(ulong) serenity.persister.Sqlite.SqlitePersister!(serenity.persister.Sqlite.__unittest6().Test).SqlitePersister.opIndex!().opIndex(ulong)
# #
--format=dlang --format=dlang
_D4test4mainFZv5localMFZi _D3std6socket12InternetHost221__T13getHostNoSyncVAyaa96_0a09202020206175746f2078203d2068746f6e6c28706172616d293b0a09202020206175746f206865203d20676574686f73746279616464722826782c20342c206361737428696e74294164647265737346616d696c792e494e4554293b0a09TkZ13getHostNoSyncMFkZb
test.main().local() std.socket.InternetHost.getHostNoSync!("\n\t auto x = htonl(param);\n\t auto he = gethostbyaddr(&x, 4, cast(int)AddressFamily.INET);\n\t", uint).getHostNoSync(uint)
#
--format=dlang
_D2gc6config13__T5parseHTfZ5parseFNbNiAxaKAxaKfZb
gc.config.parse!(float).parse(const(char)[], ref const(char)[], ref float)
#
--format=dlang
_D3std11parallelism273__T4TaskS213std11parallelism3runTDFS3std9algorithm87__T9MapResultS27_D4test4mainFZ7getTermMFiZeTS3std5range13__T4iotaTiTiZ4iotaFiiZ6ResultZ9MapResultmmZeTS3std9algorithm87__T9MapResultS27_D4test4mainFZ7getTermMFiZeTS3std5range13__T4iotaTiTiZ4iotaFiiZ6ResultZ9MapResultTmTmZ4Task4implFPvZv
std.parallelism.Task!(std.parallelism.run, real(std.algorithm.MapResult!(test.main().getTerm(int), std.range.iota!(int, int).iota(int, int).Result).MapResult, ulong, ulong) delegate, std.algorithm.MapResult!(test.main().getTerm(int), std.range.iota!(int, int).iota(int, int).Result).MapResult, ulong, ulong).Task.impl(void*)
#
--format=dlang
_D2rt5minfo16__unittestL518_6FZ12UTModuleInfo6__ctorMFNckZS2rt5minfo16__unittestL518_6FZ12UTModuleInfo
rt.minfo.__unittestL518_6().UTModuleInfo.this(uint)
#
--format=dlang
_D3std6traits37__T7fqnTypeTC6ObjectVbi0Vbi0Vbi0Vbi0Z13addQualifiersFAyabbbbZAya
std.traits.fqnType!(Object, false, false, false, false).addQualifiers(immutable(char)[], bool, bool, bool, bool)
#
--format=dlang
_D3std9algorithm117__T9MapResultS153std5range4onlyTS3std9algorithm53__T12FilterResultS28_D3std3uni7isUpperFNaNbNfwZbTAyaZ12FilterResultZ9MapResult5frontMFNaNdNfZS3std5range22__T10OnlyResultTwVmi1Z10OnlyResult
std.algorithm.MapResult!(std.range.only, std.algorithm.FilterResult!(std.uni.isUpper(dchar), immutable(char)[]).FilterResult).MapResult.front()
#
--format=dlang
_D3std6traits17__T6fqnSymS43stdZ11adjustIdentFAyaZAya
std.traits.fqnSym!(std).adjustIdent(immutable(char)[])
#
--format=dlang
_D2rt8lifetime36__T14_d_newarrayOpTS13_d_newarrayiTZ14_d_newarrayOpTFNaNbxC8TypeInfomPmZAv
rt.lifetime._d_newarrayOpT!(_d_newarrayiT)._d_newarrayOpT(const(TypeInfo), ulong, ulong*)

View File

@ -4356,3 +4356,6 @@ _QueueNotification_QueueController__$4PPPPPPPM_A_INotice___Z
--format=gnu-v3 --format=gnu-v3
_Z1fSsB3fooS_ _Z1fSsB3fooS_
f(std::string[abi:foo], std::string[abi:foo]) f(std::string[abi:foo], std::string[abi:foo])
--format=gnu-v3
_Z18IndirectExternCallIPU7stdcallU7regparmILi3EEFviiEiEvT_T0_S3_
void IndirectExternCall<void ( regparm<3> stdcall*)(int, int), int>(void ( regparm<3> stdcall*)(int, int), int, void ( regparm<3> stdcall*)(int, int))