diff --git a/binutils-2.19.51.0.14-only-keep-debug-doc.patch b/binutils-2.19.51.0.14-only-keep-debug-doc.patch new file mode 100644 index 0000000..5fe0671 --- /dev/null +++ b/binutils-2.19.51.0.14-only-keep-debug-doc.patch @@ -0,0 +1,154 @@ +*** ../binutils-2.19.51.0.14-copy-patched/binutils/doc/binutils.texi 2010-03-01 14:31:11.000000000 +0000 +--- binutils/doc/binutils.texi 2010-03-01 16:23:00.000000000 +0000 +*************** distribution and the second a debugging +*** 1541,1546 **** +--- 1541,1587 ---- + needed if debugging abilities are required. The suggested procedure + to create these files is as follows: + ++ @enumerate ++ @item ++ Link the executable as normal. Assuming that it is called ++ @code{foo} then... ++ @item ++ Run @code{objcopy --only-keep-debug foo foo.dbg} to ++ create a file containing the debugging info. ++ @item ++ Run @code{objcopy --strip-debug foo} to create a ++ stripped executable. ++ @item ++ Run @code{objcopy --add-gnu-debuglink=foo.dbg foo} ++ to add a link to the debugging info into the stripped executable. ++ @end enumerate ++ ++ Note---the choice of @code{.dbg} as an extension for the debug info ++ file is arbitrary. Also the @code{--only-keep-debug} step is ++ optional. You could instead do this: ++ ++ @enumerate ++ @item ++ Link the executable as normal. ++ @item ++ Copy @code{foo} to @code{foo.full} ++ @item ++ Run @code{objcopy --strip-debug foo} ++ @item ++ Run @code{objcopy --add-gnu-debuglink=foo.full foo} ++ @end enumerate ++ ++ i.e., the file pointed to by the @option{--add-gnu-debuglink} can be the ++ full executable. It does not have to be a file created by the ++ @option{--only-keep-debug} switch. ++ ++ Note---this switch is only intended for use on fully linked files. It ++ does not make sense to use it on object files where the debugging ++ information may be incomplete. Besides the gnu_debuglink feature ++ currently only supports the presence of one filename containing ++ debugging information, not multiple filenames on a one-per-object-file ++ basis. ++ + @item --file-alignment @var{num} + Specify the file alignment. Sections in the file will always begin at + file offsets which are multiples of this number. This defaults to +*************** the subsystem version also. Numeric val +*** 1584,1622 **** + @var{which}. + [This option is specific to PE targets.] + +- @enumerate +- @item Link the executable as normal. Assuming that is is called +- @code{foo} then... +- @item Run @code{objcopy --only-keep-debug foo foo.dbg} to +- create a file containing the debugging info. +- @item Run @code{objcopy --strip-debug foo} to create a +- stripped executable. +- @item Run @code{objcopy --add-gnu-debuglink=foo.dbg foo} +- to add a link to the debugging info into the stripped executable. +- @end enumerate +- +- Note---the choice of @code{.dbg} as an extension for the debug info +- file is arbitrary. Also the @code{--only-keep-debug} step is +- optional. You could instead do this: +- +- @enumerate +- @item Link the executable as normal. +- @item Copy @code{foo} to @code{foo.full} +- @item Run @code{objcopy --strip-debug foo} +- @item Run @code{objcopy --add-gnu-debuglink=foo.full foo} +- @end enumerate +- +- i.e., the file pointed to by the @option{--add-gnu-debuglink} can be the +- full executable. It does not have to be a file created by the +- @option{--only-keep-debug} switch. +- +- Note---this switch is only intended for use on fully linked files. It +- does not make sense to use it on object files where the debugging +- information may be incomplete. Besides the gnu_debuglink feature +- currently only supports the presence of one filename containing +- debugging information, not multiple filenames on a one-per-object-file +- basis. +- + @item --extract-symbol + Keep the file's section flags and symbols but remove all section data. + Specifically, the option: +--- 1625,1630 ---- +*************** needed if debugging abilities are requir +*** 2650,2662 **** + to create these files is as follows: + + @enumerate +! @item Link the executable as normal. Assuming that is is called + @code{foo} then... +! @item Run @code{objcopy --only-keep-debug foo foo.dbg} to + create a file containing the debugging info. +! @item Run @code{objcopy --strip-debug foo} to create a + stripped executable. +! @item Run @code{objcopy --add-gnu-debuglink=foo.dbg foo} + to add a link to the debugging info into the stripped executable. + @end enumerate + +--- 2658,2674 ---- + to create these files is as follows: + + @enumerate +! @item +! Link the executable as normal. Assuming that it is called + @code{foo} then... +! @item +! Run @code{objcopy --only-keep-debug foo foo.dbg} to + create a file containing the debugging info. +! @item +! Run @code{objcopy --strip-debug foo} to create a + stripped executable. +! @item +! Run @code{objcopy --add-gnu-debuglink=foo.dbg foo} + to add a link to the debugging info into the stripped executable. + @end enumerate + +*************** file is arbitrary. Also the @code{--onl +*** 2665,2674 **** + optional. You could instead do this: + + @enumerate +! @item Link the executable as normal. +! @item Copy @code{foo} to @code{foo.full} +! @item Run @code{strip --strip-debug foo} +! @item Run @code{objcopy --add-gnu-debuglink=foo.full foo} + @end enumerate + + i.e., the file pointed to by the @option{--add-gnu-debuglink} can be the +--- 2677,2690 ---- + optional. You could instead do this: + + @enumerate +! @item +! Link the executable as normal. +! @item +! Copy @code{foo} to @code{foo.full} +! @item +! Run @code{strip --strip-debug foo} +! @item +! Run @code{objcopy --add-gnu-debuglink=foo.full foo} + @end enumerate + + i.e., the file pointed to by the @option{--add-gnu-debuglink} can be the diff --git a/binutils.spec b/binutils.spec index 2a56993..2022976 100644 --- a/binutils.spec +++ b/binutils.spec @@ -17,7 +17,7 @@ Summary: A GNU collection of binary utilities Name: %{?cross}binutils%{?_with_debug:-debug} Version: 2.19.51.0.14 -Release: 37%{?dist} +Release: 38%{?dist} License: GPLv3+ Group: Development/Tools URL: http://sources.redhat.com/binutils @@ -36,6 +36,7 @@ Patch11: binutils-2.19.51.0.14-cxxfilt-java-doc.patch Patch12: binutils-2.19.51.0.14-cfi-sections.patch Patch13: binutils-2.19.51.0.14-ifunc-ld-s.patch Patch14: binutils-2.19.51.0.14-ppc-hidden-plt-relocs.patch +Patch15: binutils-2.19.51.0.14-only-keep-debug-doc.patch %if 0%{?_with_debug:1} # Define this if you want to skip the strip step and preserve debug info. @@ -113,6 +114,7 @@ to consider using libelf instead of BFD. %patch12 -p0 -b .cfi-sections~ %patch13 -p0 -b .ifunc-ld-s~ %patch14 -p0 -b .ppc-plt~ +%patch15 -p0 -b .keep-debug-doc~ # We cannot run autotools as there is an exact requirement of autoconf-2.59. @@ -380,6 +382,9 @@ exit 0 %endif # %{isnative} %changelog +* Mon Mar 1 2010 Nick Clifton 2.19.51.0.14-38 +- Fixup man page description of objcopy's --only-keep-debug option. BZ 569161. + * Tue Feb 9 2010 Nick Clifton 2.19.51.0.14-37 - Add missing frag to BZ 562249 patch.