This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [Patch, AArch64, ILP32] 5/5 Improve the debugging experience with the generated file


On 06/21/2013 11:08 AM, Yufeng Zhang wrote:
Hi,

This patch adds a #line directive at the beginning of the generated file
(elf32-aarch64.c and elf64-aarch64.c) so that the generated debug
information points to the template file instead.

OK for the trunk?

Thanks,
Yufeng


bfd/

     * Makefile.am (elf32-aarch64.c): Add a #line cpp directive at the
     beginning of the generated file.
     (elf64-aarch64.c): Likewise.
     * Makefile.in: Re-generated.

05-gen-hash-line-directive.patch


diff --git a/bfd/Makefile.am b/bfd/Makefile.am
index 19b3710..0e69d12 100644
--- a/bfd/Makefile.am
+++ b/bfd/Makefile.am
@@ -917,12 +917,14 @@ elf64-target.h : elfxx-target.h

  elf32-aarch64.c : elfnn-aarch64.c
  	rm -f elf32-aarch64.c
-	sed -e s/NN/32/g < $(srcdir)/elfnn-aarch64.c > elf32-aarch64.new
+	echo "#line 1 \"$(srcdir)/elfnn-aarch64.c\"" > elf32-aarch64.new
+	sed -e s/NN/32/g < $(srcdir)/elfnn-aarch64.c >> elf32-aarch64.new
  	mv -f elf32-aarch64.new elf32-aarch64.c

  elf64-aarch64.c : elfnn-aarch64.c
  	rm -f elf64-aarch64.c
-	sed -e s/NN/64/g < $(srcdir)/elfnn-aarch64.c > elf64-aarch64.new
+	echo "#line 1 \"$(srcdir)/elfnn-aarch64.c\"" > elf64-aarch64.new
+	sed -e s/NN/64/g < $(srcdir)/elfnn-aarch64.c >> elf64-aarch64.new
  	mv -f elf64-aarch64.new elf64-aarch64.c

  elf32-ia64.c : elfnn-ia64.c

I really hate this pattern of running the file through sed and synthesizing the #line.

I know this was built up out of several of the other patches, but I am commenting on it here.

Can you instead move the duplicated code to a file to be included twice, parameterizing it with one or more preprocessor macros?

I.E.:

.
.
.
#define AARCH64_ABI 32
#include "elfnn-arch64.c"
#undef AARCH64_ABI
#define AARCH64_ABI 64
#include "elfnn-arch64.c"
.
.
.


Thanks,
David Daney


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]