diff --git a/ghc/driver/ghc.lprl b/ghc/driver/ghc.lprl index a79525f4b07a4460611ddc13263c2d2a95ea86a7..42a91ebc6b5b07a3b87333530d692ca90b75289a 100644 --- a/ghc/driver/ghc.lprl +++ b/ghc/driver/ghc.lprl @@ -2789,6 +2789,9 @@ arg: while($_ = $Args[0]) { if ( $syslib eq 'posix') { $syslib='ghc'; goto again; + } elsif ( $syslib eq 'ghc' && $TargetName =~ /-solaris2$/ ) { + # needed for Berkeley socket/nwork stuff. + push(@SysLibrary, '-lnsl'); } next arg; }; @@ -2966,7 +2969,10 @@ arg: while($_ = $Args[0]) { /^-fshow-import-specs/ && do { push(@HsC_flags, $_); next arg; }; - /^-fwarn-(.*)$/ && do { push(@HsC_flags, $_); next arg; }; + /^-fsignatures-required/ + && do { push(@HsC_flags, $_); next arg; }; + + /^-fwarn-(.*)$/ && do { push(@HsC_flags, $_); next arg; }; /^-fno-(.*)$/ && do { push(@HsC_antiflags, "-f$1"); &squashHscFlag("-f$1"); @@ -2974,7 +2980,7 @@ arg: while($_ = $Args[0]) { /^-W$/ && do { push(@HsC_flags, @MinusWOpts); next arg; }; /^-Wall$/ && do { push(@HsC_flags, @MinusWallOpts); next arg; }; - /^-Wnot$/ && do { foreach (@Hsc_flags) { + /^(-Wnot|w)$/ && do { foreach (@Hsc_flags) { /^-fwarn-(.*)$/ && do { $_=''; }; }; push(@HsC_antiflags, @StandardWarnings);