#!/bin/sh
libc_lib="/usr/local/musl/lib"
cleared=
shared=
crt=
userlinkdir=
userlink=
for i; do
# safe to clear arguments now that we're iterating over them,
# and rebuild them below
[ "${cleared}" ] || set -- ; cleared=1
case "$i" in
-L-user-start)
userlinkdir=1
[ "${shared}" ] || set -- "$@" "${libc_lib}/Scrt1.o" "${libc_lib}/crti.o"
;;
-L-user-end)
userlinkdir=
;;
-L*)
[ "${userlinkdir}" ] && set -- "$@" "$i"
;;
-l-user-start)
userlink=1
;;
-l-user-end)
userlink=
;;
-l*)
[ "${crt}" -o "${shared}" ] || set -- "$@" "${libc_lib}/crtn.o"; crt=1
[ "${userlink}" ] && set -- "$@" "$i"
;;
-shared)
shared=1
set -- "$@" -shared
;;
*)
set -- "$@" "$i"
;;
esac
done
exec ld "$@"