diff options
author | Michael Olbrich <m.olbrich@pengutronix.de> | 2013-09-13 07:45:54 +0200 |
---|---|---|
committer | Michael Olbrich <m.olbrich@pengutronix.de> | 2013-09-29 11:24:31 +0200 |
commit | 54400483e5fadf6c254b8ca1a7adc24ce82179c4 (patch) | |
tree | f6bcf4d92c0cda8ac311d09429aac9ed5a23e9e4 /scripts/lib/ptxd_make_xpkg_pkg.sh | |
parent | 333091b52dc994a1710765139d415da5610e9f4b (diff) | |
download | ptxdist-54400483e5fadf6c254b8ca1a7adc24ce82179c4.tar.gz ptxdist-54400483e5fadf6c254b8ca1a7adc24ce82179c4.tar.xz |
ptxd_make_xpkg_pkg: add separate debug files to nfsroot
Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
Diffstat (limited to 'scripts/lib/ptxd_make_xpkg_pkg.sh')
-rw-r--r-- | scripts/lib/ptxd_make_xpkg_pkg.sh | 35 |
1 files changed, 26 insertions, 9 deletions
diff --git a/scripts/lib/ptxd_make_xpkg_pkg.sh b/scripts/lib/ptxd_make_xpkg_pkg.sh index f56392dbf..8f120e32e 100644 --- a/scripts/lib/ptxd_make_xpkg_pkg.sh +++ b/scripts/lib/ptxd_make_xpkg_pkg.sh @@ -112,6 +112,9 @@ ptxd_install_setup() { # strip dirs sdirs=("${ptx_nfsroot}" "${pkg_xpkg_tmp}") + # dirs with separate debug files + ddirs=("${ptx_nfsroot}") + mod_nfs="$(printf "0%o" $(( 0${mod} & ~06000 )))" && mod_rw="$(printf "0%o" $(( 0${mod} | 0200 )))" && @@ -192,7 +195,7 @@ ptxd_install_dir() { local usr="$2" local grp="$3" local mod="$4" - local -a dirs ndirs pdirs sdirs + local -a dirs ndirs pdirs sdirs ddirs local mod_nfs mod_rw ptxd_install_setup && @@ -221,9 +224,15 @@ export -f ptxd_install_dir # # ptxd_install_file_strip() { - local -a strip_cmd + local -a strip_cmd objcopy_args local dst="${1}" + if "${CROSS_OBJCOPY}" --help | grep -q -- --compress-debug-sections; then + objcopy_args=( "--only-keep-debug" "--compress-debug-sections" ) + else + objcopy_args=( "--only-keep-debug" ) + fi + case "${strip:-y}" in k) strip_cmd=( "${CROSS_STRIP}" --strip-debug ) ;; y) strip_cmd=( "${CROSS_STRIP}" -R .note -R .comment -R .GCC.command.line ) ;; @@ -234,11 +243,19 @@ ptxd_install_file_strip() { # (fixes 64 bit fakeroot <-> 32 bit strip issue) # local tmp="strip" - local file + local file dir for file in "${sdirs[@]/%/${dst}}"; do ln -f "${file}" "${file}.${tmp}" || return done && + for dir in "${ddirs[@]}"; do + local dbg="$(dirname "${dir}${dst}")/.debug/$(basename "${dst}")" + install -d "$(dirname "${dbg}")" && + "${CROSS_OBJCOPY}" "${objcopy_args[@]}" "${dir}${dst}" "${dbg}" && + chmod -x "${dbg}" && + "${CROSS_OBJCOPY}" --add-gnu-debuglink "${dbg}" "${dir}${dst}" + done && + "${strip_cmd[@]}" "${sdirs[@]/%/${dst}}" && rm -f "${sdirs[@]/%/${dst}.${tmp}}" } @@ -252,7 +269,7 @@ ptxd_install_file_impl() { local grp="$4" local mod="$5" local strip="$6" - local -a dirs ndirs pdirs sdirs + local -a dirs ndirs pdirs sdirs ddirs local mod_nfs mod_rw ptxd_install_setup_src && @@ -315,7 +332,7 @@ ptxd_install_ln() { local dst="$2" local usr="${3:-0}" local grp="${4:-0}" - local -a dirs ndirs pdirs sdirs + local -a dirs ndirs pdirs sdirs ddirs local mod_nfs mod_rw rel ptxd_install_setup && @@ -355,7 +372,7 @@ ptxd_install_mknod() { local type="$5" local major="$6" local minor="$7" - local -a dirs ndirs pdirs sdirs + local -a dirs ndirs pdirs sdirs ddirs local mod_nfs mod_rw ptxd_install_setup && @@ -427,7 +444,7 @@ ptxd_install_replace() { local dst="$1" local placeholder="$2" local value="$3" - local -a dirs ndirs pdirs sdirs + local -a dirs ndirs pdirs sdirs ddirs local mod_nfs mod_rw ptxd_install_setup && @@ -466,7 +483,7 @@ ptxd_install_replace_figlet() { local dst="$1" local placeholder="$2" local value="$3" - local -a dirs ndirs pdirs sdirs + local -a dirs ndirs pdirs sdirs ddirs local mod_nfs mod_rw ptxd_install_setup && @@ -532,7 +549,7 @@ ptxd_install_find() { local usr="${3#-}" local grp="${4#-}" local strip="${5}" - local -a dirs ndirs pdirs sdirs + local -a dirs ndirs pdirs sdirs ddirs local mod_nfs mod_rw ptxd_install_setup_src && |