-exec "$0" "$@"
-' -std=gnu99 -nostdinc -nostdlib \
- -isystem "$libc_inc" -isystem "$gcc_inc" \
- -Wl,-xxxxxx "$@" -L"$libc_lib" -lc -L"$libgcc" -lgcc -Lxxxxxx \
- -Wl,-dynamic-linker /lib/ld-musl-"$arch".so.1 -Wl,-nostdlib
+
+[ "$havefile" ] || nolink=1
+
+[ "$nolink" ] && nocrt=1
+
+[ "$nocrt" ] || set -- "$libc_start" "$libc_crt" "$@" "$libc_end" \
+
+[ "$nolink" ] || {
+tmp_specs=$HOME/.specs.tmp.$$
+printf '*link_libgcc:\n\n\n' > "$tmp_specs" || exit 1
+exec 3<"$tmp_specs"
+rm -f "$tmp_specs"
+set -- -specs=/proc/self/fd/3 "$@" \
+ -Wl,--as-needed -Wl,--start-group -lc -lgcc -lgcc_eh -Wl,--end-group \
+ -Wl,-dynamic-linker,"$ldso_pathname" -Wl,-nostdlib
+}
+
+set -- -nostdinc -nostdlib $nosp \
+ -isystem "$libc_inc" -isystem "$gcc_inc" "$@" \
+ -L"$libc_lib" -L"$libgcc"
+
+exec "$gcc" "$@"