diff options
| author | Yaakov Selkowitz <yselkowi@redhat.com> | 2017-11-14 21:35:47 -0600 |
|---|---|---|
| committer | Yaakov Selkowitz <yselkowi@redhat.com> | 2017-11-14 21:36:46 -0600 |
| commit | acdb7b060d1986e9e24650e2bd79079835ce07d8 (patch) | |
| tree | 210f18047a011980f5cbf891ef374a953a7cd8aa | |
| parent | b05e9c0e695a0c30ef6fac6fed928133dde3668e (diff) | |
| download | cygwin-filesystem-acdb7b060d1986e9e24650e2bd79079835ce07d8.tar.gz cygwin-filesystem-acdb7b060d1986e9e24650e2bd79079835ce07d8.tar.xz cygwin-filesystem-acdb7b060d1986e9e24650e2bd79079835ce07d8.zip | |
Implement MiniDebugInfo for Cygwin binaries
| -rwxr-xr-x | cygwin-find-debuginfo.sh | 5 | ||||
| -rw-r--r-- | macros.cygwin | 1 |
2 files changed, 5 insertions, 1 deletions
diff --git a/cygwin-find-debuginfo.sh b/cygwin-find-debuginfo.sh index 31c4799..83979e4 100755 --- a/cygwin-find-debuginfo.sh +++ b/cygwin-find-debuginfo.sh @@ -25,7 +25,10 @@ do echo extracting debug info from $f cygwin-objcopy --only-keep-debug $f $f.debug || : pushd `dirname $f` - cygwin-objcopy --add-gnu-debuglink=`basename $f.debug` --strip-unneeded `basename $f` || : + keep_symbols=`mktemp` + cygwin-nm --format=sysv --defined-only $f.debug | awk -F \| '{ if ($4 ~ "Function") print $1 }' | sort > "$keep_symbols" + cygwin-objcopy --add-gnu-debuglink=`basename $f.debug` --strip-unneeded --keep-symbols="$keep_symbols" `basename $f` || : + rm -f "$keep_symbols" popd done diff --git a/macros.cygwin b/macros.cygwin index 48b64c9..9e74224 100644 --- a/macros.cygwin +++ b/macros.cygwin @@ -7,6 +7,7 @@ %cygwin_strip cygwin-strip %cygwin_objdump cygwin-objdump %cygwin_objcopy cygwin-objcopy +%cygwin_nm cygwin-nm %cygwin_findprovides %{_rpmconfigdir}/cygwin-find-provides.sh %{cygwin_build_targets} %cygwin_findrequires %{_rpmconfigdir}/cygwin-find-requires.sh %{cygwin_build_targets} |
