mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-12-03 23:34:02 +08:00
Synchronize binutils libiberty sources with gcc version.
+2021-12-30 Lancelot SIX <lsix@lancelotsix.com> + + * cp-demangle.c (d_clone_suffix): Support digits in clone tag + names. + * testsuite/demangle-expected: Check demangling of clone symbols + with digits in name. + +2021-12-16 H.J. Lu <hjl.tools@gmail.com> + + Revert: + 2021-12-16 H.J. Lu <hjl.tools@gmail.com> + + * Makefile.in (AR): Add @AR_PLUGIN_OPTION@ + (RANLIB): Add @RANLIB_PLUGIN_OPTION@. + (configure_deps): Depend on ../config/gcc-plugin.m4. + * configure.ac: AC_SUBST AR_PLUGIN_OPTION and + RANLIB_PLUGIN_OPTION. + * aclocal.m4: Regenerated. + * configure: Likewise. + +2021-12-15 H.J. Lu <hjl.tools@gmail.com> + + * Makefile.in (AR): Add @AR_PLUGIN_OPTION@ + (RANLIB): Add @RANLIB_PLUGIN_OPTION@. + (configure_deps): Depend on ../config/gcc-plugin.m4. + * configure.ac: AC_SUBST AR_PLUGIN_OPTION and + RANLIB_PLUGIN_OPTION. + * aclocal.m4: Regenerated. + * configure: Likewise. + +2021-11-29 Eric Gallager <egallager@gcc.gnu.org> + + PR other/103021 + * Makefile.in: Use ETAGS variable in TAGS target. + * configure: Regenerate. + * configure.ac: Allow ETAGS variable to be overridden. + +2021-11-29 Andrew Pinski <apinski@marvell.com> + + * make-temp-file.c (try_dir): Check to see if the dir + is actually a directory. + +2021-10-22 Eric Gallager <egallager@gcc.gnu.org> + + PR other/102663 + * Makefile.in: Allow dvi-formatted documentation + to be installed. + +2021-10-17 Lu?s Ferreira <contact@lsferreira.net> + + PR d/102618 + * d-demangle.c (dlang_parse_qualified): Handle anonymous + symbols correctly. + * testsuite/d-demangle-expected: New tests to cover anonymous + symbols. + +2021-10-14 Lu?s Ferreira <contact@lsferreira.net> + + * testsuite/d-demangle-expected: Add test case for function literals. + +2021-10-14 Lu?s Ferreira <contact@lsferreira.net> + + * testsuite/d-demangle-expected: Add test cases for simple special + mangles. + +2021-10-12 Lu?s Ferreira <contact@lsferreira.net> + + * d-demangle.c (dlang_parse_qualified): Remove redudant parenthesis + around lhs and rhs of assignments. + +2021-10-01 Lu?s Ferreira <contact@lsferreira.net> + + * testsuite/d-demangle-expected: Add missing format for new test + +2021-09-23 Lu?s Ferreira <contact@lsferreira.net> + + * d-demangle.c (dlang_Type): Validate MANGLED is nonnull. + * testsuite/d-demangle-expected: New test. + +2021-09-23 Lu?s Ferreira <contact@lsferreira.net> + + * d-demangle.c (dlang_symbol_backref): Ensure strlen of + string is less than length computed by dlang_number. + +2021-09-01 Iain Sandoe <iain@sandoe.co.uk> * configure: Regenerate. + * configure.ac: Do not search for sbrk on Darwin. + * xmalloc.c: Do not declare sbrk unless it has been found + by configure. + +2021-08-29 Iain Buclaw <ibuclaw@gdcproject.org> + + * d-demangle.c (dlang_identifier): Skip over fake parent manglings. + * testsuite/d-demangle-expected: Add tests. + +2021-08-29 Iain Buclaw <ibuclaw@gdcproject.org> + + * d-demangle.c (dlang_parse_arrayliteral): Add 'info' parameter. + (dlang_parse_assocarray): Likewise. + (dlang_parse_structlit): Likewise. + (dlang_value): Likewise. Handle function literal symbols. + (dlang_template_args): Pass 'info' to dlang_value. + * testsuite/d-demangle-expected: Add new test. + +2021-08-29 Iain Buclaw <ibuclaw@gdcproject.org> + + * d-demangle.c (dlang_attributes): Handle typeof(*null). + (dlang_type): Likewise. Demangle 'n' as typeof(null). + * testsuite/d-demangle-expected: Update tests. + +2021-08-23 Iain Sandoe <iain@sandoe.co.uk> + + * simple-object-mach-o.c (simple_object_mach_o_write_segment): + Cast the first argument to set_32 as needed. -2021-07-03 Nick Clifton <nickc@redhat.com> +2021-08-18 Iain Sandoe <iain@sandoe.co.uk> + * simple-object-mach-o.c (simple_object_mach_o_write_segment): + Arrange to swap the LTO index tables where needed. # Please enter the commit message for your changes. Lines starting
This commit is contained in:
parent
4b74833d1a
commit
ce2d3708bc
@ -1,3 +1,11 @@
|
|||||||
|
2022-01-13 Nick Clifton <nickc@redhat.com>
|
||||||
|
|
||||||
|
Import from gcc mainline:
|
||||||
|
|
||||||
|
2021-01-03 Mike Frysinger <vapier@gentoo.org>
|
||||||
|
|
||||||
|
* libiberty.h (strverscmp): Delete duplicate prototype.
|
||||||
|
|
||||||
2021-12-07 John Baldwin <jhb@FreeBSD.org>
|
2021-12-07 John Baldwin <jhb@FreeBSD.org>
|
||||||
|
|
||||||
* elf/common.h (AT_FREEBSD_FXRNG, AT_FREEBSD_KPRELOAD): Define.
|
* elf/common.h (AT_FREEBSD_FXRNG, AT_FREEBSD_KPRELOAD): Define.
|
||||||
|
@ -713,11 +713,6 @@ extern unsigned long long int strtoull (const char *nptr,
|
|||||||
char **endptr, int base);
|
char **endptr, int base);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(HAVE_DECL_STRVERSCMP) && !HAVE_DECL_STRVERSCMP
|
|
||||||
/* Compare version strings. */
|
|
||||||
extern int strverscmp (const char *, const char *);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Set the title of a process */
|
/* Set the title of a process */
|
||||||
extern void setproctitle (const char *name, ...);
|
extern void setproctitle (const char *name, ...);
|
||||||
|
|
||||||
|
@ -1,10 +1,123 @@
|
|||||||
2021-07-03 Nick Clifton <nickc@redhat.com>
|
2021-12-30 Lancelot SIX <lsix@lancelotsix.com>
|
||||||
|
|
||||||
|
* cp-demangle.c (d_clone_suffix): Support digits in clone tag
|
||||||
|
names.
|
||||||
|
* testsuite/demangle-expected: Check demangling of clone symbols
|
||||||
|
with digits in name.
|
||||||
|
|
||||||
|
2021-12-16 H.J. Lu <hjl.tools@gmail.com>
|
||||||
|
|
||||||
|
Revert:
|
||||||
|
2021-12-16 H.J. Lu <hjl.tools@gmail.com>
|
||||||
|
|
||||||
|
* Makefile.in (AR): Add @AR_PLUGIN_OPTION@
|
||||||
|
(RANLIB): Add @RANLIB_PLUGIN_OPTION@.
|
||||||
|
(configure_deps): Depend on ../config/gcc-plugin.m4.
|
||||||
|
* configure.ac: AC_SUBST AR_PLUGIN_OPTION and
|
||||||
|
RANLIB_PLUGIN_OPTION.
|
||||||
|
* aclocal.m4: Regenerated.
|
||||||
|
* configure: Likewise.
|
||||||
|
|
||||||
|
2021-12-15 H.J. Lu <hjl.tools@gmail.com>
|
||||||
|
|
||||||
|
* Makefile.in (AR): Add @AR_PLUGIN_OPTION@
|
||||||
|
(RANLIB): Add @RANLIB_PLUGIN_OPTION@.
|
||||||
|
(configure_deps): Depend on ../config/gcc-plugin.m4.
|
||||||
|
* configure.ac: AC_SUBST AR_PLUGIN_OPTION and
|
||||||
|
RANLIB_PLUGIN_OPTION.
|
||||||
|
* aclocal.m4: Regenerated.
|
||||||
|
* configure: Likewise.
|
||||||
|
|
||||||
|
2021-11-29 Eric Gallager <egallager@gcc.gnu.org>
|
||||||
|
|
||||||
|
PR other/103021
|
||||||
|
* Makefile.in: Use ETAGS variable in TAGS target.
|
||||||
|
* configure: Regenerate.
|
||||||
|
* configure.ac: Allow ETAGS variable to be overridden.
|
||||||
|
|
||||||
|
2021-11-29 Andrew Pinski <apinski@marvell.com>
|
||||||
|
|
||||||
|
* make-temp-file.c (try_dir): Check to see if the dir
|
||||||
|
is actually a directory.
|
||||||
|
|
||||||
|
2021-10-22 Eric Gallager <egallager@gcc.gnu.org>
|
||||||
|
|
||||||
|
PR other/102663
|
||||||
|
* Makefile.in: Allow dvi-formatted documentation
|
||||||
|
to be installed.
|
||||||
|
|
||||||
|
2021-10-17 Luís Ferreira <contact@lsferreira.net>
|
||||||
|
|
||||||
|
PR d/102618
|
||||||
|
* d-demangle.c (dlang_parse_qualified): Handle anonymous
|
||||||
|
symbols correctly.
|
||||||
|
* testsuite/d-demangle-expected: New tests to cover anonymous
|
||||||
|
symbols.
|
||||||
|
|
||||||
|
2021-10-14 Luís Ferreira <contact@lsferreira.net>
|
||||||
|
|
||||||
|
* testsuite/d-demangle-expected: Add test case for function literals.
|
||||||
|
|
||||||
|
2021-10-14 Luís Ferreira <contact@lsferreira.net>
|
||||||
|
|
||||||
|
* testsuite/d-demangle-expected: Add test cases for simple special
|
||||||
|
mangles.
|
||||||
|
|
||||||
|
2021-10-12 Luís Ferreira <contact@lsferreira.net>
|
||||||
|
|
||||||
|
* d-demangle.c (dlang_parse_qualified): Remove redudant parenthesis
|
||||||
|
around lhs and rhs of assignments.
|
||||||
|
|
||||||
|
2021-10-01 Luís Ferreira <contact@lsferreira.net>
|
||||||
|
|
||||||
|
* testsuite/d-demangle-expected: Add missing format for new test
|
||||||
|
|
||||||
|
2021-09-23 Luís Ferreira <contact@lsferreira.net>
|
||||||
|
|
||||||
|
* d-demangle.c (dlang_Type): Validate MANGLED is nonnull.
|
||||||
|
* testsuite/d-demangle-expected: New test.
|
||||||
|
|
||||||
|
2021-09-23 Luís Ferreira <contact@lsferreira.net>
|
||||||
|
|
||||||
|
* d-demangle.c (dlang_symbol_backref): Ensure strlen of
|
||||||
|
string is less than length computed by dlang_number.
|
||||||
|
|
||||||
|
2021-09-01 Iain Sandoe <iain@sandoe.co.uk>
|
||||||
|
|
||||||
* configure: Regenerate.
|
* configure: Regenerate.
|
||||||
|
* configure.ac: Do not search for sbrk on Darwin.
|
||||||
|
* xmalloc.c: Do not declare sbrk unless it has been found
|
||||||
|
by configure.
|
||||||
|
|
||||||
2021-07-03 Nick Clifton <nickc@redhat.com>
|
2021-08-29 Iain Buclaw <ibuclaw@gdcproject.org>
|
||||||
|
|
||||||
* 2.37 release branch created.
|
* d-demangle.c (dlang_identifier): Skip over fake parent manglings.
|
||||||
|
* testsuite/d-demangle-expected: Add tests.
|
||||||
|
|
||||||
|
2021-08-29 Iain Buclaw <ibuclaw@gdcproject.org>
|
||||||
|
|
||||||
|
* d-demangle.c (dlang_parse_arrayliteral): Add 'info' parameter.
|
||||||
|
(dlang_parse_assocarray): Likewise.
|
||||||
|
(dlang_parse_structlit): Likewise.
|
||||||
|
(dlang_value): Likewise. Handle function literal symbols.
|
||||||
|
(dlang_template_args): Pass 'info' to dlang_value.
|
||||||
|
* testsuite/d-demangle-expected: Add new test.
|
||||||
|
|
||||||
|
2021-08-29 Iain Buclaw <ibuclaw@gdcproject.org>
|
||||||
|
|
||||||
|
* d-demangle.c (dlang_attributes): Handle typeof(*null).
|
||||||
|
(dlang_type): Likewise. Demangle 'n' as typeof(null).
|
||||||
|
* testsuite/d-demangle-expected: Update tests.
|
||||||
|
|
||||||
|
2021-08-23 Iain Sandoe <iain@sandoe.co.uk>
|
||||||
|
|
||||||
|
* simple-object-mach-o.c (simple_object_mach_o_write_segment):
|
||||||
|
Cast the first argument to set_32 as needed.
|
||||||
|
|
||||||
|
2021-08-18 Iain Sandoe <iain@sandoe.co.uk>
|
||||||
|
|
||||||
|
* simple-object-mach-o.c (simple_object_mach_o_write_segment):
|
||||||
|
Arrange to swap the LTO index tables where needed.
|
||||||
|
|
||||||
2021-06-30 Gerald Pfeifer <gerald@pfeifer.com>
|
2021-06-30 Gerald Pfeifer <gerald@pfeifer.com>
|
||||||
|
|
||||||
|
@ -29,6 +29,7 @@ bindir = @bindir@
|
|||||||
libdir = @libdir@
|
libdir = @libdir@
|
||||||
includedir = @includedir@
|
includedir = @includedir@
|
||||||
target_header_dir = @target_header_dir@
|
target_header_dir = @target_header_dir@
|
||||||
|
dvidir = @dvidir@
|
||||||
objext = @OBJEXT@
|
objext = @OBJEXT@
|
||||||
|
|
||||||
SHELL = @SHELL@
|
SHELL = @SHELL@
|
||||||
@ -49,13 +50,13 @@ mkinstalldirs = $(SHELL) $(libiberty_topdir)/mkinstalldirs
|
|||||||
# Some compilers can't handle cc -c blah.c -o foo/blah.o.
|
# Some compilers can't handle cc -c blah.c -o foo/blah.o.
|
||||||
OUTPUT_OPTION = @OUTPUT_OPTION@
|
OUTPUT_OPTION = @OUTPUT_OPTION@
|
||||||
|
|
||||||
AR = @AR@ @AR_PLUGIN_OPTION@
|
AR = @AR@
|
||||||
AR_FLAGS = rc
|
AR_FLAGS = rc
|
||||||
|
|
||||||
CC = @CC@
|
CC = @CC@
|
||||||
CFLAGS = @CFLAGS@
|
CFLAGS = @CFLAGS@
|
||||||
CPPFLAGS = @CPPFLAGS@
|
CPPFLAGS = @CPPFLAGS@
|
||||||
RANLIB = @RANLIB@ @RANLIB_PLUGIN_OPTION@
|
RANLIB = @RANLIB@
|
||||||
MAKEINFO = @MAKEINFO@
|
MAKEINFO = @MAKEINFO@
|
||||||
PERL = @PERL@
|
PERL = @PERL@
|
||||||
|
|
||||||
@ -276,7 +277,24 @@ $(TESTLIB): $(REQUIRED_OFILES) $(CONFIGURED_OFILES)
|
|||||||
info: libiberty.info info-subdir
|
info: libiberty.info info-subdir
|
||||||
install-info: install-info-subdir
|
install-info: install-info-subdir
|
||||||
clean-info: clean-info-subdir
|
clean-info: clean-info-subdir
|
||||||
dvi: libiberty.dvi dvi-subdir
|
|
||||||
|
LIBIBERTY_DVIFILES = libiberty.dvi
|
||||||
|
|
||||||
|
dvi: $(LIBIBERTY_DVIFILES) dvi-subdir
|
||||||
|
|
||||||
|
.PHONY: install-dvi
|
||||||
|
|
||||||
|
dvi__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
|
||||||
|
|
||||||
|
install-dvi: $(LIBIBERTY_DVIFILES)
|
||||||
|
@$(NORMAL_INSTALL)
|
||||||
|
test -z "$(dvidir)" || $(mkinstalldirs) "$(DESTDIR)$(dvidir)"
|
||||||
|
@list='$(LIBIBERTY_DVIFILES)'; for p in $$list; do \
|
||||||
|
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
|
||||||
|
f=$(dvi__strip_dir) \
|
||||||
|
echo " $(INSTALL_DATA) '$$d$$p' '$(DESTDIR)$(dvidir)/$$f'"; \
|
||||||
|
$(INSTALL_DATA) "$$d$$p" "$(DESTDIR)$(dvidir)/$$f"; \
|
||||||
|
done
|
||||||
|
|
||||||
LIBIBERTY_PDFFILES = libiberty.pdf
|
LIBIBERTY_PDFFILES = libiberty.pdf
|
||||||
|
|
||||||
@ -411,8 +429,10 @@ stamp-noasandir:
|
|||||||
|
|
||||||
.PHONY: all etags tags TAGS ls clean stage1 stage2
|
.PHONY: all etags tags TAGS ls clean stage1 stage2
|
||||||
|
|
||||||
|
ETAGS = @ETAGS@
|
||||||
|
|
||||||
etags tags TAGS: etags-subdir
|
etags tags TAGS: etags-subdir
|
||||||
cd $(srcdir) && etags $(CFILES)
|
cd $(srcdir) && $(ETAGS) $(CFILES)
|
||||||
|
|
||||||
# The standalone demangler (c++filt) has been moved to binutils.
|
# The standalone demangler (c++filt) has been moved to binutils.
|
||||||
# But make this target work anyway for demangler hacking.
|
# But make this target work anyway for demangler hacking.
|
||||||
@ -487,7 +507,6 @@ aclocal_deps = \
|
|||||||
$(srcdir)/../config/acx.m4 \
|
$(srcdir)/../config/acx.m4 \
|
||||||
$(srcdir)/../config/cet.m4 \
|
$(srcdir)/../config/cet.m4 \
|
||||||
$(srcdir)/../config/enable.m4 \
|
$(srcdir)/../config/enable.m4 \
|
||||||
$(srcdir)/../config/gcc-plugin.m4 \
|
|
||||||
$(srcdir)/../config/no-executables.m4 \
|
$(srcdir)/../config/no-executables.m4 \
|
||||||
$(srcdir)/../config/override.m4 \
|
$(srcdir)/../config/override.m4 \
|
||||||
$(srcdir)/../config/picflag.m4 \
|
$(srcdir)/../config/picflag.m4 \
|
||||||
|
1
libiberty/aclocal.m4
vendored
1
libiberty/aclocal.m4
vendored
@ -15,7 +15,6 @@ m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun
|
|||||||
m4_include([../config/acx.m4])
|
m4_include([../config/acx.m4])
|
||||||
m4_include([../config/cet.m4])
|
m4_include([../config/cet.m4])
|
||||||
m4_include([../config/enable.m4])
|
m4_include([../config/enable.m4])
|
||||||
m4_include([../config/gcc-plugin.m4])
|
|
||||||
m4_include([../config/no-executables.m4])
|
m4_include([../config/no-executables.m4])
|
||||||
m4_include([../config/picflag.m4])
|
m4_include([../config/picflag.m4])
|
||||||
m4_include([../config/warnings.m4])
|
m4_include([../config/warnings.m4])
|
||||||
|
177
libiberty/configure
vendored
177
libiberty/configure
vendored
@ -645,8 +645,6 @@ CPPFLAGS
|
|||||||
LDFLAGS
|
LDFLAGS
|
||||||
CFLAGS
|
CFLAGS
|
||||||
CC
|
CC
|
||||||
RANLIB_PLUGIN_OPTION
|
|
||||||
AR_PLUGIN_OPTION
|
|
||||||
RANLIB
|
RANLIB
|
||||||
AR
|
AR
|
||||||
host_os
|
host_os
|
||||||
@ -661,6 +659,7 @@ HAVE_PERL
|
|||||||
PERL
|
PERL
|
||||||
BUILD_INFO
|
BUILD_INFO
|
||||||
MAKEINFO
|
MAKEINFO
|
||||||
|
ETAGS
|
||||||
NOTMAINT
|
NOTMAINT
|
||||||
MAINT
|
MAINT
|
||||||
libiberty_topdir
|
libiberty_topdir
|
||||||
@ -683,6 +682,7 @@ infodir
|
|||||||
docdir
|
docdir
|
||||||
oldincludedir
|
oldincludedir
|
||||||
includedir
|
includedir
|
||||||
|
runstatedir
|
||||||
localstatedir
|
localstatedir
|
||||||
sharedstatedir
|
sharedstatedir
|
||||||
sysconfdir
|
sysconfdir
|
||||||
@ -762,6 +762,7 @@ datadir='${datarootdir}'
|
|||||||
sysconfdir='${prefix}/etc'
|
sysconfdir='${prefix}/etc'
|
||||||
sharedstatedir='${prefix}/com'
|
sharedstatedir='${prefix}/com'
|
||||||
localstatedir='${prefix}/var'
|
localstatedir='${prefix}/var'
|
||||||
|
runstatedir='${localstatedir}/run'
|
||||||
includedir='${prefix}/include'
|
includedir='${prefix}/include'
|
||||||
oldincludedir='/usr/include'
|
oldincludedir='/usr/include'
|
||||||
docdir='${datarootdir}/doc/${PACKAGE}'
|
docdir='${datarootdir}/doc/${PACKAGE}'
|
||||||
@ -1014,6 +1015,15 @@ do
|
|||||||
| -silent | --silent | --silen | --sile | --sil)
|
| -silent | --silent | --silen | --sile | --sil)
|
||||||
silent=yes ;;
|
silent=yes ;;
|
||||||
|
|
||||||
|
-runstatedir | --runstatedir | --runstatedi | --runstated \
|
||||||
|
| --runstate | --runstat | --runsta | --runst | --runs \
|
||||||
|
| --run | --ru | --r)
|
||||||
|
ac_prev=runstatedir ;;
|
||||||
|
-runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \
|
||||||
|
| --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \
|
||||||
|
| --run=* | --ru=* | --r=*)
|
||||||
|
runstatedir=$ac_optarg ;;
|
||||||
|
|
||||||
-sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
|
-sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
|
||||||
ac_prev=sbindir ;;
|
ac_prev=sbindir ;;
|
||||||
-sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
|
-sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
|
||||||
@ -1151,7 +1161,7 @@ fi
|
|||||||
for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
|
for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
|
||||||
datadir sysconfdir sharedstatedir localstatedir includedir \
|
datadir sysconfdir sharedstatedir localstatedir includedir \
|
||||||
oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
|
oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
|
||||||
libdir localedir mandir
|
libdir localedir mandir runstatedir
|
||||||
do
|
do
|
||||||
eval ac_val=\$$ac_var
|
eval ac_val=\$$ac_var
|
||||||
# Remove trailing slashes.
|
# Remove trailing slashes.
|
||||||
@ -1304,6 +1314,7 @@ Fine tuning of the installation directories:
|
|||||||
--sysconfdir=DIR read-only single-machine data [PREFIX/etc]
|
--sysconfdir=DIR read-only single-machine data [PREFIX/etc]
|
||||||
--sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
|
--sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
|
||||||
--localstatedir=DIR modifiable single-machine data [PREFIX/var]
|
--localstatedir=DIR modifiable single-machine data [PREFIX/var]
|
||||||
|
--runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run]
|
||||||
--libdir=DIR object code libraries [EPREFIX/lib]
|
--libdir=DIR object code libraries [EPREFIX/lib]
|
||||||
--includedir=DIR C header files [PREFIX/include]
|
--includedir=DIR C header files [PREFIX/include]
|
||||||
--oldincludedir=DIR C header files for non-gcc [/usr/include]
|
--oldincludedir=DIR C header files for non-gcc [/usr/include]
|
||||||
@ -2560,6 +2571,11 @@ else
|
|||||||
NOTMAINT=''
|
NOTMAINT=''
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if test -z "$ETAGS"; then
|
||||||
|
ETAGS=etags
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
# Do we have a single-tree copy of texinfo? Even if we do, we can't
|
# Do we have a single-tree copy of texinfo? Even if we do, we can't
|
||||||
# rely on it - libiberty is built before texinfo.
|
# rely on it - libiberty is built before texinfo.
|
||||||
# Extract the first word of "makeinfo", so it can be a program name with args.
|
# Extract the first word of "makeinfo", so it can be a program name with args.
|
||||||
@ -2931,144 +2947,6 @@ else
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for -plugin option" >&5
|
|
||||||
$as_echo_n "checking for -plugin option... " >&6; }
|
|
||||||
|
|
||||||
plugin_names="liblto_plugin.so liblto_plugin-0.dll cyglto_plugin-0.dll"
|
|
||||||
plugin_option=
|
|
||||||
for plugin in $plugin_names; do
|
|
||||||
plugin_so=`${CC} ${CFLAGS} --print-prog-name $plugin`
|
|
||||||
if test x$plugin_so = x$plugin; then
|
|
||||||
plugin_so=`${CC} ${CFLAGS} --print-file-name $plugin`
|
|
||||||
fi
|
|
||||||
if test x$plugin_so != x$plugin; then
|
|
||||||
plugin_option="--plugin $plugin_so"
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
if test -n "$ac_tool_prefix"; then
|
|
||||||
# Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
|
|
||||||
set dummy ${ac_tool_prefix}ar; ac_word=$2
|
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
|
|
||||||
$as_echo_n "checking for $ac_word... " >&6; }
|
|
||||||
if ${ac_cv_prog_AR+:} false; then :
|
|
||||||
$as_echo_n "(cached) " >&6
|
|
||||||
else
|
|
||||||
if test -n "$AR"; then
|
|
||||||
ac_cv_prog_AR="$AR" # Let the user override the test.
|
|
||||||
else
|
|
||||||
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
|
|
||||||
for as_dir in $PATH
|
|
||||||
do
|
|
||||||
IFS=$as_save_IFS
|
|
||||||
test -z "$as_dir" && as_dir=.
|
|
||||||
for ac_exec_ext in '' $ac_executable_extensions; do
|
|
||||||
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
|
|
||||||
ac_cv_prog_AR="${ac_tool_prefix}ar"
|
|
||||||
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
|
||||||
break 2
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
done
|
|
||||||
IFS=$as_save_IFS
|
|
||||||
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
AR=$ac_cv_prog_AR
|
|
||||||
if test -n "$AR"; then
|
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
|
|
||||||
$as_echo "$AR" >&6; }
|
|
||||||
else
|
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
|
|
||||||
$as_echo "no" >&6; }
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
fi
|
|
||||||
if test -z "$ac_cv_prog_AR"; then
|
|
||||||
ac_ct_AR=$AR
|
|
||||||
# Extract the first word of "ar", so it can be a program name with args.
|
|
||||||
set dummy ar; ac_word=$2
|
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
|
|
||||||
$as_echo_n "checking for $ac_word... " >&6; }
|
|
||||||
if ${ac_cv_prog_ac_ct_AR+:} false; then :
|
|
||||||
$as_echo_n "(cached) " >&6
|
|
||||||
else
|
|
||||||
if test -n "$ac_ct_AR"; then
|
|
||||||
ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
|
|
||||||
else
|
|
||||||
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
|
|
||||||
for as_dir in $PATH
|
|
||||||
do
|
|
||||||
IFS=$as_save_IFS
|
|
||||||
test -z "$as_dir" && as_dir=.
|
|
||||||
for ac_exec_ext in '' $ac_executable_extensions; do
|
|
||||||
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
|
|
||||||
ac_cv_prog_ac_ct_AR="ar"
|
|
||||||
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
|
|
||||||
break 2
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
done
|
|
||||||
IFS=$as_save_IFS
|
|
||||||
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
ac_ct_AR=$ac_cv_prog_ac_ct_AR
|
|
||||||
if test -n "$ac_ct_AR"; then
|
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
|
|
||||||
$as_echo "$ac_ct_AR" >&6; }
|
|
||||||
else
|
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
|
|
||||||
$as_echo "no" >&6; }
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "x$ac_ct_AR" = x; then
|
|
||||||
AR=""
|
|
||||||
else
|
|
||||||
case $cross_compiling:$ac_tool_warned in
|
|
||||||
yes:)
|
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
|
|
||||||
$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
|
|
||||||
ac_tool_warned=yes ;;
|
|
||||||
esac
|
|
||||||
AR=$ac_ct_AR
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
AR="$ac_cv_prog_AR"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "${AR}" = "" ; then
|
|
||||||
as_fn_error $? "Required archive tool 'ar' not found on PATH." "$LINENO" 5
|
|
||||||
fi
|
|
||||||
touch conftest.c
|
|
||||||
${AR} $plugin_option rc conftest.a conftest.c
|
|
||||||
if test "$?" != 0; then
|
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Failed: $AR $plugin_option rc" >&5
|
|
||||||
$as_echo "$as_me: WARNING: Failed: $AR $plugin_option rc" >&2;}
|
|
||||||
plugin_option=
|
|
||||||
fi
|
|
||||||
rm -f conftest.*
|
|
||||||
if test -n "$plugin_option"; then
|
|
||||||
PLUGIN_OPTION="$plugin_option"
|
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $plugin_option" >&5
|
|
||||||
$as_echo "$plugin_option" >&6; }
|
|
||||||
else
|
|
||||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
|
|
||||||
$as_echo "no" >&6; }
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test -n "$PLUGIN_OPTION"; then
|
|
||||||
if $AR --help 2>&1 | grep -q "\--plugin"; then
|
|
||||||
AR_PLUGIN_OPTION="$PLUGIN_OPTION"
|
|
||||||
|
|
||||||
fi
|
|
||||||
if $RANLIB --help 2>&1 | grep -q "\--plugin"; then
|
|
||||||
RANLIB_PLUGIN_OPTION="$PLUGIN_OPTION"
|
|
||||||
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Add --enable-multilib to configure.
|
# Add --enable-multilib to configure.
|
||||||
# Default to --enable-multilib
|
# Default to --enable-multilib
|
||||||
# Check whether --enable-multilib was given.
|
# Check whether --enable-multilib was given.
|
||||||
@ -6155,9 +6033,16 @@ vars="sys_errlist sys_nerr sys_siglist"
|
|||||||
|
|
||||||
checkfuncs="__fsetlocking canonicalize_file_name dup3 getrlimit getrusage \
|
checkfuncs="__fsetlocking canonicalize_file_name dup3 getrlimit getrusage \
|
||||||
getsysinfo gettimeofday on_exit pipe2 psignal pstat_getdynamic pstat_getstatic \
|
getsysinfo gettimeofday on_exit pipe2 psignal pstat_getdynamic pstat_getstatic \
|
||||||
realpath setrlimit sbrk spawnve spawnvpe strerror strsignal sysconf sysctl \
|
realpath setrlimit spawnve spawnvpe strerror strsignal sysconf sysctl \
|
||||||
sysmp table times wait3 wait4"
|
sysmp table times wait3 wait4"
|
||||||
|
|
||||||
|
# Darwin has sbrk, but it is deprecated and that produces build-time warnings
|
||||||
|
# so do not check for it.
|
||||||
|
case "${host}" in
|
||||||
|
*-*-darwin*) ;;
|
||||||
|
*) checkfuncs="$checkfuncs sbrk"
|
||||||
|
esac
|
||||||
|
|
||||||
# These are neither executed nor required, but they help keep
|
# These are neither executed nor required, but they help keep
|
||||||
# autoheader happy without adding a bunch of text to acconfig.h.
|
# autoheader happy without adding a bunch of text to acconfig.h.
|
||||||
if test "x" = "y"; then
|
if test "x" = "y"; then
|
||||||
@ -7386,7 +7271,10 @@ fi
|
|||||||
cat >>confdefs.h <<_ACEOF
|
cat >>confdefs.h <<_ACEOF
|
||||||
#define HAVE_DECL_REALLOC $ac_have_decl
|
#define HAVE_DECL_REALLOC $ac_have_decl
|
||||||
_ACEOF
|
_ACEOF
|
||||||
ac_fn_c_check_decl "$LINENO" "sbrk" "ac_cv_have_decl_sbrk" "$ac_includes_default"
|
|
||||||
|
case "${host}" in
|
||||||
|
*-*-darwin*) ;; # Darwin's sbrk implementation is deprecated.
|
||||||
|
*) ac_fn_c_check_decl "$LINENO" "sbrk" "ac_cv_have_decl_sbrk" "$ac_includes_default"
|
||||||
if test "x$ac_cv_have_decl_sbrk" = xyes; then :
|
if test "x$ac_cv_have_decl_sbrk" = xyes; then :
|
||||||
ac_have_decl=1
|
ac_have_decl=1
|
||||||
else
|
else
|
||||||
@ -7396,7 +7284,8 @@ fi
|
|||||||
cat >>confdefs.h <<_ACEOF
|
cat >>confdefs.h <<_ACEOF
|
||||||
#define HAVE_DECL_SBRK $ac_have_decl
|
#define HAVE_DECL_SBRK $ac_have_decl
|
||||||
_ACEOF
|
_ACEOF
|
||||||
|
;;
|
||||||
|
esac
|
||||||
ac_fn_c_check_decl "$LINENO" "strtol" "ac_cv_have_decl_strtol" "$ac_includes_default"
|
ac_fn_c_check_decl "$LINENO" "strtol" "ac_cv_have_decl_strtol" "$ac_includes_default"
|
||||||
if test "x$ac_cv_have_decl_strtol" = xyes; then :
|
if test "x$ac_cv_have_decl_strtol" = xyes; then :
|
||||||
ac_have_decl=1
|
ac_have_decl=1
|
||||||
|
@ -61,6 +61,11 @@ fi
|
|||||||
AC_SUBST(MAINT)dnl
|
AC_SUBST(MAINT)dnl
|
||||||
AC_SUBST(NOTMAINT)dnl
|
AC_SUBST(NOTMAINT)dnl
|
||||||
|
|
||||||
|
if test -z "$ETAGS"; then
|
||||||
|
ETAGS=etags
|
||||||
|
fi
|
||||||
|
AC_SUBST([ETAGS])
|
||||||
|
|
||||||
# Do we have a single-tree copy of texinfo? Even if we do, we can't
|
# Do we have a single-tree copy of texinfo? Even if we do, we can't
|
||||||
# rely on it - libiberty is built before texinfo.
|
# rely on it - libiberty is built before texinfo.
|
||||||
AC_CHECK_PROG(MAKEINFO, makeinfo, makeinfo, )
|
AC_CHECK_PROG(MAKEINFO, makeinfo, makeinfo, )
|
||||||
@ -108,18 +113,6 @@ dnl to call AC_CHECK_PROG.
|
|||||||
AC_CHECK_TOOL(AR, ar)
|
AC_CHECK_TOOL(AR, ar)
|
||||||
AC_CHECK_TOOL(RANLIB, ranlib, :)
|
AC_CHECK_TOOL(RANLIB, ranlib, :)
|
||||||
|
|
||||||
GCC_PLUGIN_OPTION(PLUGIN_OPTION)
|
|
||||||
if test -n "$PLUGIN_OPTION"; then
|
|
||||||
if $AR --help 2>&1 | grep -q "\--plugin"; then
|
|
||||||
AR_PLUGIN_OPTION="$PLUGIN_OPTION"
|
|
||||||
AC_SUBST(AR_PLUGIN_OPTION)
|
|
||||||
fi
|
|
||||||
if $RANLIB --help 2>&1 | grep -q "\--plugin"; then
|
|
||||||
RANLIB_PLUGIN_OPTION="$PLUGIN_OPTION"
|
|
||||||
AC_SUBST(RANLIB_PLUGIN_OPTION)
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
dnl When switching to automake, replace the following with AM_ENABLE_MULTILIB.
|
dnl When switching to automake, replace the following with AM_ENABLE_MULTILIB.
|
||||||
# Add --enable-multilib to configure.
|
# Add --enable-multilib to configure.
|
||||||
# Default to --enable-multilib
|
# Default to --enable-multilib
|
||||||
@ -407,9 +400,16 @@ vars="sys_errlist sys_nerr sys_siglist"
|
|||||||
|
|
||||||
checkfuncs="__fsetlocking canonicalize_file_name dup3 getrlimit getrusage \
|
checkfuncs="__fsetlocking canonicalize_file_name dup3 getrlimit getrusage \
|
||||||
getsysinfo gettimeofday on_exit pipe2 psignal pstat_getdynamic pstat_getstatic \
|
getsysinfo gettimeofday on_exit pipe2 psignal pstat_getdynamic pstat_getstatic \
|
||||||
realpath setrlimit sbrk spawnve spawnvpe strerror strsignal sysconf sysctl \
|
realpath setrlimit spawnve spawnvpe strerror strsignal sysconf sysctl \
|
||||||
sysmp table times wait3 wait4"
|
sysmp table times wait3 wait4"
|
||||||
|
|
||||||
|
# Darwin has sbrk, but it is deprecated and that produces build-time warnings
|
||||||
|
# so do not check for it.
|
||||||
|
case "${host}" in
|
||||||
|
*-*-darwin*) ;;
|
||||||
|
*) checkfuncs="$checkfuncs sbrk"
|
||||||
|
esac
|
||||||
|
|
||||||
# These are neither executed nor required, but they help keep
|
# These are neither executed nor required, but they help keep
|
||||||
# autoheader happy without adding a bunch of text to acconfig.h.
|
# autoheader happy without adding a bunch of text to acconfig.h.
|
||||||
if test "x" = "y"; then
|
if test "x" = "y"; then
|
||||||
@ -707,7 +707,11 @@ if test -z "${setobjs}"; then
|
|||||||
|
|
||||||
AC_CHECK_FUNCS($checkfuncs)
|
AC_CHECK_FUNCS($checkfuncs)
|
||||||
AC_CHECK_DECLS([basename(char *), ffs, asprintf, vasprintf, snprintf, vsnprintf])
|
AC_CHECK_DECLS([basename(char *), ffs, asprintf, vasprintf, snprintf, vsnprintf])
|
||||||
AC_CHECK_DECLS([calloc, getenv, getopt, malloc, realloc, sbrk])
|
AC_CHECK_DECLS([calloc, getenv, getopt, malloc, realloc])
|
||||||
|
case "${host}" in
|
||||||
|
*-*-darwin*) ;; # Darwin's sbrk implementation is deprecated.
|
||||||
|
*) AC_CHECK_DECLS([sbrk]);;
|
||||||
|
esac
|
||||||
AC_CHECK_DECLS([strtol, strtoul, strtoll, strtoull])
|
AC_CHECK_DECLS([strtol, strtoul, strtoll, strtoull])
|
||||||
AC_CHECK_DECLS([strverscmp])
|
AC_CHECK_DECLS([strverscmp])
|
||||||
AC_CHECK_DECLS([strnlen])
|
AC_CHECK_DECLS([strnlen])
|
||||||
|
@ -3884,10 +3884,11 @@ d_clone_suffix (struct d_info *di, struct demangle_component *encoding)
|
|||||||
const char *pend = suffix;
|
const char *pend = suffix;
|
||||||
struct demangle_component *n;
|
struct demangle_component *n;
|
||||||
|
|
||||||
if (*pend == '.' && (IS_LOWER (pend[1]) || pend[1] == '_'))
|
if (*pend == '.' && (IS_LOWER (pend[1]) || IS_DIGIT (pend[1])
|
||||||
|
|| pend[1] == '_'))
|
||||||
{
|
{
|
||||||
pend += 2;
|
pend += 2;
|
||||||
while (IS_LOWER (*pend) || *pend == '_')
|
while (IS_LOWER (*pend) || IS_DIGIT (*pend) || *pend == '_')
|
||||||
++pend;
|
++pend;
|
||||||
}
|
}
|
||||||
while (*pend == '.' && IS_DIGIT (pend[1]))
|
while (*pend == '.' && IS_DIGIT (pend[1]))
|
||||||
|
@ -191,7 +191,8 @@ static const char *dlang_function_args (string *, const char *,
|
|||||||
|
|
||||||
static const char *dlang_type (string *, const char *, struct dlang_info *);
|
static const char *dlang_type (string *, const char *, struct dlang_info *);
|
||||||
|
|
||||||
static const char *dlang_value (string *, const char *, const char *, char);
|
static const char *dlang_value (string *, const char *, const char *, char,
|
||||||
|
struct dlang_info *);
|
||||||
|
|
||||||
static const char *dlang_parse_qualified (string *, const char *,
|
static const char *dlang_parse_qualified (string *, const char *,
|
||||||
struct dlang_info *, int);
|
struct dlang_info *, int);
|
||||||
@ -252,15 +253,15 @@ dlang_hexdigit (const char *mangled, char *ret)
|
|||||||
|
|
||||||
c = mangled[0];
|
c = mangled[0];
|
||||||
if (!ISDIGIT (c))
|
if (!ISDIGIT (c))
|
||||||
(*ret) = (c - (ISUPPER (c) ? 'A' : 'a') + 10);
|
*ret = c - (ISUPPER (c) ? 'A' : 'a') + 10;
|
||||||
else
|
else
|
||||||
(*ret) = (c - '0');
|
*ret = c - '0';
|
||||||
|
|
||||||
c = mangled[1];
|
c = mangled[1];
|
||||||
if (!ISDIGIT (c))
|
if (!ISDIGIT (c))
|
||||||
(*ret) = (*ret << 4) | (c - (ISUPPER (c) ? 'A' : 'a') + 10);
|
*ret = (*ret << 4) | (c - (ISUPPER (c) ? 'A' : 'a') + 10);
|
||||||
else
|
else
|
||||||
(*ret) = (*ret << 4) | (c - '0');
|
*ret = (*ret << 4) | (c - '0');
|
||||||
|
|
||||||
mangled += 2;
|
mangled += 2;
|
||||||
|
|
||||||
@ -337,7 +338,7 @@ dlang_decode_backref (const char *mangled, long *ret)
|
|||||||
static const char *
|
static const char *
|
||||||
dlang_backref (const char *mangled, const char **ret, struct dlang_info *info)
|
dlang_backref (const char *mangled, const char **ret, struct dlang_info *info)
|
||||||
{
|
{
|
||||||
(*ret) = NULL;
|
*ret = NULL;
|
||||||
|
|
||||||
if (mangled == NULL || *mangled != 'Q')
|
if (mangled == NULL || *mangled != 'Q')
|
||||||
return NULL;
|
return NULL;
|
||||||
@ -355,7 +356,7 @@ dlang_backref (const char *mangled, const char **ret, struct dlang_info *info)
|
|||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
/* Set the position of the back reference. */
|
/* Set the position of the back reference. */
|
||||||
(*ret) = qpos - refpos;
|
*ret = qpos - refpos;
|
||||||
|
|
||||||
return mangled;
|
return mangled;
|
||||||
}
|
}
|
||||||
@ -380,7 +381,7 @@ dlang_symbol_backref (string *decl, const char *mangled,
|
|||||||
|
|
||||||
/* Must point to a simple identifier. */
|
/* Must point to a simple identifier. */
|
||||||
backref = dlang_number (backref, &len);
|
backref = dlang_number (backref, &len);
|
||||||
if (backref == NULL)
|
if (backref == NULL || strlen(backref) < len)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
backref = dlang_lname (decl, backref, len);
|
backref = dlang_lname (decl, backref, len);
|
||||||
@ -573,9 +574,11 @@ dlang_attributes (string *decl, const char *mangled)
|
|||||||
case 'g':
|
case 'g':
|
||||||
case 'h':
|
case 'h':
|
||||||
case 'k':
|
case 'k':
|
||||||
|
case 'n':
|
||||||
/* 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'.
|
return parameter is represented as 'Nk'.
|
||||||
|
typeof(*null) parameter is represented as 'Nn'.
|
||||||
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--;
|
||||||
@ -787,6 +790,12 @@ dlang_type (string *decl, const char *mangled, struct dlang_info *info)
|
|||||||
string_append (decl, ")");
|
string_append (decl, ")");
|
||||||
return mangled;
|
return mangled;
|
||||||
}
|
}
|
||||||
|
else if (*mangled == 'n') /* typeof(*null) */
|
||||||
|
{
|
||||||
|
mangled++;
|
||||||
|
string_append (decl, "typeof(*null)");
|
||||||
|
return mangled;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
return NULL;
|
return NULL;
|
||||||
case 'A': /* dynamic array (T[]) */
|
case 'A': /* dynamic array (T[]) */
|
||||||
@ -866,7 +875,7 @@ dlang_type (string *decl, const char *mangled, struct dlang_info *info)
|
|||||||
szmods = string_length (&mods);
|
szmods = string_length (&mods);
|
||||||
|
|
||||||
/* Back referenced function type. */
|
/* Back referenced function type. */
|
||||||
if (*mangled == 'Q')
|
if (mangled && *mangled == 'Q')
|
||||||
mangled = dlang_type_backref (decl, mangled, info, 1);
|
mangled = dlang_type_backref (decl, mangled, info, 1);
|
||||||
else
|
else
|
||||||
mangled = dlang_function_type (decl, mangled, info);
|
mangled = dlang_function_type (decl, mangled, info);
|
||||||
@ -884,7 +893,7 @@ dlang_type (string *decl, const char *mangled, struct dlang_info *info)
|
|||||||
/* Basic types */
|
/* Basic types */
|
||||||
case 'n':
|
case 'n':
|
||||||
mangled++;
|
mangled++;
|
||||||
string_append (decl, "none");
|
string_append (decl, "typeof(null)");
|
||||||
return mangled;
|
return mangled;
|
||||||
case 'v':
|
case 'v':
|
||||||
mangled++;
|
mangled++;
|
||||||
@ -1035,6 +1044,25 @@ dlang_identifier (string *decl, const char *mangled, struct dlang_info *info)
|
|||||||
&& (mangled[2] == 'T' || mangled[2] == 'U'))
|
&& (mangled[2] == 'T' || mangled[2] == 'U'))
|
||||||
return dlang_parse_template (decl, mangled, info, len);
|
return dlang_parse_template (decl, mangled, info, len);
|
||||||
|
|
||||||
|
/* There can be multiple different declarations in the same function that have
|
||||||
|
the same mangled name. To make the mangled names unique, a fake parent in
|
||||||
|
the form `__Sddd' is added to the symbol. */
|
||||||
|
if (len >= 4 && mangled[0] == '_' && mangled[1] == '_' && mangled[2] == 'S')
|
||||||
|
{
|
||||||
|
const char *numptr = mangled + 3;
|
||||||
|
while (numptr < (mangled + len) && ISDIGIT (*numptr))
|
||||||
|
numptr++;
|
||||||
|
|
||||||
|
if (mangled + len == numptr)
|
||||||
|
{
|
||||||
|
/* Skip over the fake parent. */
|
||||||
|
mangled += len;
|
||||||
|
return dlang_identifier (decl, mangled, info);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* else demangle it as a plain identifier. */
|
||||||
|
}
|
||||||
|
|
||||||
return dlang_lname (decl, mangled, len);
|
return dlang_lname (decl, mangled, len);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1378,7 +1406,8 @@ dlang_parse_string (string *decl, const char *mangled)
|
|||||||
/* Extract the static array value from MANGLED and append it to DECL.
|
/* Extract the static array value 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_parse_arrayliteral (string *decl, const char *mangled)
|
dlang_parse_arrayliteral (string *decl, const char *mangled,
|
||||||
|
struct dlang_info *info)
|
||||||
{
|
{
|
||||||
unsigned long elements;
|
unsigned long elements;
|
||||||
|
|
||||||
@ -1389,7 +1418,7 @@ dlang_parse_arrayliteral (string *decl, const char *mangled)
|
|||||||
string_append (decl, "[");
|
string_append (decl, "[");
|
||||||
while (elements--)
|
while (elements--)
|
||||||
{
|
{
|
||||||
mangled = dlang_value (decl, mangled, NULL, '\0');
|
mangled = dlang_value (decl, mangled, NULL, '\0', info);
|
||||||
if (mangled == NULL)
|
if (mangled == NULL)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
@ -1404,7 +1433,8 @@ dlang_parse_arrayliteral (string *decl, const char *mangled)
|
|||||||
/* Extract the associative array value from MANGLED and append it to DECL.
|
/* Extract the associative array value 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_parse_assocarray (string *decl, const char *mangled)
|
dlang_parse_assocarray (string *decl, const char *mangled,
|
||||||
|
struct dlang_info *info)
|
||||||
{
|
{
|
||||||
unsigned long elements;
|
unsigned long elements;
|
||||||
|
|
||||||
@ -1415,12 +1445,12 @@ dlang_parse_assocarray (string *decl, const char *mangled)
|
|||||||
string_append (decl, "[");
|
string_append (decl, "[");
|
||||||
while (elements--)
|
while (elements--)
|
||||||
{
|
{
|
||||||
mangled = dlang_value (decl, mangled, NULL, '\0');
|
mangled = dlang_value (decl, mangled, NULL, '\0', info);
|
||||||
if (mangled == NULL)
|
if (mangled == NULL)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
string_append (decl, ":");
|
string_append (decl, ":");
|
||||||
mangled = dlang_value (decl, mangled, NULL, '\0');
|
mangled = dlang_value (decl, mangled, NULL, '\0', info);
|
||||||
if (mangled == NULL)
|
if (mangled == NULL)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
@ -1435,7 +1465,8 @@ dlang_parse_assocarray (string *decl, const char *mangled)
|
|||||||
/* Extract the struct literal value for NAME from MANGLED and append it to DECL.
|
/* Extract the struct literal value for NAME 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_parse_structlit (string *decl, const char *mangled, const char *name)
|
dlang_parse_structlit (string *decl, const char *mangled, const char *name,
|
||||||
|
struct dlang_info *info)
|
||||||
{
|
{
|
||||||
unsigned long args;
|
unsigned long args;
|
||||||
|
|
||||||
@ -1449,7 +1480,7 @@ dlang_parse_structlit (string *decl, const char *mangled, const char *name)
|
|||||||
string_append (decl, "(");
|
string_append (decl, "(");
|
||||||
while (args--)
|
while (args--)
|
||||||
{
|
{
|
||||||
mangled = dlang_value (decl, mangled, NULL, '\0');
|
mangled = dlang_value (decl, mangled, NULL, '\0', info);
|
||||||
if (mangled == NULL)
|
if (mangled == NULL)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
@ -1464,7 +1495,8 @@ dlang_parse_structlit (string *decl, const char *mangled, const char *name)
|
|||||||
/* Extract the value from MANGLED and append it to DECL.
|
/* Extract the value 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_value (string *decl, const char *mangled, const char *name, char type)
|
dlang_value (string *decl, const char *mangled, const char *name, char type,
|
||||||
|
struct dlang_info *info)
|
||||||
{
|
{
|
||||||
if (mangled == NULL || *mangled == '\0')
|
if (mangled == NULL || *mangled == '\0')
|
||||||
return NULL;
|
return NULL;
|
||||||
@ -1525,15 +1557,24 @@ dlang_value (string *decl, const char *mangled, const char *name, char type)
|
|||||||
case 'A':
|
case 'A':
|
||||||
mangled++;
|
mangled++;
|
||||||
if (type == 'H')
|
if (type == 'H')
|
||||||
mangled = dlang_parse_assocarray (decl, mangled);
|
mangled = dlang_parse_assocarray (decl, mangled, info);
|
||||||
else
|
else
|
||||||
mangled = dlang_parse_arrayliteral (decl, mangled);
|
mangled = dlang_parse_arrayliteral (decl, mangled, info);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
/* Struct values. */
|
/* Struct values. */
|
||||||
case 'S':
|
case 'S':
|
||||||
mangled++;
|
mangled++;
|
||||||
mangled = dlang_parse_structlit (decl, mangled, name);
|
mangled = dlang_parse_structlit (decl, mangled, name, info);
|
||||||
|
break;
|
||||||
|
|
||||||
|
/* Function literal symbol. */
|
||||||
|
case 'f':
|
||||||
|
mangled++;
|
||||||
|
if (strncmp (mangled, "_D", 2) != 0
|
||||||
|
|| !dlang_symbol_name_p (mangled + 2, info))
|
||||||
|
return NULL;
|
||||||
|
mangled = dlang_parse_mangle (decl, mangled, info);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
@ -1609,13 +1650,19 @@ dlang_parse_qualified (string *decl, const char *mangled,
|
|||||||
size_t n = 0;
|
size_t n = 0;
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
|
/* Skip over anonymous symbols. */
|
||||||
|
if (*mangled == '0')
|
||||||
|
{
|
||||||
|
do
|
||||||
|
mangled++;
|
||||||
|
while (*mangled == '0');
|
||||||
|
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
if (n++)
|
if (n++)
|
||||||
string_append (decl, ".");
|
string_append (decl, ".");
|
||||||
|
|
||||||
/* Skip over anonymous symbols. */
|
|
||||||
while (*mangled == '0')
|
|
||||||
mangled++;
|
|
||||||
|
|
||||||
mangled = dlang_identifier (decl, mangled, info);
|
mangled = dlang_identifier (decl, mangled, info);
|
||||||
|
|
||||||
/* Consume the encoded arguments. However if this is not followed by the
|
/* Consume the encoded arguments. However if this is not followed by the
|
||||||
@ -1806,7 +1853,7 @@ dlang_template_args (string *decl, const char *mangled, struct dlang_info *info)
|
|||||||
string_need (&name, 1);
|
string_need (&name, 1);
|
||||||
*(name.p) = '\0';
|
*(name.p) = '\0';
|
||||||
|
|
||||||
mangled = dlang_value (decl, mangled, name.b, type);
|
mangled = dlang_value (decl, mangled, name.b, type, info);
|
||||||
string_delete (&name);
|
string_delete (&name);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -39,6 +39,10 @@ Boston, MA 02110-1301, USA. */
|
|||||||
#if defined(_WIN32) && !defined(__CYGWIN__)
|
#if defined(_WIN32) && !defined(__CYGWIN__)
|
||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
#endif
|
#endif
|
||||||
|
#if HAVE_SYS_STAT_H
|
||||||
|
#include <sys/stat.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#ifndef R_OK
|
#ifndef R_OK
|
||||||
#define R_OK 4
|
#define R_OK 4
|
||||||
@ -76,7 +80,17 @@ try_dir (const char *dir, const char *base)
|
|||||||
return base;
|
return base;
|
||||||
if (dir != 0
|
if (dir != 0
|
||||||
&& access (dir, R_OK | W_OK | X_OK) == 0)
|
&& access (dir, R_OK | W_OK | X_OK) == 0)
|
||||||
return dir;
|
{
|
||||||
|
/* Check to make sure dir is actually a directory. */
|
||||||
|
#ifdef S_ISDIR
|
||||||
|
struct stat s;
|
||||||
|
if (stat (dir, &s))
|
||||||
|
return NULL;
|
||||||
|
if (!S_ISDIR (s.st_mode))
|
||||||
|
return NULL;
|
||||||
|
#endif
|
||||||
|
return dir;
|
||||||
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1225,6 +1225,11 @@ simple_object_mach_o_write_segment (simple_object_write *sobj, int descriptor,
|
|||||||
index[4 * i] -= index[0];
|
index[4 * i] -= index[0];
|
||||||
index[0] = 0;
|
index[0] = 0;
|
||||||
|
|
||||||
|
/* Swap the indices, if required. */
|
||||||
|
|
||||||
|
for (i = 0; i < (nsects_in * 4); ++i)
|
||||||
|
set_32 ((unsigned char *) &index[i], index[i]);
|
||||||
|
|
||||||
sechdr_offset += sechdrsize;
|
sechdr_offset += sechdrsize;
|
||||||
|
|
||||||
/* Write out the section names.
|
/* Write out the section names.
|
||||||
|
@ -18,6 +18,14 @@ _Dmain
|
|||||||
D main
|
D main
|
||||||
#
|
#
|
||||||
--format=dlang
|
--format=dlang
|
||||||
|
_D8demangleZ
|
||||||
|
demangle
|
||||||
|
#
|
||||||
|
--format=dlang
|
||||||
|
_D8demangle4testZ
|
||||||
|
demangle.test
|
||||||
|
#
|
||||||
|
--format=dlang
|
||||||
_D8demangle4testPFLAiYi
|
_D8demangle4testPFLAiYi
|
||||||
demangle.test
|
demangle.test
|
||||||
#
|
#
|
||||||
@ -83,7 +91,11 @@ demangle.test(ulong)
|
|||||||
#
|
#
|
||||||
--format=dlang
|
--format=dlang
|
||||||
_D8demangle4testFnZv
|
_D8demangle4testFnZv
|
||||||
demangle.test(none)
|
demangle.test(typeof(null))
|
||||||
|
#
|
||||||
|
--format=dlang
|
||||||
|
_D8demangle4testFNnZv
|
||||||
|
demangle.test(typeof(*null))
|
||||||
#
|
#
|
||||||
--format=dlang
|
--format=dlang
|
||||||
_D8demangle4testFoZv
|
_D8demangle4testFoZv
|
||||||
@ -969,6 +981,10 @@ demangle.test(char)
|
|||||||
_D8demangle000000004testFaZv
|
_D8demangle000000004testFaZv
|
||||||
demangle.test(char)
|
demangle.test(char)
|
||||||
#
|
#
|
||||||
|
--format=dlang
|
||||||
|
_D8demangle__T3abcS_DQt10__lambda13FNaNbNiNfZiZQBhFZi
|
||||||
|
demangle.abc!(demangle.__lambda13()).abc()
|
||||||
|
#
|
||||||
# Unittests
|
# Unittests
|
||||||
#
|
#
|
||||||
--format=dlang
|
--format=dlang
|
||||||
@ -992,6 +1008,10 @@ _D00
|
|||||||
_D00
|
_D00
|
||||||
#
|
#
|
||||||
--format=dlang
|
--format=dlang
|
||||||
|
_D01_D
|
||||||
|
_D01_D
|
||||||
|
#
|
||||||
|
--format=dlang
|
||||||
_D9223372036854775817
|
_D9223372036854775817
|
||||||
_D9223372036854775817
|
_D9223372036854775817
|
||||||
#
|
#
|
||||||
@ -1414,3 +1434,39 @@ std.algorithm.iteration.FilterResult!(std.typecons.Tuple!(int, "a", int, "b", in
|
|||||||
--format=dlang
|
--format=dlang
|
||||||
_D3std3uni__T6toCaseS_DQvQt12toLowerIndexFNaNbNiNewZtVii1043S_DQCjQCi10toLowerTabFNaNbNiNemZwSQDo5ascii7toLowerTAyaZQDzFNaNeQmZ14__foreachbody2MFNaNeKmKwZ14__foreachbody3MFNaNeKwZi
|
_D3std3uni__T6toCaseS_DQvQt12toLowerIndexFNaNbNiNewZtVii1043S_DQCjQCi10toLowerTabFNaNbNiNemZwSQDo5ascii7toLowerTAyaZQDzFNaNeQmZ14__foreachbody2MFNaNeKmKwZ14__foreachbody3MFNaNeKwZi
|
||||||
std.uni.toCase!(std.uni.toLowerIndex(dchar), 1043, std.uni.toLowerTab(ulong), std.ascii.toLower, immutable(char)[]).toCase(immutable(char)[]).__foreachbody2(ref ulong, ref dchar).__foreachbody3(ref dchar)
|
std.uni.toCase!(std.uni.toLowerIndex(dchar), 1043, std.uni.toLowerTab(ulong), std.ascii.toLower, immutable(char)[]).toCase(immutable(char)[]).__foreachbody2(ref ulong, ref dchar).__foreachbody3(ref dchar)
|
||||||
|
#
|
||||||
|
--format=dlang
|
||||||
|
_D8demangle4mainFZ1xi
|
||||||
|
demangle.main().x
|
||||||
|
#
|
||||||
|
--format=dlang
|
||||||
|
_D8demangle4mainFZ4__S11xi
|
||||||
|
demangle.main().x
|
||||||
|
#
|
||||||
|
--format=dlang
|
||||||
|
_D8demangle4mainFZ1fMFNaNbNiNfZv
|
||||||
|
demangle.main().f()
|
||||||
|
#
|
||||||
|
--format=dlang
|
||||||
|
_D8demangle4mainFZ4__S11fMFNaNbNiNfZv
|
||||||
|
demangle.main().f()
|
||||||
|
#
|
||||||
|
--format=dlang
|
||||||
|
_D3mod4funcFZ__T6nestedTiZQkMFNaNbNiNfZi
|
||||||
|
mod.func().nested!(int).nested()
|
||||||
|
#
|
||||||
|
--format=dlang
|
||||||
|
_D3mod4funcFZ__T6nestedTiZ4__S1QpMFNaNbNiNfZi
|
||||||
|
mod.func().nested!(int).nested()
|
||||||
|
#
|
||||||
|
--format=dlang
|
||||||
|
_D6mangle__T8fun21753VSQv6S21753S1f_DQBj10__lambda71MFNaNbNiNfZvZQCbQp
|
||||||
|
mangle.fun21753!(mangle.S21753(mangle.__lambda71())).fun21753
|
||||||
|
#
|
||||||
|
--format=dlang
|
||||||
|
_D8demangle9anonymous0Z
|
||||||
|
demangle.anonymous
|
||||||
|
#
|
||||||
|
--format=dlang
|
||||||
|
_D8demangle9anonymous03fooZ
|
||||||
|
demangle.anonymous.foo
|
||||||
|
@ -1164,6 +1164,11 @@ foo(int) [clone ._omp_cpyfn.6]
|
|||||||
foo
|
foo
|
||||||
#
|
#
|
||||||
--format=gnu-v3 --no-params
|
--format=gnu-v3 --no-params
|
||||||
|
_Z3fooPfS_S_j.sse4_1.2
|
||||||
|
foo(float*, float*, float*, unsigned int) [clone .sse4_1.2]
|
||||||
|
foo
|
||||||
|
#
|
||||||
|
--format=gnu-v3 --no-params
|
||||||
_Z1fIKFvvES0_Evv
|
_Z1fIKFvvES0_Evv
|
||||||
void f<void () const, void () const>()
|
void f<void () const, void () const>()
|
||||||
f<void () const, void () const>
|
f<void () const, void () const>
|
||||||
|
@ -87,7 +87,9 @@ extern "C" {
|
|||||||
void *malloc (size_t);
|
void *malloc (size_t);
|
||||||
void *realloc (void *, size_t);
|
void *realloc (void *, size_t);
|
||||||
void *calloc (size_t, size_t);
|
void *calloc (size_t, size_t);
|
||||||
|
#ifdef HAVE_SBRK
|
||||||
void *sbrk (ptrdiff_t);
|
void *sbrk (ptrdiff_t);
|
||||||
|
#endif
|
||||||
# ifdef __cplusplus
|
# ifdef __cplusplus
|
||||||
}
|
}
|
||||||
# endif /* __cplusplus */
|
# endif /* __cplusplus */
|
||||||
|
Loading…
Reference in New Issue
Block a user