Mode detection:

-E	preprocess-only
-S	assembly-only
-c	compile-only

--> Consider to drop the various linker options

Cleanup:

- Remove redundant -D options. Should keep -U in mind.

Library path resorting:

- Reorder -l to be after all -L options, duplicate -Wl,-dynamic / -Wl,-static
  options in the library list. Should this also take -Wl,-rpath-link into
  account?

Scan:

- Append extra_args only if -v is not used

Scan for ld:

- Strip -Wl,
- Silently drop -pthread

Platform specific processing:

- All platforms but Darwin have _USE_RPATH=yes.  Shouldn't Darwin just
  filter out the rpath rules in a platform specific transformation phase?

Transform:

- opt:foo:bar: Replace all options matching foo with bar. foo might be
  fnmatch expression. Earlier than other transformations. If bar is empty,
  option is dropped.

Libtool:

- Drop -L, -l, -Wl,* if not in link mode
  -> see first point

rpath aggregation:

- OSF1 and HP-UX ld(1) do not support multiple -rpath or +b. Any such instances
  need to be transformed to a colon-separated list. Example:

  -Wl,-rpath -Wl,/dir1 -Wl,-rpath -Wl,/dir2 --> -Wl,+b -Wl,/dir1:/dir2

  See cmd-sink-{hpux,osf1}-{ld,cc} in classic wrappers for more information.
