Unsupported options in FOSS

Hi all,
as a result of Rafael's r192808, clang is now rejecting unknown options.
A follow up added dummy versions for -fexpensive-optimizations and
-minline-all-stringops to work around fallout. I've used the original
version without r192521 in pkgsrc to see how much fallout we have and
whether we want to workaround some issues.

Not included are various places that expect -R to passed down to the
linker.

From the perspective of minimizing fallout, -fstrength-reduce is the

single biggest item after -R, but I am still not sure whether we still
want to bother.

Joerg

-fhandle-exceptions: Used by the Firefox 3.6 code and Nvu, has been
replaced by -fexceptions in the GCC 2.8 time frame, but the detection of
the replacement warning doesn't work.

-mimpure-text: Cinepaint leaks this from the Solaris version, should be
prefixed with -Wl.

-fno-strength-reduce:
    Various programs enable or disable this option. Enabling is
    pointless as it is default with -O anyway and disabling seems to
    have been done for various broken GCC versions.

    LMMS, splay, tap-plugins, gplcver, spice, libslang, (x)jed,
    gnuboy, angband, quake3, tetrinetx, gri, libcaca, dpbox, Chinput,
    fcitx, gcin

-fno-schedule-insns:
-fno-schedule-insns2:
    threadbuildingblocks and liblzo use this supposedly to workaround
    GCC bugs.

-fno-implicit-templates:
    A bunch of programs written in the early days of C++ use this.
    From the GCC documentation, it should be irrelevant.

    lq-sp, MySQL 5.1, Festival, ESTIC.

-fforce-addr:
    Enabled or disabled for compiler "tuning".

    hyperestraier, bytebench, gnuboy, libtheora

-fexpensive-optimizations:
    libwildmidi, doxymacs, bzflag, quake2forge, quakeforge, tuxracer,
    cdrtools, fox

-finline-limit=...
    libwildmidi, LMMS, nestopia

-frename-registers:
    libwildmidi, gimp-resynthesizer, genius

-fcheck-new:
    audacity
-fno-check-new:
    akonadi, poppler

-finline-functions-called-once:
    LMMS, nestopia

-fno-gcse
-fno-crossjumping:
    yap (workaround for CGC 3.4)

-fforce-mem
-fthread-jumps
-fcse-follow-jumps
-fcse-skip-blocks
-frerun-cse-after-loop
    gnuboy wants -OMG

-falign-loops=...
-falign-jumps=...
-falign-functions=...
    quake3

-fno-regmove:
    silc-client, silc-toolkit

-fno-reorder-blocks:
    jamvm

-fno-inline:
    gforth

-fcaller-saves:
    gforth

-fno-keep-inline-functions:
    pforth

-fpeephole: pforth

-fno-defer-pop:
    caml-light, coq, gforth, moscow, ocaml, ruby

Not listed is Xen, which has a bunch of -falign-* variations etc.

Hi all,
as a result of Rafael's r192808, clang is now rejecting unknown options.
A follow up added dummy versions for -fexpensive-optimizations and
-minline-all-stringops to work around fallout. I've used the original
version without r192521 in pkgsrc to see how much fallout we have and
whether we want to workaround some issues.

Thanks!

Not included are various places that expect -R to passed down to the
linker.

That is odd. With gcc I get

$ gcc -R test.o -o test.so -shared
gcc: error: unrecognized command line option ‘-R’

From the perspective of minimizing fallout, -fstrength-reduce is the
single biggest item after -R, but I am still not sure whether we still
want to bother.

I will send a patch with at least -fstrength-reduce. Looks like gcc
just ignores it these days.

Cheers,
Rafael