xref: /aosp_15_r20/external/toybox/mkroot/packages/dynamic (revision cf5a6c84e2b8763fc1a7db14496fd4742913b199)
1*cf5a6c84SAndroid Build Coastguard Worker#!/bin/echo Try "mkroot/mkroot.sh dynamic"
2*cf5a6c84SAndroid Build Coastguard Worker
3*cf5a6c84SAndroid Build Coastguard Worker# Copy dynamic libraries from cross compiler
4*cf5a6c84SAndroid Build Coastguard Worker
5*cf5a6c84SAndroid Build Coastguard Worker"${CROSS_COMPILE}cc" -xc - <<< 'void main(void) {;}' ||
6*cf5a6c84SAndroid Build Coastguard Worker  die "${CROSS_COMPILE}cc can't create dynamic binaries"
7*cf5a6c84SAndroid Build Coastguard WorkerLDSO="$("${CROSS_COMPILE}readelf" -a a.out | sed -n 's/.*interpreter: \([^]]*\)[]]$/\1/p')"
8*cf5a6c84SAndroid Build Coastguard Workermkdir -p "$ROOT"/"$(dirname "$LDSO")" &&
9*cf5a6c84SAndroid Build Coastguard Worker  cp "$LDSO" "$ROOT"/"$LDSO" || die "Couldn't copy ldso"
10*cf5a6c84SAndroid Build Coastguard Workerunset LDSO
11*cf5a6c84SAndroid Build Coastguard Worker
12*cf5a6c84SAndroid Build Coastguard Worker"${CROSS_COMPILE}cc" -print-search-dirs | sed -n 's/libraries: =//p' | \
13*cf5a6c84SAndroid Build Coastguard Worker  tr : '\n' | while read i; do
14*cf5a6c84SAndroid Build Coastguard Worker    [ -e "$i" ] && find "$i" -maxdepth 1 -name '*.so' -o -name '*.so*[0-9]'
15*cf5a6c84SAndroid Build Coastguard Worker  done | while read i; do cp -a "$i" "$ROOT"/lib/; done
16