Narrow an overly general compiler flag regexp so that it matches only gcc warning flags and not the much larger class of all flags beginning with "-W".  I think most folks have no clue that these are supposed to be regular expressions, not simple string equality matches.  Many of the other flag patterns are not end-anchored with "$" and therefore are also too general.
Narrow an overly general compiler flag regexp so that it matches only
gcc warning flags and not the much larger class of all flags beginning
with "-W".  I think most folks have no clue that these are supposed to
be regular expressions, not simple string equality matches.  Many of
the other flag patterns are not end-anchored with "$" and therefore
are also too general.

Add support for "-Wl,..." gcc flag, which goes straight to the linker.

As a special case of the above, though, treat "-Wl,--whole-archive"
and "-Wl,--no-whole-archive" as linker object files.  That's the only
simple way to keep them from moving around relative to true object
files.  We have to keep these two from moving because they have a
state-changing effect that lasts only until the next one is found
later on the command line.  I.e., these two are *not* equivalent:

   ... -Wl,--whole-archive foo.a -Wl,--no-whole-archive ...
   ... -Wl,--whole-archive -Wl,--no-whole-archive foo.a ...

This feels like a hackish fix, but anything more "correct" would
require deeper changes to Cilly's compiler option management
infrastructure then I want to take on right now.

samuelhavron/obliv-c,samuelhavron/obliv-c,samuelhavron/obliv-c,samuelhavron/obliv-c