xref: /aosp_15_r20/external/musl/tools/ld.musl-clang.in (revision c9945492fdd68bbe62686c5b452b4dc1be3f8453)
1*c9945492SAndroid Build Coastguard Worker#!/bin/sh
2*c9945492SAndroid Build Coastguard Workercc="@CC@"
3*c9945492SAndroid Build Coastguard Workerlibc_lib="@LIBDIR@"
4*c9945492SAndroid Build Coastguard Workerldso="@LDSO@"
5*c9945492SAndroid Build Coastguard Workercleared=
6*c9945492SAndroid Build Coastguard Workershared=
7*c9945492SAndroid Build Coastguard Workeruserlinkdir=
8*c9945492SAndroid Build Coastguard Workeruserlink=
9*c9945492SAndroid Build Coastguard Worker
10*c9945492SAndroid Build Coastguard Workerfor x ; do
11*c9945492SAndroid Build Coastguard Worker    test "$cleared" || set -- ; cleared=1
12*c9945492SAndroid Build Coastguard Worker
13*c9945492SAndroid Build Coastguard Worker    case "$x" in
14*c9945492SAndroid Build Coastguard Worker        -L-user-start)
15*c9945492SAndroid Build Coastguard Worker            userlinkdir=1
16*c9945492SAndroid Build Coastguard Worker            ;;
17*c9945492SAndroid Build Coastguard Worker        -L-user-end)
18*c9945492SAndroid Build Coastguard Worker            userlinkdir=
19*c9945492SAndroid Build Coastguard Worker            ;;
20*c9945492SAndroid Build Coastguard Worker        -L*)
21*c9945492SAndroid Build Coastguard Worker            test "$userlinkdir" && set -- "$@" "$x"
22*c9945492SAndroid Build Coastguard Worker            ;;
23*c9945492SAndroid Build Coastguard Worker        -l-user-start)
24*c9945492SAndroid Build Coastguard Worker            userlink=1
25*c9945492SAndroid Build Coastguard Worker            ;;
26*c9945492SAndroid Build Coastguard Worker        -l-user-end)
27*c9945492SAndroid Build Coastguard Worker            userlink=
28*c9945492SAndroid Build Coastguard Worker            ;;
29*c9945492SAndroid Build Coastguard Worker        crtbegin*.o|crtend*.o)
30*c9945492SAndroid Build Coastguard Worker            set -- "$@" $($cc -print-file-name=$x)
31*c9945492SAndroid Build Coastguard Worker            ;;
32*c9945492SAndroid Build Coastguard Worker        -lgcc|-lgcc_eh)
33*c9945492SAndroid Build Coastguard Worker            file=lib${x#-l}.a
34*c9945492SAndroid Build Coastguard Worker            set -- "$@" $($cc -print-file-name=$file)
35*c9945492SAndroid Build Coastguard Worker            ;;
36*c9945492SAndroid Build Coastguard Worker        -l*)
37*c9945492SAndroid Build Coastguard Worker            test "$userlink" && set -- "$@" "$x"
38*c9945492SAndroid Build Coastguard Worker            ;;
39*c9945492SAndroid Build Coastguard Worker        -shared)
40*c9945492SAndroid Build Coastguard Worker            shared=1
41*c9945492SAndroid Build Coastguard Worker            set -- "$@" -shared
42*c9945492SAndroid Build Coastguard Worker            ;;
43*c9945492SAndroid Build Coastguard Worker        -sysroot=*|--sysroot=*)
44*c9945492SAndroid Build Coastguard Worker            ;;
45*c9945492SAndroid Build Coastguard Worker        *)
46*c9945492SAndroid Build Coastguard Worker            set -- "$@" "$x"
47*c9945492SAndroid Build Coastguard Worker            ;;
48*c9945492SAndroid Build Coastguard Worker    esac
49*c9945492SAndroid Build Coastguard Workerdone
50*c9945492SAndroid Build Coastguard Worker
51*c9945492SAndroid Build Coastguard Workerexec $($cc -print-prog-name=ld) -nostdlib "$@" -lc -dynamic-linker "$ldso"
52