- esac
- ;;
- linux|irix*) dflt='-shared' ;;
- next) dflt='none' ;;
- solaris) dflt='-G' ;;
- sunos) dflt='-assert nodefinitions' ;;
- svr4*|esix*|nonstopux) dflt="-G $ldflags" ;;
- *) dflt='none' ;;
- esac
- ;;
- *) dflt="$lddlflags" ;;
- esac
+ esac
+ ;;
+ *linux*|irix*|gnu*) dflt="-shared $optimize" ;;
+ solaris) # See [perl #66604].
+ # On Solaris 11, gcc -m64 on amd64
+ # appears not to understand -G. gcc versions at
+ # least as old as 3.4.3 support -shared, so just
+ # use that with Solaris 11 and later, but keep
+ # the old behavior for older Solaris versions.
+ case "$gccversion" in
+ '') dflt='-G' ;;
+ *) case "$osvers" in
+ 2.?|2.10) dflt='-G' ;;
+ *) dflt='-shared' ;;
+ esac
+ ;;
+ esac
+ ;;
+ sunos) dflt='-assert nodefinitions' ;;
+ svr4*|esix*|nonstopux) dflt="-G $ldflags" ;;
+ *) dflt='none' ;;
+ esac
+ ;;
+ *) dflt="$lddlflags" ;;
+ esac
+
+ : Only do this for gcc, since, for example, qcc has no concept
+ : of --sysroot.
+ if $test "X$sysroot" != X; then
+ case "$gccversion" in
+ '') ;;
+ *) dflt="$dflt --sysroot $sysroot" ;;
+ esac
+ fi