Makefile.tpl (DEBUG_PREFIX_CFLAGS_FOR_TARGET): New.

2007-08-18  Paul Brook  <paul@codesourcery.com>
            Joseph Myers  <joseph@codesourcery.com>

	* Makefile.tpl (DEBUG_PREFIX_CFLAGS_FOR_TARGET): New.
	(CFLAGS_FOR_TARGET, CXXFLAGS_FOR_TARGET): Include it.
	* Makefile.in: Regenerate.
	* configure.ac (--with-debug-prefix-map): New.
	* configure: Regenerate.

config:
2007-08-18  Paul Brook  <paul@codesourcery.com>
            Joseph Myers  <joseph@codesourcery.com>

	* mt-gnu (CXXFLAGS_FOR_TARGET): Add
	$(DEBUG_PREFIX_CFLAGS_FOR_TARGET).

gcc:
2007-08-18  Paul Brook  <paul@codesourcery.com>
            Joseph Myers  <joseph@codesourcery.com>

	* common.opt (-fdebug-prefix-map=): New option.
	* opts.c: Include debug.h.
	(common_handle_option): Handle -fdebug-prefix-map.
	* final.c: Include ggc.h.
	(struct debug_prefix_map, debug_prefix_maps, add_debug_prefix_map,
	remap_debug_filename): New.
	* Makefile.in (final.o, opts.o): Update dependencies.
	* debug.h (remap_debug_filename, add_debug_prefix_map): Declare.
	* configure.ac: Check for assembler --debug-prefix-map support.
	* configure, config.in: Regenerate.
	* gcc.c (ASM_MAP): Define conditional on HAVE_AS_DEBUG_PREFIX_MAP.
	(ASM_DEBUG_SPEC): Include ASM_MAP.
	* doc/install.texi (--with-debug-prefix-map): Document.
	* doc/invoke.texi (-fdebug-prefix-map): Document.
	* dbxout.c (dbxout_init, dbxout_start_source_file,
	dbxout_source_file): Call remap_debug_filename.
	* dwarf2out.c (add_comp_dir_attribute, maybe_emit_file,
	dwarf2out_start_source_file, dwarf2out_finish): Call
	remap_debug_filename.
	(file_table_relative_p): Do not check d->emitted_number.
	* toplev.c (output_file_directive): Call remap_debug_filename.
	* vmsdbgout.c (write_srccorr): Call remap_debug_filename.
	* xcoffout.c (xcoffout_source_file): Call remap_debug_filename.

Co-Authored-By: Joseph Myers <joseph@codesourcery.com>

From-SVN: r127613
This commit is contained in:
Paul Brook 2007-08-18 15:15:39 +00:00 committed by Joseph Myers
parent 9e1d712c40
commit c8aea42ce2
24 changed files with 258 additions and 26 deletions

View file

@ -1,3 +1,12 @@
2007-08-18 Paul Brook <paul@codesourcery.com>
Joseph Myers <joseph@codesourcery.com>
* Makefile.tpl (DEBUG_PREFIX_CFLAGS_FOR_TARGET): New.
(CFLAGS_FOR_TARGET, CXXFLAGS_FOR_TARGET): Include it.
* Makefile.in: Regenerate.
* configure.ac (--with-debug-prefix-map): New.
* configure: Regenerate.
2007-08-17 Richard Sandiford <richard@codesourcery.com> 2007-08-17 Richard Sandiford <richard@codesourcery.com>
Nigel Stephens <nigel@mips.com> Nigel Stephens <nigel@mips.com>

View file

@ -366,9 +366,12 @@ COMPILER_NM_FOR_TARGET=@COMPILER_NM_FOR_TARGET@
# CFLAGS will be just -g. We want to ensure that TARGET libraries # CFLAGS will be just -g. We want to ensure that TARGET libraries
# (which we know are built with gcc) are built with optimizations so # (which we know are built with gcc) are built with optimizations so
# prepend -O2 when setting CFLAGS_FOR_TARGET. # prepend -O2 when setting CFLAGS_FOR_TARGET.
CFLAGS_FOR_TARGET = -O2 $(CFLAGS) $(SYSROOT_CFLAGS_FOR_TARGET) CFLAGS_FOR_TARGET = -O2 $(CFLAGS) $(SYSROOT_CFLAGS_FOR_TARGET) \
$(DEBUG_PREFIX_CFLAGS_FOR_TARGET)
SYSROOT_CFLAGS_FOR_TARGET = @SYSROOT_CFLAGS_FOR_TARGET@ SYSROOT_CFLAGS_FOR_TARGET = @SYSROOT_CFLAGS_FOR_TARGET@
CXXFLAGS_FOR_TARGET = $(CXXFLAGS) $(SYSROOT_CFLAGS_FOR_TARGET) DEBUG_PREFIX_CFLAGS_FOR_TARGET = @DEBUG_PREFIX_CFLAGS_FOR_TARGET@
CXXFLAGS_FOR_TARGET = $(CXXFLAGS) $(SYSROOT_CFLAGS_FOR_TARGET) \
$(DEBUG_PREFIX_CFLAGS_FOR_TARGET)
LIBCFLAGS_FOR_TARGET = $(CFLAGS_FOR_TARGET) LIBCFLAGS_FOR_TARGET = $(CFLAGS_FOR_TARGET)
LIBCXXFLAGS_FOR_TARGET = $(CXXFLAGS_FOR_TARGET) -fno-implicit-templates LIBCXXFLAGS_FOR_TARGET = $(CXXFLAGS_FOR_TARGET) -fno-implicit-templates
LDFLAGS_FOR_TARGET = LDFLAGS_FOR_TARGET =

View file

@ -369,9 +369,12 @@ COMPILER_NM_FOR_TARGET=@COMPILER_NM_FOR_TARGET@
# CFLAGS will be just -g. We want to ensure that TARGET libraries # CFLAGS will be just -g. We want to ensure that TARGET libraries
# (which we know are built with gcc) are built with optimizations so # (which we know are built with gcc) are built with optimizations so
# prepend -O2 when setting CFLAGS_FOR_TARGET. # prepend -O2 when setting CFLAGS_FOR_TARGET.
CFLAGS_FOR_TARGET = -O2 $(CFLAGS) $(SYSROOT_CFLAGS_FOR_TARGET) CFLAGS_FOR_TARGET = -O2 $(CFLAGS) $(SYSROOT_CFLAGS_FOR_TARGET) \
$(DEBUG_PREFIX_CFLAGS_FOR_TARGET)
SYSROOT_CFLAGS_FOR_TARGET = @SYSROOT_CFLAGS_FOR_TARGET@ SYSROOT_CFLAGS_FOR_TARGET = @SYSROOT_CFLAGS_FOR_TARGET@
CXXFLAGS_FOR_TARGET = $(CXXFLAGS) $(SYSROOT_CFLAGS_FOR_TARGET) DEBUG_PREFIX_CFLAGS_FOR_TARGET = @DEBUG_PREFIX_CFLAGS_FOR_TARGET@
CXXFLAGS_FOR_TARGET = $(CXXFLAGS) $(SYSROOT_CFLAGS_FOR_TARGET) \
$(DEBUG_PREFIX_CFLAGS_FOR_TARGET)
LIBCFLAGS_FOR_TARGET = $(CFLAGS_FOR_TARGET) LIBCFLAGS_FOR_TARGET = $(CFLAGS_FOR_TARGET)
LIBCXXFLAGS_FOR_TARGET = $(CXXFLAGS_FOR_TARGET) -fno-implicit-templates LIBCXXFLAGS_FOR_TARGET = $(CXXFLAGS_FOR_TARGET) -fno-implicit-templates
LDFLAGS_FOR_TARGET = LDFLAGS_FOR_TARGET =

View file

@ -1,3 +1,9 @@
2007-08-18 Paul Brook <paul@codesourcery.com>
Joseph Myers <joseph@codesourcery.com>
* mt-gnu (CXXFLAGS_FOR_TARGET): Add
$(DEBUG_PREFIX_CFLAGS_FOR_TARGET).
2007-07-06 H.J. Lu <hongjiu.lu@intel.com> 2007-07-06 H.J. Lu <hongjiu.lu@intel.com>
* tls.m4 (GCC_CHECK_CC_TLS): New. * tls.m4 (GCC_CHECK_CC_TLS): New.

View file

@ -1 +1,2 @@
CXXFLAGS_FOR_TARGET = $(CXXFLAGS) $(SYSROOT_CFLAGS_FOR_TARGET) -D_GNU_SOURCE CXXFLAGS_FOR_TARGET = $(CXXFLAGS) $(SYSROOT_CFLAGS_FOR_TARGET) \
$(DEBUG_PREFIX_CFLAGS_FOR_TARGET) -D_GNU_SOURCE

20
configure vendored
View file

@ -272,7 +272,7 @@ PACKAGE_STRING=
PACKAGE_BUGREPORT= PACKAGE_BUGREPORT=
ac_unique_file="move-if-change" ac_unique_file="move-if-change"
ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os build_noncanonical host_noncanonical target_noncanonical host host_cpu host_vendor host_os target target_cpu target_vendor target_os INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA LN LN_S TOPLEVEL_CONFIGURE_ARGUMENTS build_libsubdir build_subdir host_subdir target_subdir CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CXX CXXFLAGS ac_ct_CXX GNATBIND ac_ct_GNATBIND GNATMAKE ac_ct_GNATMAKE do_compare gmplibs gmpinc stage1_languages SYSROOT_CFLAGS_FOR_TARGET RPATH_ENVVAR tooldir build_tooldir CONFIGURE_GDB_TK GDB_TK INSTALL_GDB_TK build_configargs build_configdirs host_configargs configdirs target_configargs CC_FOR_BUILD config_shell YACC BISON M4 LEX FLEX MAKEINFO EXPECT RUNTEST AR AS DLLTOOL LD LIPO NM RANLIB STRIP WINDRES WINDMC OBJCOPY OBJDUMP CFLAGS_FOR_BUILD CC_FOR_TARGET CXX_FOR_TARGET GCC_FOR_TARGET GCJ_FOR_TARGET GFORTRAN_FOR_TARGET AR_FOR_TARGET AS_FOR_TARGET DLLTOOL_FOR_TARGET LD_FOR_TARGET LIPO_FOR_TARGET NM_FOR_TARGET OBJDUMP_FOR_TARGET RANLIB_FOR_TARGET STRIP_FOR_TARGET WINDRES_FOR_TARGET WINDMC_FOR_TARGET RAW_CXX_FOR_TARGET FLAGS_FOR_TARGET COMPILER_AS_FOR_TARGET COMPILER_LD_FOR_TARGET COMPILER_NM_FOR_TARGET MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT stage1_cflags stage1_checking stage2_werror_flag datarootdir docdir pdfdir htmldir LIBOBJS LTLIBOBJS' ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os build_noncanonical host_noncanonical target_noncanonical host host_cpu host_vendor host_os target target_cpu target_vendor target_os INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA LN LN_S TOPLEVEL_CONFIGURE_ARGUMENTS build_libsubdir build_subdir host_subdir target_subdir CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CXX CXXFLAGS ac_ct_CXX GNATBIND ac_ct_GNATBIND GNATMAKE ac_ct_GNATMAKE do_compare gmplibs gmpinc stage1_languages SYSROOT_CFLAGS_FOR_TARGET DEBUG_PREFIX_CFLAGS_FOR_TARGET RPATH_ENVVAR tooldir build_tooldir CONFIGURE_GDB_TK GDB_TK INSTALL_GDB_TK build_configargs build_configdirs host_configargs configdirs target_configargs CC_FOR_BUILD config_shell YACC BISON M4 LEX FLEX MAKEINFO EXPECT RUNTEST AR AS DLLTOOL LD LIPO NM RANLIB STRIP WINDRES WINDMC OBJCOPY OBJDUMP CFLAGS_FOR_BUILD CC_FOR_TARGET CXX_FOR_TARGET GCC_FOR_TARGET GCJ_FOR_TARGET GFORTRAN_FOR_TARGET AR_FOR_TARGET AS_FOR_TARGET DLLTOOL_FOR_TARGET LD_FOR_TARGET LIPO_FOR_TARGET NM_FOR_TARGET OBJDUMP_FOR_TARGET RANLIB_FOR_TARGET STRIP_FOR_TARGET WINDRES_FOR_TARGET WINDMC_FOR_TARGET RAW_CXX_FOR_TARGET FLAGS_FOR_TARGET COMPILER_AS_FOR_TARGET COMPILER_LD_FOR_TARGET COMPILER_NM_FOR_TARGET MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT stage1_cflags stage1_checking stage2_werror_flag datarootdir docdir pdfdir htmldir LIBOBJS LTLIBOBJS'
ac_subst_files='serialization_dependencies host_makefile_frag target_makefile_frag alphaieee_frag ospace_frag' ac_subst_files='serialization_dependencies host_makefile_frag target_makefile_frag alphaieee_frag ospace_frag'
# Initialize some variables set by options. # Initialize some variables set by options.
@ -965,6 +965,8 @@ Optional Packages:
--with-gmp-lib=PATH specify directory for the installed GMP library --with-gmp-lib=PATH specify directory for the installed GMP library
--with-build-sysroot=SYSROOT --with-build-sysroot=SYSROOT
use sysroot as the system root during the build use sysroot as the system root during the build
--with-debug-prefix-map='A=B C=D ...'
map A to B, C to D ... in debug information
--with-build-time-tools=PATH --with-build-time-tools=PATH
use given path to find target tools during the build use given path to find target tools during the build
--with-datarootdir use datarootdir as the data root directory. --with-datarootdir use datarootdir as the data root directory.
@ -5069,6 +5071,21 @@ else
fi; fi;
# Check whether --with-debug-prefix-map or --without-debug-prefix-map was given.
if test "${with_debug_prefix_map+set}" = set; then
withval="$with_debug_prefix_map"
if test x"$withval" != x; then
DEBUG_PREFIX_CFLAGS_FOR_TARGET=
for debug_map in $withval; do
DEBUG_PREFIX_CFLAGS_FOR_TARGET="$DEBUG_PREFIX_CFLAGS_FOR_TARGET -fdebug-prefix-map=$debug_map"
done
fi
else
DEBUG_PREFIX_CFLAGS_FOR_TARGET=
fi;
# Handle --with-headers=XXX. If the value is not "yes", the contents of # Handle --with-headers=XXX. If the value is not "yes", the contents of
# the named directory are copied to $(tooldir)/sys-include. # the named directory are copied to $(tooldir)/sys-include.
if test x"${with_headers}" != x && test x"${with_headers}" != xno ; then if test x"${with_headers}" != x && test x"${with_headers}" != xno ; then
@ -12723,6 +12740,7 @@ s,@gmplibs@,$gmplibs,;t t
s,@gmpinc@,$gmpinc,;t t s,@gmpinc@,$gmpinc,;t t
s,@stage1_languages@,$stage1_languages,;t t s,@stage1_languages@,$stage1_languages,;t t
s,@SYSROOT_CFLAGS_FOR_TARGET@,$SYSROOT_CFLAGS_FOR_TARGET,;t t s,@SYSROOT_CFLAGS_FOR_TARGET@,$SYSROOT_CFLAGS_FOR_TARGET,;t t
s,@DEBUG_PREFIX_CFLAGS_FOR_TARGET@,$DEBUG_PREFIX_CFLAGS_FOR_TARGET,;t t
s,@RPATH_ENVVAR@,$RPATH_ENVVAR,;t t s,@RPATH_ENVVAR@,$RPATH_ENVVAR,;t t
s,@tooldir@,$tooldir,;t t s,@tooldir@,$tooldir,;t t
s,@build_tooldir@,$build_tooldir,;t t s,@build_tooldir@,$build_tooldir,;t t

View file

@ -1593,6 +1593,18 @@ AC_ARG_WITH([build-sysroot],
[SYSROOT_CFLAGS_FOR_TARGET=]) [SYSROOT_CFLAGS_FOR_TARGET=])
AC_SUBST(SYSROOT_CFLAGS_FOR_TARGET) AC_SUBST(SYSROOT_CFLAGS_FOR_TARGET)
AC_ARG_WITH([debug-prefix-map],
[ --with-debug-prefix-map='A=B C=D ...'
map A to B, C to D ... in debug information],
[if test x"$withval" != x; then
DEBUG_PREFIX_CFLAGS_FOR_TARGET=
for debug_map in $withval; do
DEBUG_PREFIX_CFLAGS_FOR_TARGET="$DEBUG_PREFIX_CFLAGS_FOR_TARGET -fdebug-prefix-map=$debug_map"
done
fi],
[DEBUG_PREFIX_CFLAGS_FOR_TARGET=])
AC_SUBST(DEBUG_PREFIX_CFLAGS_FOR_TARGET)
# Handle --with-headers=XXX. If the value is not "yes", the contents of # Handle --with-headers=XXX. If the value is not "yes", the contents of
# the named directory are copied to $(tooldir)/sys-include. # the named directory are copied to $(tooldir)/sys-include.
if test x"${with_headers}" != x && test x"${with_headers}" != xno ; then if test x"${with_headers}" != x && test x"${with_headers}" != xno ; then

View file

@ -1,3 +1,30 @@
2007-08-18 Paul Brook <paul@codesourcery.com>
Joseph Myers <joseph@codesourcery.com>
* common.opt (-fdebug-prefix-map=): New option.
* opts.c: Include debug.h.
(common_handle_option): Handle -fdebug-prefix-map.
* final.c: Include ggc.h.
(struct debug_prefix_map, debug_prefix_maps, add_debug_prefix_map,
remap_debug_filename): New.
* Makefile.in (final.o, opts.o): Update dependencies.
* debug.h (remap_debug_filename, add_debug_prefix_map): Declare.
* configure.ac: Check for assembler --debug-prefix-map support.
* configure, config.in: Regenerate.
* gcc.c (ASM_MAP): Define conditional on HAVE_AS_DEBUG_PREFIX_MAP.
(ASM_DEBUG_SPEC): Include ASM_MAP.
* doc/install.texi (--with-debug-prefix-map): Document.
* doc/invoke.texi (-fdebug-prefix-map): Document.
* dbxout.c (dbxout_init, dbxout_start_source_file,
dbxout_source_file): Call remap_debug_filename.
* dwarf2out.c (add_comp_dir_attribute, maybe_emit_file,
dwarf2out_start_source_file, dwarf2out_finish): Call
remap_debug_filename.
(file_table_relative_p): Do not check d->emitted_number.
* toplev.c (output_file_directive): Call remap_debug_filename.
* vmsdbgout.c (write_srccorr): Call remap_debug_filename.
* xcoffout.c (xcoffout_source_file): Call remap_debug_filename.
2007-08-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2007-08-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* loop-invariant.c (find_invariants_to_move): Add missing macro * loop-invariant.c (find_invariants_to_move): Add missing macro

View file

@ -2295,7 +2295,7 @@ diagnostic.o : diagnostic.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
opts.o : opts.c opts.h options.h toplev.h $(CONFIG_H) $(SYSTEM_H) \ opts.o : opts.c opts.h options.h toplev.h $(CONFIG_H) $(SYSTEM_H) \
coretypes.h $(TREE_H) $(TM_H) langhooks.h $(GGC_H) $(RTL_H) \ coretypes.h $(TREE_H) $(TM_H) langhooks.h $(GGC_H) $(RTL_H) \
output.h $(DIAGNOSTIC_H) $(TM_P_H) $(INSN_ATTR_H) intl.h $(TARGET_H) \ output.h $(DIAGNOSTIC_H) $(TM_P_H) $(INSN_ATTR_H) intl.h $(TARGET_H) \
$(FLAGS_H) $(PARAMS_H) tree-pass.h $(DBGCNT_H) $(FLAGS_H) $(PARAMS_H) tree-pass.h $(DBGCNT_H) debug.h
opts-common.o : opts-common.c opts.h $(CONFIG_H) $(SYSTEM_H) \ opts-common.o : opts-common.c opts.h $(CONFIG_H) $(SYSTEM_H) \
coretypes.h intl.h coretypes.h intl.h
targhooks.o : targhooks.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TREE_H) \ targhooks.o : targhooks.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TREE_H) \
@ -2785,7 +2785,7 @@ final.o : final.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
insn-config.h $(INSN_ATTR_H) $(FUNCTION_H) output.h hard-reg-set.h \ insn-config.h $(INSN_ATTR_H) $(FUNCTION_H) output.h hard-reg-set.h \
except.h debug.h xcoffout.h toplev.h reload.h dwarf2out.h tree-pass.h \ except.h debug.h xcoffout.h toplev.h reload.h dwarf2out.h tree-pass.h \
$(BASIC_BLOCK_H) $(TM_P_H) $(TARGET_H) $(EXPR_H) $(CFGLAYOUT_H) dbxout.h \ $(BASIC_BLOCK_H) $(TM_P_H) $(TARGET_H) $(EXPR_H) $(CFGLAYOUT_H) dbxout.h \
$(TIMEVAR_H) $(CGRAPH_H) $(COVERAGE_H) $(REAL_H) $(DF_H) vecprim.h $(TIMEVAR_H) $(CGRAPH_H) $(COVERAGE_H) $(REAL_H) $(DF_H) vecprim.h $(GGC_H)
recog.o : recog.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \ recog.o : recog.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
$(FUNCTION_H) $(BASIC_BLOCK_H) $(REGS_H) $(RECOG_H) $(EXPR_H) \ $(FUNCTION_H) $(BASIC_BLOCK_H) $(REGS_H) $(RECOG_H) $(EXPR_H) \
$(FLAGS_H) insn-config.h $(INSN_ATTR_H) toplev.h output.h reload.h \ $(FLAGS_H) insn-config.h $(INSN_ATTR_H) toplev.h output.h reload.h \

View file

@ -399,6 +399,10 @@ fdbg-cnt=
Common RejectNegative Joined Common RejectNegative Joined
-fdbg-cnt=<counter>:<limit>[,<counter>:<limit>,...] Set the debug counter limit. -fdbg-cnt=<counter>:<limit>[,<counter>:<limit>,...] Set the debug counter limit.
fdebug-prefix-map=
Common Joined RejectNegative
Map one directory name to another in debug information
; Nonzero for -fdefer-pop: don't pop args after each function call ; Nonzero for -fdefer-pop: don't pop args after each function call
; instead save them up to pop many calls' args with one insns. ; instead save them up to pop many calls' args with one insns.
fdefer-pop fdefer-pop

View file

@ -186,6 +186,12 @@
#endif #endif
/* Define if your assembler supports the --debug-prefix-map option. */
#ifndef USED_FOR_TARGET
#undef HAVE_AS_DEBUG_PREFIX_MAP
#endif
/* Define if your assembler supports DFP instructions. */ /* Define if your assembler supports DFP instructions. */
#ifndef USED_FOR_TARGET #ifndef USED_FOR_TARGET
#undef HAVE_AS_DFP #undef HAVE_AS_DFP

37
gcc/configure vendored
View file

@ -16178,6 +16178,43 @@ cat >>confdefs.h <<\_ACEOF
#define HAVE_AS_GSTABS_DEBUG_FLAG 1 #define HAVE_AS_GSTABS_DEBUG_FLAG 1
_ACEOF _ACEOF
fi
echo "$as_me:$LINENO: checking assembler for --debug-prefix-map option" >&5
echo $ECHO_N "checking assembler for --debug-prefix-map option... $ECHO_C" >&6
if test "${gcc_cv_as_debug_prefix_map_flag+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
gcc_cv_as_debug_prefix_map_flag=no
if test $in_tree_gas = yes; then
if test $gcc_cv_gas_vers -ge `expr \( \( 2 \* 1000 \) + 19 \) \* 1000 + 0`
then gcc_cv_as_debug_prefix_map_flag=yes
fi
elif test x$gcc_cv_as != x; then
echo "$insn" > conftest.s
if { ac_try='$gcc_cv_as --debug-prefix-map /a=/b -o conftest.o conftest.s >&5'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }
then
gcc_cv_as_debug_prefix_map_flag=yes
else
echo "configure: failed program was" >&5
cat conftest.s >&5
fi
rm -f conftest.o conftest.s
fi
fi
echo "$as_me:$LINENO: result: $gcc_cv_as_debug_prefix_map_flag" >&5
echo "${ECHO_T}$gcc_cv_as_debug_prefix_map_flag" >&6
if test $gcc_cv_as_debug_prefix_map_flag = yes; then
cat >>confdefs.h <<\_ACEOF
#define HAVE_AS_DEBUG_PREFIX_MAP 1
_ACEOF
fi fi
fi fi

View file

@ -3068,6 +3068,12 @@ if test x"$insn" != x; then
fi], fi],
[AC_DEFINE(HAVE_AS_GSTABS_DEBUG_FLAG, 1, [AC_DEFINE(HAVE_AS_GSTABS_DEBUG_FLAG, 1,
[Define if your assembler supports the --gstabs option.])]) [Define if your assembler supports the --gstabs option.])])
gcc_GAS_CHECK_FEATURE([--debug-prefix-map option],
gcc_cv_as_debug_prefix_map_flag,
[2,19,0], [--debug-prefix-map /a=/b], [$insn],,
[AC_DEFINE(HAVE_AS_DEBUG_PREFIX_MAP, 1,
[Define if your assembler supports the --debug-prefix-map option.])])
fi fi
AC_CACHE_CHECK([assembler for tolerance to line number 0], AC_CACHE_CHECK([assembler for tolerance to line number 0],

View file

@ -983,6 +983,7 @@ dbxout_init (const char *input_file_name)
char ltext_label_name[100]; char ltext_label_name[100];
bool used_ltext_label_name = false; bool used_ltext_label_name = false;
tree syms = lang_hooks.decls.getdecls (); tree syms = lang_hooks.decls.getdecls ();
const char *mapped_name;
typevec_len = 100; typevec_len = 100;
typevec = ggc_calloc (typevec_len, sizeof typevec[0]); typevec = ggc_calloc (typevec_len, sizeof typevec[0]);
@ -1008,6 +1009,7 @@ dbxout_init (const char *input_file_name)
cwd = "/"; cwd = "/";
else if (!IS_DIR_SEPARATOR (cwd[strlen (cwd) - 1])) else if (!IS_DIR_SEPARATOR (cwd[strlen (cwd) - 1]))
cwd = concat (cwd, "/", NULL); cwd = concat (cwd, "/", NULL);
cwd = remap_debug_filename (cwd);
} }
#ifdef DBX_OUTPUT_MAIN_SOURCE_DIRECTORY #ifdef DBX_OUTPUT_MAIN_SOURCE_DIRECTORY
DBX_OUTPUT_MAIN_SOURCE_DIRECTORY (asm_out_file, cwd); DBX_OUTPUT_MAIN_SOURCE_DIRECTORY (asm_out_file, cwd);
@ -1018,10 +1020,11 @@ dbxout_init (const char *input_file_name)
#endif /* no DBX_OUTPUT_MAIN_SOURCE_DIRECTORY */ #endif /* no DBX_OUTPUT_MAIN_SOURCE_DIRECTORY */
} }
mapped_name = remap_debug_filename (input_file_name);
#ifdef DBX_OUTPUT_MAIN_SOURCE_FILENAME #ifdef DBX_OUTPUT_MAIN_SOURCE_FILENAME
DBX_OUTPUT_MAIN_SOURCE_FILENAME (asm_out_file, input_file_name); DBX_OUTPUT_MAIN_SOURCE_FILENAME (asm_out_file, mapped_name);
#else #else
dbxout_begin_simple_stabs_desc (input_file_name, N_SO, get_lang_number ()); dbxout_begin_simple_stabs_desc (mapped_name, N_SO, get_lang_number ());
dbxout_stab_value_label (ltext_label_name); dbxout_stab_value_label (ltext_label_name);
used_ltext_label_name = true; used_ltext_label_name = true;
#endif #endif
@ -1163,7 +1166,7 @@ dbxout_start_source_file (unsigned int line ATTRIBUTE_UNUSED,
n->prev = NULL; n->prev = NULL;
current_file->prev = n; current_file->prev = n;
n->bincl_status = BINCL_PENDING; n->bincl_status = BINCL_PENDING;
n->pending_bincl_name = filename; n->pending_bincl_name = remap_debug_filename (filename);
pending_bincls = 1; pending_bincls = 1;
current_file = n; current_file = n;
#endif #endif
@ -1229,7 +1232,7 @@ dbxout_source_file (const char *filename)
if (current_function_decl == NULL_TREE) if (current_function_decl == NULL_TREE)
switch_to_section (text_section); switch_to_section (text_section);
dbxout_begin_simple_stabs (filename, N_SOL); dbxout_begin_simple_stabs (remap_debug_filename (filename), N_SOL);
dbxout_stab_value_internal_label ("Ltext", &source_label_number); dbxout_stab_value_internal_label ("Ltext", &source_label_number);
lastfile = filename; lastfile = filename;
} }

View file

@ -167,4 +167,7 @@ extern void debug_free_queue (void);
extern int debug_nesting; extern int debug_nesting;
extern int symbol_queue_index; extern int symbol_queue_index;
const char *remap_debug_filename (const char *);
void add_debug_prefix_map (const char *);
#endif /* !GCC_DEBUG_H */ #endif /* !GCC_DEBUG_H */

View file

@ -1345,6 +1345,11 @@ GCC, you can explicitly specify the directory where they are installed
shorthand assumptions are not correct, you can use the explicit shorthand assumptions are not correct, you can use the explicit
include and lib options directly. include and lib options directly.
@item --with-debug-prefix-map=@var{map}
Convert source directory names using @option{-fdebug-prefix-map} when
building runtime libraries. @samp{@var{map}} is a space-separated
list of maps of the form @samp{@var{old}=@var{new}}.
@end table @end table
@subheading Cross-Compiler-Specific Options @subheading Cross-Compiler-Specific Options

View file

@ -303,6 +303,7 @@ Objective-C and Objective-C++ Dialects}.
-ftest-coverage -ftime-report -fvar-tracking @gol -ftest-coverage -ftime-report -fvar-tracking @gol
-g -g@var{level} -gcoff -gdwarf-2 @gol -g -g@var{level} -gcoff -gdwarf-2 @gol
-ggdb -gstabs -gstabs+ -gvms -gxcoff -gxcoff+ @gol -ggdb -gstabs -gstabs+ -gvms -gxcoff -gxcoff+ @gol
-fdebug-prefix-map=@var{old}=@var{new} @gol
-femit-struct-debug-baseonly -femit-struct-debug-reduced @gol -femit-struct-debug-baseonly -femit-struct-debug-reduced @gol
-femit-struct-debug-detailed@r{[}=@var{spec-list}@r{]} @gol -femit-struct-debug-detailed@r{[}=@var{spec-list}@r{]} @gol
-p -pg -print-file-name=@var{library} -print-libgcc-file-name @gol -p -pg -print-file-name=@var{library} -print-libgcc-file-name @gol
@ -4144,6 +4145,11 @@ The default is @samp{-femit-struct-debug-detailed=all}.
This option works only with DWARF 2. This option works only with DWARF 2.
@item -fdebug-prefix-map=@var{old}=@var{new}
@opindex fdebug-prefix-map
When compiling files in directory @file{@var{old}}, record debugging
information describing them as in @file{@var{new}} instead.
@cindex @command{prof} @cindex @command{prof}
@item -p @item -p
@opindex p @opindex p

View file

@ -10906,7 +10906,7 @@ add_comp_dir_attribute (dw_die_ref die)
{ {
const char *wd = get_src_pwd (); const char *wd = get_src_pwd ();
if (wd != NULL) if (wd != NULL)
add_AT_string (die, DW_AT_comp_dir, wd); add_AT_string (die, DW_AT_comp_dir, remap_debug_filename (wd));
} }
/* Given a tree node describing an array bound (either lower or upper) output /* Given a tree node describing an array bound (either lower or upper) output
@ -14000,7 +14000,8 @@ maybe_emit_file (struct dwarf_file_data * fd)
if (DWARF2_ASM_LINE_DEBUG_INFO) if (DWARF2_ASM_LINE_DEBUG_INFO)
{ {
fprintf (asm_out_file, "\t.file %u ", fd->emitted_number); fprintf (asm_out_file, "\t.file %u ", fd->emitted_number);
output_quoted_string (asm_out_file, fd->filename); output_quoted_string (asm_out_file,
remap_debug_filename (fd->filename));
fputc ('\n', asm_out_file); fputc ('\n', asm_out_file);
} }
} }
@ -14167,7 +14168,7 @@ dwarf2out_start_source_file (unsigned int lineno, const char *filename)
dw_die_ref bincl_die; dw_die_ref bincl_die;
bincl_die = new_die (DW_TAG_GNU_BINCL, comp_unit_die, NULL); bincl_die = new_die (DW_TAG_GNU_BINCL, comp_unit_die, NULL);
add_AT_string (bincl_die, DW_AT_name, filename); add_AT_string (bincl_die, DW_AT_name, remap_debug_filename (filename));
} }
if (debug_info_level >= DINFO_LEVEL_VERBOSE) if (debug_info_level >= DINFO_LEVEL_VERBOSE)
@ -14626,7 +14627,7 @@ file_table_relative_p (void ** slot, void *param)
{ {
bool *p = param; bool *p = param;
struct dwarf_file_data *d = *slot; struct dwarf_file_data *d = *slot;
if (d->emitted_number && !IS_ABSOLUTE_PATH (d->filename)) if (!IS_ABSOLUTE_PATH (d->filename))
{ {
*p = true; *p = true;
return 0; return 0;
@ -14645,7 +14646,7 @@ dwarf2out_finish (const char *filename)
/* Add the name for the main input file now. We delayed this from /* Add the name for the main input file now. We delayed this from
dwarf2out_init to avoid complications with PCH. */ dwarf2out_init to avoid complications with PCH. */
add_name_attribute (comp_unit_die, filename); add_name_attribute (comp_unit_die, remap_debug_filename (filename));
if (!IS_ABSOLUTE_PATH (filename)) if (!IS_ABSOLUTE_PATH (filename))
add_comp_dir_attribute (comp_unit_die); add_comp_dir_attribute (comp_unit_die);
else if (get_AT (comp_unit_die, DW_AT_comp_dir) == NULL) else if (get_AT (comp_unit_die, DW_AT_comp_dir) == NULL)

View file

@ -77,6 +77,7 @@ along with GCC; see the file COPYING3. If not see
#include "coverage.h" #include "coverage.h"
#include "df.h" #include "df.h"
#include "vecprim.h" #include "vecprim.h"
#include "ggc.h"
#ifdef XCOFF_DEBUGGING_INFO #ifdef XCOFF_DEBUGGING_INFO
#include "xcoffout.h" /* Needed for external data #include "xcoffout.h" /* Needed for external data
@ -1350,6 +1351,72 @@ asm_insn_count (rtx body)
} }
#endif #endif
/* ??? This is probably the wrong place for these. */
/* Structure recording the mapping from source file and directory
names at compile time to those to be embedded in debug
information. */
typedef struct debug_prefix_map
{
const char *old_prefix;
const char *new_prefix;
size_t old_len;
size_t new_len;
struct debug_prefix_map *next;
} debug_prefix_map;
/* Linked list of such structures. */
debug_prefix_map *debug_prefix_maps;
/* Record a debug file prefix mapping. ARG is the argument to
-fdebug-prefix-map and must be of the form OLD=NEW. */
void
add_debug_prefix_map (const char *arg)
{
debug_prefix_map *map;
const char *p;
p = strchr (arg, '=');
if (!p)
{
error ("invalid argument %qs to -fdebug-prefix-map", arg);
return;
}
map = XNEW (debug_prefix_map);
map->old_prefix = ggc_alloc_string (arg, p - arg);
map->old_len = p - arg;
p++;
map->new_prefix = ggc_strdup (p);
map->new_len = strlen (p);
map->next = debug_prefix_maps;
debug_prefix_maps = map;
}
/* Perform user-specified mapping of debug filename prefixes. Return
the new name corresponding to FILENAME. */
const char *
remap_debug_filename (const char *filename)
{
debug_prefix_map *map;
char *s;
const char *name;
size_t name_len;
for (map = debug_prefix_maps; map; map = map->next)
if (strncmp (filename, map->old_prefix, map->old_len) == 0)
break;
if (!map)
return filename;
name = filename + map->old_len;
name_len = strlen (name) + 1;
s = (char *) alloca (name_len + map->new_len);
memcpy (s, map->new_prefix, map->new_len);
memcpy (s + map->new_len, name, name_len);
return ggc_strdup (s);
}
/* Output assembler code for the start of a function, /* Output assembler code for the start of a function,
and initialize some of the variables in this file and initialize some of the variables in this file
for the new function. The label for the function and associated for the new function. The label for the function and associated

View file

@ -655,21 +655,27 @@ proper position among the other output files. */
#define LINKER_NAME "collect2" #define LINKER_NAME "collect2"
#endif #endif
#ifdef HAVE_AS_DEBUG_PREFIX_MAP
#define ASM_MAP " %{fdebug-prefix-map=*:--debug-prefix-map %*}"
#else
#define ASM_MAP ""
#endif
/* Define ASM_DEBUG_SPEC to be a spec suitable for translating '-g' /* Define ASM_DEBUG_SPEC to be a spec suitable for translating '-g'
to the assembler. */ to the assembler. */
#ifndef ASM_DEBUG_SPEC #ifndef ASM_DEBUG_SPEC
# if defined(DBX_DEBUGGING_INFO) && defined(DWARF2_DEBUGGING_INFO) \ # if defined(DBX_DEBUGGING_INFO) && defined(DWARF2_DEBUGGING_INFO) \
&& defined(HAVE_AS_GDWARF2_DEBUG_FLAG) && defined(HAVE_AS_GSTABS_DEBUG_FLAG) && defined(HAVE_AS_GDWARF2_DEBUG_FLAG) && defined(HAVE_AS_GSTABS_DEBUG_FLAG)
# define ASM_DEBUG_SPEC \ # define ASM_DEBUG_SPEC \
(PREFERRED_DEBUGGING_TYPE == DBX_DEBUG \ (PREFERRED_DEBUGGING_TYPE == DBX_DEBUG \
? "%{gdwarf-2*:--gdwarf2}%{!gdwarf-2*:%{g*:--gstabs}}" \ ? "%{gdwarf-2*:--gdwarf2}%{!gdwarf-2*:%{g*:--gstabs}}" ASM_MAP \
: "%{gstabs*:--gstabs}%{!gstabs*:%{g*:--gdwarf2}}") : "%{gstabs*:--gstabs}%{!gstabs*:%{g*:--gdwarf2}}" ASM_MAP)
# else # else
# if defined(DBX_DEBUGGING_INFO) && defined(HAVE_AS_GSTABS_DEBUG_FLAG) # if defined(DBX_DEBUGGING_INFO) && defined(HAVE_AS_GSTABS_DEBUG_FLAG)
# define ASM_DEBUG_SPEC "%{g*:--gstabs}" # define ASM_DEBUG_SPEC "%{g*:--gstabs}" ASM_MAP
# endif # endif
# if defined(DWARF2_DEBUGGING_INFO) && defined(HAVE_AS_GDWARF2_DEBUG_FLAG) # if defined(DWARF2_DEBUGGING_INFO) && defined(HAVE_AS_GDWARF2_DEBUG_FLAG)
# define ASM_DEBUG_SPEC "%{g*:--gdwarf2}" # define ASM_DEBUG_SPEC "%{g*:--gdwarf2}" ASM_MAP
# endif # endif
# endif # endif
#endif #endif

View file

@ -40,6 +40,7 @@ along with GCC; see the file COPYING3. If not see
#include "target.h" #include "target.h"
#include "tree-pass.h" #include "tree-pass.h"
#include "dbgcnt.h" #include "dbgcnt.h"
#include "debug.h"
/* Value of the -G xx switch, and whether it was passed or not. */ /* Value of the -G xx switch, and whether it was passed or not. */
unsigned HOST_WIDE_INT g_switch_value; unsigned HOST_WIDE_INT g_switch_value;
@ -1531,6 +1532,10 @@ common_handle_option (size_t scode, const char *arg, int value,
dbg_cnt_list_all_counters (); dbg_cnt_list_all_counters ();
break; break;
case OPT_fdebug_prefix_map_:
add_debug_prefix_map (arg);
break;
case OPT_fdiagnostics_show_location_: case OPT_fdiagnostics_show_location_:
if (!strcmp (arg, "once")) if (!strcmp (arg, "once"))
diagnostic_prefixing_rule (global_dc) = DIAGNOSTICS_SHOW_PREFIX_ONCE; diagnostic_prefixing_rule (global_dc) = DIAGNOSTICS_SHOW_PREFIX_ONCE;

View file

@ -694,6 +694,8 @@ output_file_directive (FILE *asm_file, const char *input_name)
if (input_name == NULL) if (input_name == NULL)
input_name = "<stdin>"; input_name = "<stdin>";
else
input_name = remap_debug_filename (input_name);
len = strlen (input_name); len = strlen (input_name);
na = input_name + len; na = input_name + len;

View file

@ -1150,7 +1150,8 @@ write_srccorr (int fileid, dst_file_info_entry file_info_entry,
(src_command.dst_a_src_cmd_fields.dst_a_src_decl_src.dst_b_src_df_filename, (src_command.dst_a_src_cmd_fields.dst_a_src_decl_src.dst_b_src_df_filename,
"source_corr (filename length)", dosizeonly); "source_corr (filename length)", dosizeonly);
totsize += write_debug_string (file_info_entry.file_name, totsize += write_debug_string (remap_debug_filename (
file_info_entry.file_name),
"source file name", dosizeonly); "source file name", dosizeonly);
totsize += write_debug_data1 (src_cmdtrlr.dst_b_src_df_libmodname, totsize += write_debug_data1 (src_cmdtrlr.dst_b_src_df_libmodname,
"source_corr (libmodname)", dosizeonly); "source_corr (libmodname)", dosizeonly);

View file

@ -300,7 +300,8 @@ xcoffout_source_file (FILE *file, const char *filename, int inline_p)
if (xcoff_current_include_file) if (xcoff_current_include_file)
{ {
fprintf (file, "\t.ei\t"); fprintf (file, "\t.ei\t");
output_quoted_string (file, xcoff_current_include_file); output_quoted_string (file,
remap_debug_filename (xcoff_current_include_file));
fprintf (file, "\n"); fprintf (file, "\n");
xcoff_current_include_file = NULL; xcoff_current_include_file = NULL;
} }
@ -308,7 +309,7 @@ xcoffout_source_file (FILE *file, const char *filename, int inline_p)
if (strcmp (main_input_filename, filename) || inline_p) if (strcmp (main_input_filename, filename) || inline_p)
{ {
fprintf (file, "\t.bi\t"); fprintf (file, "\t.bi\t");
output_quoted_string (file, filename); output_quoted_string (file, remap_debug_filename (filename));
fprintf (file, "\n"); fprintf (file, "\n");
xcoff_current_include_file = filename; xcoff_current_include_file = filename;
} }