Lines 15-22
exp_tf() {
Link Here
|
15 |
eval ${var}_${flag}=$(tf has ${flag} ${!var}) |
15 |
eval ${var}_${flag}=$(tf has ${flag} ${!var}) |
16 |
done |
16 |
done |
17 |
} |
17 |
} |
18 |
exp_tf FEATURES compressdebug installsources nostrip splitdebug xattr |
18 |
exp_tf FEATURES compressdebug dedupdebug installsources nostrip splitdebug xattr |
19 |
exp_tf PORTAGE_RESTRICT binchecks installsources splitdebug strip |
19 |
exp_tf PORTAGE_RESTRICT binchecks dedupdebug installsources splitdebug strip |
20 |
|
20 |
|
21 |
if ! ___eapi_has_prefix_variables; then |
21 |
if ! ___eapi_has_prefix_variables; then |
22 |
EPREFIX= ED=${D} |
22 |
EPREFIX= ED=${D} |
Lines 201-206
fi
Link Here
|
201 |
[[ ${debugedit} ]] && debugedit_found=true || debugedit_found=false |
201 |
[[ ${debugedit} ]] && debugedit_found=true || debugedit_found=false |
202 |
debugedit_warned=false |
202 |
debugedit_warned=false |
203 |
|
203 |
|
|
|
204 |
dwz=$(type -P dwz) |
205 |
[[ ${dwz} ]] && dwz_found=true || dwz_found=false |
206 |
dwz_warned=false |
207 |
|
204 |
__multijob_init |
208 |
__multijob_init |
205 |
|
209 |
|
206 |
# Setup ${T} filesystem layout that we care about. |
210 |
# Setup ${T} filesystem layout that we care about. |
Lines 248-253
__try_symlink() {
Link Here
|
248 |
die "failed to create symlink '${name}'" |
252 |
die "failed to create symlink '${name}'" |
249 |
} |
253 |
} |
250 |
|
254 |
|
|
|
255 |
# Usage: dedup_elf_debug <src> <inode_dedupdebug> |
256 |
dedup_elf_debug() { |
257 |
${FEATURES_dedupdebug} || return 0 |
258 |
${PORTAGE_RESTRICT_dedupdebug} && return 0 |
259 |
|
260 |
debug-print-function "${FUNCNAME}" "$@" |
261 |
|
262 |
if ! ${dwz_found} ; then |
263 |
if ! ${dwz_warned} ; then |
264 |
dwz_warned=true |
265 |
ewarn "FEATURES=dedupdebug is enabled but the dwz binary could not be" |
266 |
ewarn "found. This feature will not work unless dwz is installed!" |
267 |
fi |
268 |
return 0 |
269 |
fi |
270 |
|
271 |
local src=$1 # File to dedup debug symbols |
272 |
local inode_dedupdebug=$2 # Temp path for hard link tracking |
273 |
|
274 |
# We already dedupdebug-ed this inode. |
275 |
[[ -L ${inode_dedupdebug} ]] && return 0 |
276 |
|
277 |
"${dwz}" -- "${src}" |
278 |
touch "${inode_dedupdebug}" |
279 |
} |
280 |
|
251 |
# Usage: save_elf_debug <src> <inode_debug> [splitdebug] |
281 |
# Usage: save_elf_debug <src> <inode_debug> [splitdebug] |
252 |
save_elf_debug() { |
282 |
save_elf_debug() { |
253 |
${FEATURES_splitdebug} || return 0 |
283 |
${FEATURES_splitdebug} || return 0 |
Lines 355-360
process_elf() {
Link Here
|
355 |
xt_data=$(dump_xattrs "${x}") |
385 |
xt_data=$(dump_xattrs "${x}") |
356 |
fi |
386 |
fi |
357 |
save_elf_sources "${x}" |
387 |
save_elf_sources "${x}" |
|
|
388 |
dedup_elf_debug "${x}" "${inode_link}_dedupdebug" |
358 |
fi |
389 |
fi |
359 |
|
390 |
|
360 |
if ${strip_this} ; then |
391 |
if ${strip_this} ; then |