From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 478 invoked by alias); 5 Jul 2007 19:39:58 -0000 Received: (qmail 32473 invoked by uid 22791); 5 Jul 2007 19:39:51 -0000 X-Spam-Check-By: sourceware.org Received: from guri.is.scarlet.be (HELO guri.is.scarlet.be) (193.74.71.22) by sourceware.org (qpsmtpd/0.31) with ESMTP; Thu, 05 Jul 2007 19:39:40 +0000 Received: from (ip-62-235-153-8.dsl.scarlet.be [62.235.153.8] (may be forged)) by guri.is.scarlet.be with ESMTP id l65JdL023140; Thu, 5 Jul 2007 21:39:21 +0200 Received: from [172.17.1.2] (dannypc [172.17.1.2]) by fw.local (Postfix) with ESMTP id 2DEBE368B8; Thu, 5 Jul 2007 21:39:22 +0200 (CEST) Subject: Re: Debug info path remapping From: Danny Backx To: "Joseph S. Myers" Cc: gcc-patches@gcc.gnu.org, binutils@gcc.gnu.org In-Reply-To: References: Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-jvLXnjxesYbcAEK2DRBo" Date: Thu, 05 Jul 2007 20:04:00 -0000 Message-Id: <1183664360.1075.239.camel@dannypc> Mime-Version: 1.0 X-Mailer: Evolution 2.8.0-1mdv2007.0 X-DCC-scarlet.be-Metrics: guri 20001; Body=4 Fuz1=4 Fuz2=4 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org X-SW-Source: 2007-07/txt/msg00500.txt.bz2 --=-jvLXnjxesYbcAEK2DRBo Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Content-length: 36587 On Thu, 2007-07-05 at 00:48 +0000, Joseph S. Myers wrote: > These GCC and GAS patches add compiler and assembler support for > remapping paths when generating debug information, as discussed in > and thread. > This allows you to generate objects whose debug information references > a canonical location for source files, without the limitations of > postprocessing the objects (on lengths of paths involved etc.). This looks remarkably like a patch I sent in on May 16 to do something similar for gcov. The reason for my patch is cross-compilers which target Windows CE systems, on which the original source path doesn't exist. Maybe the two patches should be considered together. See http://gcc.gnu.org/ml/gcc-patches/2007-05/msg01087.html for mine. > A GCC option -fdebug-prefix-map=3DOLD=3DNEW, a GAS option > --debug-prefix-map OLD=3DNEW, and a configure option > --with-debug-prefix-map=3D"OLD1=3DNEW1 OLD2=3DNEW2 ..." are added. The > configure option causes the -fdebug-prefix-map options to be passed > when building GCC's runtime libraries; when applied to src, it has the > same effect for building newlib. GCC passes --debug-prefix-map to the > assembler if support was available at configure time. >=20 > The change to dwarf2out.c:file_table_relative_p deals with the case > where you compile a source file from an absolute path but with a > relative -I option; at the point dwarf2out_finish checks whether > DW_AT_comp_dir is needed, d->emitted_number is 0 and it only becomes 1 > later. This is needed to have correct debug information from which > the relocated paths to all source files can be found. >=20 > Tested with no regressions on i686-pc-linux-gnu. OK to commit? >=20 > (For the GAS patch, see below the GCC one.) >=20 > 2007-07-04 Paul Brook > Joseph Myers >=20 > * 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. >=20 > config: > 2007-07-04 Paul Brook > Joseph Myers >=20 > * mt-gnu (CXXFLAGS_FOR_TARGET): Add > $(DEBUG_PREFIX_CFLAGS_FOR_TARGET). >=20 > gcc: > 2007-07-04 Paul Brook > Joseph Myers >=20 > * common.opt (-fdebug-prefix-map=3D): 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. >=20 > Index: gcc/doc/invoke.texi > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > --- gcc/doc/invoke.texi (revision 126328) > +++ gcc/doc/invoke.texi (working copy) > @@ -303,6 +303,7 @@ > -ftest-coverage -ftime-report -fvar-tracking @gol > -g -g@var{level} -gcoff -gdwarf-2 @gol > -ggdb -gstabs -gstabs+ -gvms -gxcoff -gxcoff+ @gol > +-fdebug-prefix-map=3D@var{old}=3D@var{new} @gol > -femit-struct-debug-baseonly -femit-struct-debug-reduced @gol > -femit-struct-debug-detailed@r{[}=3D@var{spec-list}@r{]} @gol > -p -pg -print-file-name=3D@var{library} -print-libgcc-file-name @gol > @@ -4133,6 +4134,11 @@ >=20=20 > This option works only with DWARF 2. >=20=20 > +@item -fdebug-prefix-map=3D@var{old}=3D@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} > @item -p > @opindex p > Index: gcc/doc/install.texi > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > --- gcc/doc/install.texi (revision 126328) > +++ gcc/doc/install.texi (working copy) > @@ -1345,6 +1345,11 @@ > shorthand assumptions are not correct, you can use the explicit > include and lib options directly. >=20=20 > +@item --with-debug-prefix-map=3D@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}=3D@var{new}}. > + > @end table >=20=20 > @subheading Cross-Compiler-Specific Options > Index: gcc/final.c > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > --- gcc/final.c (revision 126328) > +++ gcc/final.c (working copy) > @@ -78,6 +78,7 @@ > #include "coverage.h" > #include "df.h" > #include "vecprim.h" > +#include "ggc.h" >=20=20 > #ifdef XCOFF_DEBUGGING_INFO > #include "xcoffout.h" /* Needed for external data > @@ -1351,6 +1352,72 @@ > } > #endif > =0C > +/* ??? 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=3DNEW. */ > + > +void > +add_debug_prefix_map (const char *arg) > +{ > + debug_prefix_map *map; > + const char *p; > + > + p =3D strchr (arg, '=3D'); > + if (!p) > + { > + error ("invalid argument %qs to -fdebug-prefix-map", arg); > + return; > + } > + map =3D XNEW (debug_prefix_map); > + map->old_prefix =3D ggc_alloc_string (arg, p - arg); > + map->old_len =3D p - arg; > + p++; > + map->new_prefix =3D ggc_strdup (p); > + map->new_len =3D strlen (p); > + map->next =3D debug_prefix_maps; > + debug_prefix_maps =3D 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 =3D debug_prefix_maps; map; map =3D map->next) > + if (strncmp (filename, map->old_prefix, map->old_len) =3D=3D 0) > + break; > + if (!map) > + return filename; > + name =3D filename + map->old_len; > + name_len =3D strlen (name) + 1; > + s =3D (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); > +} > +=0C > /* Output assembler code for the start of a function, > and initialize some of the variables in this file > for the new function. The label for the function and associated > Index: gcc/gcc.c > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > --- gcc/gcc.c (revision 126328) > +++ gcc/gcc.c (working copy) > @@ -656,21 +656,27 @@ > #define LINKER_NAME "collect2" > #endif >=20=20 > +#ifdef HAVE_AS_DEBUG_PREFIX_MAP > +#define ASM_MAP " %{fdebug-prefix-map=3D*:--debug-prefix-map %*}" > +#else > +#define ASM_MAP "" > +#endif > + > /* Define ASM_DEBUG_SPEC to be a spec suitable for translating '-g' > to the assembler. */ > #ifndef ASM_DEBUG_SPEC > # if defined(DBX_DEBUGGING_INFO) && defined(DWARF2_DEBUGGING_INFO) \ > && defined(HAVE_AS_GDWARF2_DEBUG_FLAG) && defined(HAVE_AS_GSTABS_DE= BUG_FLAG) > -# define ASM_DEBUG_SPEC \ > - (PREFERRED_DEBUGGING_TYPE =3D=3D DBX_DEBUG \ > - ? "%{gdwarf-2*:--gdwarf2}%{!gdwarf-2*:%{g*:--gstabs}}" \ > - : "%{gstabs*:--gstabs}%{!gstabs*:%{g*:--gdwarf2}}") > +# define ASM_DEBUG_SPEC \ > + (PREFERRED_DEBUGGING_TYPE =3D=3D DBX_DEBUG \ > + ? "%{gdwarf-2*:--gdwarf2}%{!gdwarf-2*:%{g*:--gstabs}}" ASM_MAP \ > + : "%{gstabs*:--gstabs}%{!gstabs*:%{g*:--gdwarf2}}" ASM_MAP) > # else > # 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 > # if defined(DWARF2_DEBUGGING_INFO) && defined(HAVE_AS_GDWARF2_DEBUG_FL= AG) > -# define ASM_DEBUG_SPEC "%{g*:--gdwarf2}" > +# define ASM_DEBUG_SPEC "%{g*:--gdwarf2}" ASM_MAP > # endif > # endif > #endif > Index: gcc/toplev.c > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > --- gcc/toplev.c (revision 126328) > +++ gcc/toplev.c (working copy) > @@ -702,6 +702,8 @@ >=20=20 > if (input_name =3D=3D NULL) > input_name =3D ""; > + else > + input_name =3D remap_debug_filename (input_name); >=20=20 > len =3D strlen (input_name); > na =3D input_name + len; > Index: gcc/vmsdbgout.c > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > --- gcc/vmsdbgout.c (revision 126328) > +++ gcc/vmsdbgout.c (working copy) > @@ -1150,7 +1150,8 @@ > (src_command.dst_a_src_cmd_fields.dst_a_src_decl_src.dst_b_src_df_fi= lename, > "source_corr (filename length)", dosizeonly); >=20=20 > - totsize +=3D write_debug_string (file_info_entry.file_name, > + totsize +=3D write_debug_string (remap_debug_filename ( > + file_info_entry.file_name), > "source file name", dosizeonly); > totsize +=3D write_debug_data1 (src_cmdtrlr.dst_b_src_df_libmodname, > "source_corr (libmodname)", dosizeonly); > Index: gcc/debug.h > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > --- gcc/debug.h (revision 126328) > +++ gcc/debug.h (working copy) > @@ -167,4 +167,7 @@ > extern int debug_nesting; > extern int symbol_queue_index; >=20=20 > +const char *remap_debug_filename (const char *); > +void add_debug_prefix_map (const char *); > + > #endif /* !GCC_DEBUG_H */ > Index: gcc/dbxout.c > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > --- gcc/dbxout.c (revision 126328) > +++ gcc/dbxout.c (working copy) > @@ -984,6 +984,7 @@ > char ltext_label_name[100]; > bool used_ltext_label_name =3D false; > tree syms =3D lang_hooks.decls.getdecls (); > + const char *mapped_name; >=20=20 > typevec_len =3D 100; > typevec =3D ggc_calloc (typevec_len, sizeof typevec[0]); > @@ -1009,6 +1010,7 @@ > cwd =3D "/"; > else if (!IS_DIR_SEPARATOR (cwd[strlen (cwd) - 1])) > cwd =3D concat (cwd, "/", NULL); > + cwd =3D remap_debug_filename (cwd); > } > #ifdef DBX_OUTPUT_MAIN_SOURCE_DIRECTORY > DBX_OUTPUT_MAIN_SOURCE_DIRECTORY (asm_out_file, cwd); > @@ -1019,10 +1021,11 @@ > #endif /* no DBX_OUTPUT_MAIN_SOURCE_DIRECTORY */ > } >=20=20 > + mapped_name =3D remap_debug_filename (input_file_name); > #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 > - 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); > used_ltext_label_name =3D true; > #endif > @@ -1164,7 +1167,7 @@ > n->prev =3D NULL; > current_file->prev =3D n; > n->bincl_status =3D BINCL_PENDING; > - n->pending_bincl_name =3D filename; > + n->pending_bincl_name =3D remap_debug_filename (filename); > pending_bincls =3D 1; > current_file =3D n; > #endif > @@ -1230,7 +1233,7 @@ > if (current_function_decl =3D=3D NULL_TREE) > switch_to_section (text_section); >=20=20 > - 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); > lastfile =3D filename; > } > Index: gcc/xcoffout.c > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > --- gcc/xcoffout.c (revision 126328) > +++ gcc/xcoffout.c (working copy) > @@ -301,7 +301,8 @@ > if (xcoff_current_include_file) > { > 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"); > xcoff_current_include_file =3D NULL; > } > @@ -309,7 +310,7 @@ > if (strcmp (main_input_filename, filename) || inline_p) > { > fprintf (file, "\t.bi\t"); > - output_quoted_string (file, filename); > + output_quoted_string (file, remap_debug_filename (filename)); > fprintf (file, "\n"); > xcoff_current_include_file =3D filename; > } > Index: gcc/dwarf2out.c > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > --- gcc/dwarf2out.c (revision 126328) > +++ gcc/dwarf2out.c (working copy) > @@ -10734,7 +10734,7 @@ > { > const char *wd =3D get_src_pwd (); > if (wd !=3D NULL) > - add_AT_string (die, DW_AT_comp_dir, wd); > + add_AT_string (die, DW_AT_comp_dir, remap_debug_filename (wd)); > } >=20=20 > /* Given a tree node describing an array bound (either lower or upper) o= utput > @@ -13827,7 +13827,8 @@ > if (DWARF2_ASM_LINE_DEBUG_INFO) > { > 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); > } > } > @@ -13994,7 +13995,7 @@ > dw_die_ref bincl_die; >=20=20 > bincl_die =3D 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 (filena= me)); > } >=20=20 > if (debug_info_level >=3D DINFO_LEVEL_VERBOSE) > @@ -14453,7 +14454,7 @@ > { > bool *p =3D param; > struct dwarf_file_data *d =3D *slot; > - if (d->emitted_number && !IS_ABSOLUTE_PATH (d->filename)) > + if (!IS_ABSOLUTE_PATH (d->filename)) > { > *p =3D true; > return 0; > @@ -14472,7 +14473,7 @@ >=20=20 > /* Add the name for the main input file now. We delayed this from > 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)) > add_comp_dir_attribute (comp_unit_die); > else if (get_AT (comp_unit_die, DW_AT_comp_dir) =3D=3D NULL) > Index: gcc/opts.c > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > --- gcc/opts.c (revision 126328) > +++ gcc/opts.c (working copy) > @@ -41,6 +41,7 @@ > #include "target.h" > #include "tree-pass.h" > #include "dbgcnt.h" > +#include "debug.h" >=20=20 > /* Value of the -G xx switch, and whether it was passed or not. */ > unsigned HOST_WIDE_INT g_switch_value; > @@ -1442,6 +1443,10 @@ > dbg_cnt_list_all_counters (); > break; >=20=20 > + case OPT_fdebug_prefix_map_: > + add_debug_prefix_map (arg); > + break; > + > case OPT_fdiagnostics_show_location_: > if (!strcmp (arg, "once")) > diagnostic_prefixing_rule (global_dc) =3D DIAGNOSTICS_SHOW_PREFIX_ONCE; > Index: gcc/configure.ac > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > --- gcc/configure.ac (revision 126328) > +++ gcc/configure.ac (working copy) > @@ -3050,6 +3050,12 @@ > fi], > [AC_DEFINE(HAVE_AS_GSTABS_DEBUG_FLAG, 1, > [Define if your assembler supports the --gstabs option.])]) > + > + gcc_GAS_CHECK_FEATURE([--debug-prefix-map option], > + gcc_cv_as_debug_prefix_map_flag, > + [2,18,0], [--debug-prefix-map /a=3D/b], [$insn],, > + [AC_DEFINE(HAVE_AS_DEBUG_PREFIX_MAP, 1, > +[Define if your assembler supports the --debug-prefix-map option.])]) > fi >=20=20 > AC_CACHE_CHECK([assembler for tolerance to line number 0], > Index: gcc/common.opt > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > --- gcc/common.opt (revision 126328) > +++ gcc/common.opt (working copy) > @@ -400,6 +400,10 @@ > Common RejectNegative Joined > -fdbg-cnt=3D:[,:,...] Set the debug c= ounter limit.=20=20=20 >=20=20 > +fdebug-prefix-map=3D > +Common Joined RejectNegative > +Map one directory name to another in debug information > + > ; Nonzero for -fdefer-pop: don't pop args after each function call > ; instead save them up to pop many calls' args with one insns. > fdefer-pop > Index: gcc/Makefile.in > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > --- gcc/Makefile.in (revision 126328) > +++ gcc/Makefile.in (working copy) > @@ -2276,7 +2276,7 @@ > 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) \ > 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) \ > coretypes.h intl.h > targhooks.o : targhooks.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TREE_H) \ > @@ -2762,7 +2762,7 @@ > 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= \ > $(BASIC_BLOCK_H) $(TM_P_H) $(TARGET_H) $(EXPR_H) $(CFGLAYOUT_H) dbxou= t.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) \ > $(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 \ > Index: configure.ac > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > --- configure.ac (revision 126328) > +++ configure.ac (working copy) > @@ -1590,6 +1590,18 @@ > [SYSROOT_CFLAGS_FOR_TARGET=3D]) > AC_SUBST(SYSROOT_CFLAGS_FOR_TARGET) >=20=20 > +AC_ARG_WITH([debug-prefix-map], > + [ --with-debug-prefix-map=3D'A=3DB C=3DD ...' > + map A to B, C to D ... in debug information= ], > + [if test x"$withval" !=3D x; then > + DEBUG_PREFIX_CFLAGS_FOR_TARGET=3D > + for debug_map in $withval; do > + DEBUG_PREFIX_CFLAGS_FOR_TARGET=3D"$DEBUG_PREFIX_CFLAGS_FOR_TARGET= -fdebug-prefix-map=3D$debug_map" > + done > + fi], > + [DEBUG_PREFIX_CFLAGS_FOR_TARGET=3D]) > +AC_SUBST(DEBUG_PREFIX_CFLAGS_FOR_TARGET) > + > # Handle --with-headers=3DXXX. If the value is not "yes", the contents = of > # the named directory are copied to $(tooldir)/sys-include. > if test x"${with_headers}" !=3D x && test x"${with_headers}" !=3D xno ; = then > Index: Makefile.tpl > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > --- Makefile.tpl (revision 126328) > +++ Makefile.tpl (working copy) > @@ -361,9 +361,12 @@ > # CFLAGS will be just -g. We want to ensure that TARGET libraries > # (which we know are built with gcc) are built with optimizations so > # prepend -O2 when setting CFLAGS_FOR_TARGET. > -CFLAGS_FOR_TARGET =3D -O2 $(CFLAGS) $(SYSROOT_CFLAGS_FOR_TARGET) > +CFLAGS_FOR_TARGET =3D -O2 $(CFLAGS) $(SYSROOT_CFLAGS_FOR_TARGET) \ > + $(DEBUG_PREFIX_CFLAGS_FOR_TARGET) > SYSROOT_CFLAGS_FOR_TARGET =3D @SYSROOT_CFLAGS_FOR_TARGET@ > -CXXFLAGS_FOR_TARGET =3D $(CXXFLAGS) $(SYSROOT_CFLAGS_FOR_TARGET) > +DEBUG_PREFIX_CFLAGS_FOR_TARGET =3D @DEBUG_PREFIX_CFLAGS_FOR_TARGET@ > +CXXFLAGS_FOR_TARGET =3D $(CXXFLAGS) $(SYSROOT_CFLAGS_FOR_TARGET) \ > + $(DEBUG_PREFIX_CFLAGS_FOR_TARGET) > LIBCFLAGS_FOR_TARGET =3D $(CFLAGS_FOR_TARGET) > LIBCXXFLAGS_FOR_TARGET =3D $(CXXFLAGS_FOR_TARGET) -fno-implicit-templates > LDFLAGS_FOR_TARGET =3D=20 > Index: config/mt-gnu > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > --- config/mt-gnu (revision 126328) > +++ config/mt-gnu (working copy) > @@ -1 +1,2 @@ > -CXXFLAGS_FOR_TARGET =3D $(CXXFLAGS) $(SYSROOT_CFLAGS_FOR_TARGET) -D_GNU_= SOURCE > +CXXFLAGS_FOR_TARGET =3D $(CXXFLAGS) $(SYSROOT_CFLAGS_FOR_TARGET) \ > + $(DEBUG_PREFIX_CFLAGS_FOR_TARGET) -D_GNU_SOURCE >=20 >=20 >=20 >=20 >=20 >=20 > 2007-07-04 Joseph Myers > Paul Brook >=20 > * remap.c: New. > * as.h (remap_debug_filename, add_debug_prefix_map): Declare. > * as.c (show_usage): Document --debug-prefix-map option. > (parse_args): Handle --debug-prefix-map. > * dwarf2dbg.c (out_file_list, out_debug_info): Remap debug paths. > * stabs.c (stabs_generate_asm_file): Remap debug paths. > * Makefile.am (GAS_CFILES): Add remap.c > (GENERIC_OBJS): Add remap.o. > Regenerate dependencies. > * Makefile.in: Regenerate. > * doc/as.texinfo (--debug-prefix-map): Document. >=20 > Index: gas/Makefile.am > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > RCS file: /cvs/src/src/gas/Makefile.am,v > retrieving revision 1.151 > diff -u -r1.151 Makefile.am > --- gas/Makefile.am 2 Jul 2007 07:12:50 -0000 1.151 > +++ gas/Makefile.am 4 Jul 2007 21:25:51 -0000 > @@ -195,6 +195,7 @@ > messages.c \ > output-file.c \ > read.c \ > + remap.c \ > sb.c \ > stabs.c \ > subsegs.c \ > @@ -439,6 +440,7 @@ > messages.o \ > output-file.o \ > read.o \ > + remap.o \ > subsegs.o \ > symbols.o \ > write.o \ > @@ -1490,6 +1492,11 @@ > $(INCDIR)/bfdlink.h $(srcdir)/config/tc-bfin.h dwarf2dbg.h \ > $(INCDIR)/safe-ctype.h subsegs.h $(INCDIR)/obstack.h \ > $(INCDIR)/obstack.h struc-symbol.h dwarf2dbg.h $(INCDIR)/aout/aout64.h > +DEPOBJ_cr16_elf =3D $(srcdir)/config/obj-elf.h $(BFDDIR)/elf-bfd.h \ > + $(INCDIR)/elf/common.h $(INCDIR)/elf/internal.h $(INCDIR)/elf/external= .h \ > + $(INCDIR)/bfdlink.h $(srcdir)/config/tc-cr16.h dwarf2dbg.h \ > + $(INCDIR)/safe-ctype.h subsegs.h $(INCDIR)/obstack.h \ > + $(INCDIR)/obstack.h struc-symbol.h dwarf2dbg.h $(INCDIR)/aout/aout64.h > DEPOBJ_cris_aout =3D $(srcdir)/config/obj-aout.h $(srcdir)/config/tc-cri= s.h \ > $(BFDDIR)/libaout.h $(INCDIR)/bfdlink.h $(INCDIR)/aout/aout64.h \ > $(INCDIR)/obstack.h > @@ -2158,6 +2165,7 @@ > output-file.o: output-file.c output-file.h > read.o: read.c $(INCDIR)/safe-ctype.h subsegs.h $(INCDIR)/obstack.h \ > sb.h macro.h ecoff.h dw2gencfi.h $(INCDIR)/elf/dwarf2.h > +remap.o: remap.c > sb.o: sb.c sb.h > stabs.o: stabs.c $(INCDIR)/obstack.h subsegs.h ecoff.h \ > $(INCDIR)/aout/stab_gnu.h $(INCDIR)/aout/stab.def > Index: gas/as.c > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > RCS file: /cvs/src/src/gas/as.c,v > retrieving revision 1.75 > diff -u -r1.75 as.c > --- gas/as.c 3 Jul 2007 11:01:02 -0000 1.75 > +++ gas/as.c 4 Jul 2007 21:25:52 -0000 > @@ -244,6 +244,8 @@ > fprintf (stream, _("\ > -D produce assembler debugging messages\n")); > fprintf (stream, _("\ > + --debug-prefix-map OLD=3DNEW Map OLD to NEW in debug information\n")); > + fprintf (stream, _("\ > --defsym SYM=3DVAL define symbol SYM to given value\n")); > #ifdef USE_EMULATIONS > { > @@ -407,6 +409,7 @@ > OPTION_DUMPCONFIG, > OPTION_VERBOSE, > OPTION_EMULATION, > + OPTION_DEBUG_PREFIX_MAP, > OPTION_DEFSYM, > OPTION_INSTTBL, > OPTION_LISTING_LHS_WIDTH, > @@ -445,6 +448,7 @@ > ,{"a", optional_argument, NULL, 'a'} > /* Handle -al=3D. */ > ,{"al", optional_argument, NULL, OPTION_AL} > + ,{"debug-prefix-map", required_argument, NULL, OPTION_DEBUG_PREFIX_M= AP} > ,{"defsym", required_argument, NULL, OPTION_DEFSYM} > ,{"dump-config", no_argument, NULL, OPTION_DUMPCONFIG} > ,{"emulation", required_argument, NULL, OPTION_EMULATION} > @@ -620,6 +624,10 @@ > #endif > exit (EXIT_SUCCESS); >=20=20 > + case OPTION_DEBUG_PREFIX_MAP: > + add_debug_prefix_map (optarg); > + break; > + > case OPTION_DEFSYM: > { > char *s; > Index: gas/as.h > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > RCS file: /cvs/src/src/gas/as.h,v > retrieving revision 1.57 > diff -u -r1.57 as.h > --- gas/as.h 3 Jul 2007 11:01:02 -0000 1.57 > +++ gas/as.h 4 Jul 2007 21:25:52 -0000 > @@ -567,6 +567,9 @@ > void print_dependencies (void); > segT subseg_get (const char *, int); >=20=20 > +const char *remap_debug_filename (const char *); > +void add_debug_prefix_map (const char *); > + > struct expressionS; > struct fix; > typedef struct symbol symbolS; > Index: gas/dwarf2dbg.c > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > RCS file: /cvs/src/src/gas/dwarf2dbg.c,v > retrieving revision 1.89 > diff -u -r1.89 dwarf2dbg.c > --- gas/dwarf2dbg.c 3 Jul 2007 11:01:02 -0000 1.89 > +++ gas/dwarf2dbg.c 4 Jul 2007 21:25:52 -0000 > @@ -1224,15 +1224,17 @@ > out_file_list (void) > { > size_t size; > + const char *dir; > char *cp; > unsigned int i; >=20=20 > /* Emit directory list. */ > for (i =3D 1; i < dirs_in_use; ++i) > { > - size =3D strlen (dirs[i]) + 1; > + dir =3D remap_debug_filename (dirs[i]); > + size =3D strlen (dir) + 1; > cp =3D frag_more (size); > - memcpy (cp, dirs[i], size); > + memcpy (cp, dir, size); > } > /* Terminate it. */ > out_byte ('\0'); > @@ -1514,7 +1516,8 @@ > out_debug_info (segT info_seg, segT abbrev_seg, segT line_seg, segT rang= es_seg) > { > char producer[128]; > - char *comp_dir; > + const char *comp_dir; > + const char *dirname; > expressionS expr; > symbolS *info_start; > symbolS *info_end; > @@ -1604,9 +1607,10 @@ > abort (); > if (files[1].dir) > { > - len =3D strlen (dirs[files[1].dir]); > + dirname =3D remap_debug_filename (dirs[files[1].dir]); > + len =3D strlen (dirname); > p =3D frag_more (len + 1); > - memcpy (p, dirs[files[1].dir], len); > + memcpy (p, dirname, len); > INSERT_DIR_SEPARATOR (p, len); > } > len =3D strlen (files[1].filename) + 1; > @@ -1614,7 +1618,7 @@ > memcpy (p, files[1].filename, len); >=20=20 > /* DW_AT_comp_dir */ > - comp_dir =3D getpwd (); > + comp_dir =3D remap_debug_filename (getpwd ()); > len =3D strlen (comp_dir) + 1; > p =3D frag_more (len); > memcpy (p, comp_dir, len); > Index: gas/remap.c > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > RCS file: gas/remap.c > diff -N gas/remap.c > --- /dev/null 1 Jan 1970 00:00:00 -0000 > +++ gas/remap.c 4 Jul 2007 21:25:52 -0000 > @@ -0,0 +1,89 @@ > +/* Remap file names for debug info for GNU assembler. > + Copyright 2007 Free Software Foundation, Inc. > + > + This file is part of GAS, the GNU Assembler. > + > + GAS is free software; you can redistribute it and/or modify > + it under the terms of the GNU General Public License as published by > + the Free Software Foundation; either version 2, or (at your option) > + any later version. > + > + GAS is distributed in the hope that it will be useful, > + but WITHOUT ANY WARRANTY; without even the implied warranty of > + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > + GNU General Public License for more details. > + > + You should have received a copy of the GNU General Public License > + along with GAS; see the file COPYING. If not, write to the Free > + Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA > + 02110-1301, USA. */ > + > +#include "as.h" > + > +/* 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=3DNEW. */ > + > +void > +add_debug_prefix_map (const char *arg) > +{ > + debug_prefix_map *map; > + const char *p; > + char *o; > + > + p =3D strchr (arg, '=3D'); > + if (!p) > + { > + as_fatal (_("invalid argument '%s' to -fdebug-prefix-map"), arg); > + return; > + } > + map =3D xmalloc (sizeof (debug_prefix_map)); > + o =3D xstrdup (arg); > + map->old_prefix =3D o; > + map->old_len =3D p - arg; > + o[map->old_len] =3D 0; > + p++; > + map->new_prefix =3D xstrdup (p); > + map->new_len =3D strlen (p); > + map->next =3D debug_prefix_maps; > + debug_prefix_maps =3D 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 =3D debug_prefix_maps; map; map =3D map->next) > + if (strncmp (filename, map->old_prefix, map->old_len) =3D=3D 0) > + break; > + if (!map) > + return filename; > + name =3D filename + map->old_len; > + name_len =3D strlen (name) + 1; > + s =3D (char *) alloca (name_len + map->new_len); > + memcpy (s, map->new_prefix, map->new_len); > + memcpy (s + map->new_len, name, name_len); > + return xstrdup (s); > +} > Index: gas/stabs.c > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > RCS file: /cvs/src/src/gas/stabs.c,v > retrieving revision 1.28 > diff -u -r1.28 stabs.c > --- gas/stabs.c 3 Jul 2007 11:01:03 -0000 1.28 > +++ gas/stabs.c 4 Jul 2007 21:25:52 -0000 > @@ -492,9 +492,10 @@ > as_where (&file, &lineno); > if (use_gnu_debug_info_extensions) > { > - char *dir, *dir2; > + const char *dir; > + char *dir2; >=20=20 > - dir =3D getpwd (); > + dir =3D remap_debug_filename (getpwd ()); > dir2 =3D alloca (strlen (dir) + 2); > sprintf (dir2, "%s%s", dir, "/"); > generate_asm_file (N_SO, dir2); > Index: gas/doc/Makefile.in > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > RCS file: /cvs/src/src/gas/doc/Makefile.in,v > retrieving revision 1.92 > diff -u -r1.92 Makefile.in > --- gas/doc/Makefile.in 2 Jul 2007 07:12:50 -0000 1.92 > +++ gas/doc/Makefile.in 4 Jul 2007 21:25:52 -0000 > @@ -295,9 +295,9 @@ > exit 1;; \ > esac; \ > done; \ > - echo ' cd $(top_srcdir) && $(AUTOMAKE) --cygnus doc/Makefile'; \ > + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign doc/Makefile'; \ > cd $(top_srcdir) && \ > - $(AUTOMAKE) --cygnus doc/Makefile > + $(AUTOMAKE) --foreign doc/Makefile > .PRECIOUS: Makefile > Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status > @case '$?' in \ > Index: gas/doc/as.texinfo > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > RCS file: /cvs/src/src/gas/doc/as.texinfo,v > retrieving revision 1.166 > diff -u -r1.166 as.texinfo > --- gas/doc/as.texinfo 29 Jun 2007 14:09:30 -0000 1.166 > +++ gas/doc/as.texinfo 4 Jul 2007 21:25:54 -0000 > @@ -226,6 +226,7 @@ > @smallexample > @c man begin SYNOPSIS > @value{AS} [@b{-a}[@b{cdhlns}][=3D@var{file}]] [@b{--alternate}] [@b{-D}] > + [@b{--debug-prefix-map} @var{old}=3D@var{new}] > [@b{--defsym} @var{sym}=3D@var{val}] [@b{-f}] [@b{-g}] [@b{--gstabs}] > [@b{--gstabs+}] [@b{--gdwarf-2}] [@b{--help}] [@b{-I} @var{dir}] [@b{-J= }] > [@b{-K}] [@b{-L}] [@b{--listing-lhs-width}=3D@var{NUM}] > @@ -501,6 +502,10 @@ > Ignored. This option is accepted for script compatibility with calls to > other assemblers. >=20=20 > +@item --debug-prefix-map @var{old}=3D@var{new} > +When assembling files in directory @file{@var{old}}, record debugging > +information describing them as in @file{@var{new}} instead. > + > @item --defsym @var{sym}=3D@var{value} > Define the symbol @var{sym} to be @var{value} before assembling the inpu= t file. > @var{value} must be an integer constant. As in C, a leading @samp{0x} >=20 --=20 Danny Backx ; danny.backx - at - scarlet.be ; http://danny.backx.info --=-jvLXnjxesYbcAEK2DRBo Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part Content-length: 189 -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.5 (GNU/Linux) iD8DBQBGjUjoNEE+KCROU2kRAlOeAJ9d3+uYVy+soBfNPs6Osu95LKqE0ACfZuqH PmE1nzOcGwBR4+lj0MPzQD0= =/lrO -----END PGP SIGNATURE----- --=-jvLXnjxesYbcAEK2DRBo--