From 6bf045cd32d07ae55d7eec8ff94bd937c6bb2bce Mon Sep 17 00:00:00 2001 From: Patrick Palka Date: Sun, 30 Nov 2014 11:47:16 -0500 Subject: [PATCH] Don't munge yacc's #line directives The #line directives within GDB's autogenerated yacc files (e.g. c-exp.c) are being incorrectly munged, causing these directives to refer to nonexistent source files, e.g. #line 36 "/home/patrick/binutils-gdb/gdb//home/patrick/binutils-gdb/gdb/c-exp.y" as opposed to #line 36 "/home/patrick/binutils-gdb/gdb/c-exp.y" The munging happens due to a sed expression added by commit 954d8cae whose intended purpose[1] was to work around the fact that ylwrap emitted #line directives without any directory information, e.g. #line 36 "c-exp.y" So the sed expression was meant to munge such directives to refer to absolute paths instead. But the behavior of ylwrap was changed some years ago[2] to emit absolute paths within #line directives. And when our local copy of ylwrap was synced by commit e30465112, the sed expression in question became unnecessary, and indeed harmful. This patch removes the now-obsolete sed expression. The emitted #line directives are now correct without it. gdb/ChangeLog: * Makefile.in (.y.c): Don't munge yacc's #line directives. [1]: https://sourceware.org/ml/gdb-patches/2010-11/msg00265.html [2]: http://git.savannah.gnu.org/cgit/automake.git/commit/lib/ylwrap?id=b6359a5f3 --- gdb/ChangeLog | 5 +++++ gdb/Makefile.in | 1 - 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 2e9816a4279..c830053934e 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2015-01-09 Patrick Palka + + * Makefile.in (.y.c): Don't munge yacc's #line + directives. + 2015-01-09 Patrick Palka * utils.c (defaulted_query): Rewrite to use gdb_readline_wrapper diff --git a/gdb/Makefile.in b/gdb/Makefile.in index 5dae3e6b40e..86ab1be15d3 100644 --- a/gdb/Makefile.in +++ b/gdb/Makefile.in @@ -1858,7 +1858,6 @@ po/$(PACKAGE).pot: force -e 's/\([ \t;,(]\)free\([ \t]*[&(),]\)/\1xfree\2/g' \ -e 's/\([ \t;,(]\)free$$/\1xfree/g' \ -e '/^#line.*y.tab.c/d' \ - -e "s/^\(#line.*\)`basename $<`/\1`echo $<|sed 's/\//\\\\\//g'`/" \ < $@.tmp > $@ rm -f $@.tmp .l.c: -- 2.30.2