[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Bug binutils/1391] objcopy trashes PE executable when using "add-gnu-de
From: |
nickc at redhat dot com |
Subject: |
[Bug binutils/1391] objcopy trashes PE executable when using "add-gnu-debuglink" |
Date: |
11 Oct 2005 16:05:32 -0000 |
------- Additional Comments From nickc at redhat dot com 2005-10-11 16:05
-------
Subject: Re: objcopy trashes PE executable when using
"add-gnu-debuglink"
Hi,
> currently one can fix this manually by executing additional step:
> objcopy --change-section-vma .gnu_debuglink=+<addr> test_xxx.exe
> I did a grep on the sources but could not really find a location where the
> wrong
> VMA might be produced..
> Could this be a bug in bfd library itself?
Yes, although I am not sure if an easy fix exists. In the meantime
please could you try the attached patch which might work. The problem
with it is that it has to guess as to the correct VMA value to use. I
am not sure if matters though. It might be that any non-zero value will
be valid, even if it overlaps with another section.
Cheers
Nick
Index: binutils/objcopy.c
===================================================================
RCS file: /cvs/src/src/binutils/objcopy.c,v
retrieving revision 1.87
diff -c -3 -p -r1.87 objcopy.c
*** binutils/objcopy.c 3 Oct 2005 19:37:44 -0000 1.87
--- binutils/objcopy.c 11 Oct 2005 15:40:46 -0000
*************** copy_object (bfd *ibfd, bfd *obfd)
*** 1349,1354 ****
--- 1349,1361 ----
bfd_nonfatal (gnu_debuglink_filename);
return FALSE;
}
+
+ if (bfd_get_flavour (obfd) == bfd_target_coff_flavour)
+ /* Try to set the VMA of the section to some non-zero value so
+ that it will work for PE format files. (We have no way to
+ distinguish between COFF and PE flavours). If this does not
+ work, just ignore the failure. */
+ bfd_set_section_vma (obfd, gnu_debuglink_section, 0xf0000000);
}
if (bfd_count_sections (obfd) == 0)
--
http://sourceware.org/bugzilla/show_bug.cgi?id=1391
------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.