diff options
| -rw-r--r-- | tools/gen-musl-gcc.sh | 9 | 
1 files changed, 7 insertions, 2 deletions
| diff --git a/tools/gen-musl-gcc.sh b/tools/gen-musl-gcc.sh index 1ef0550f..edc40846 100644 --- a/tools/gen-musl-gcc.sh +++ b/tools/gen-musl-gcc.sh @@ -29,6 +29,7 @@ for i ; do  case "$skip$i" in  -I|-L) skip=--- ; continue ;;  -[cSE]|-M*) nolink=1 ;; +-shared) nocrt=1 ;;  -*) ;;  *) havefile=1 ;;  esac @@ -37,13 +38,17 @@ done  [ "$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 "$libc_start" "$libc_crt" "$@" "$libc_end" \ -  -Wl,--start-group -lc -lgcc -lgcc_eh -Wl,--end-group \ +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  } | 
