On Tuesday 05 October 2010, Ralf Wildenhues wrote: > Hello Stefano, > > * Stefano Lattarini wrote on Mon, Oct 04, 2010 at 06:06:30PM CEST: > > Currently, automake *force* the disabling of `-Wportability' when > > in "foreign" mode. What is the rationale for this? > > Please search the archives. > > The git log takes me to Release-1-9-236-g0ea21f8, which takes me to > http://lists.gnu.org/archive/html/automake-patches/2006-03/msg00001 > .html > > The point is that users complained a lot about seeing warnings to > add AM_PROG_CC_C_O when they never cared about that odd 15-year > old compiler, or about MSVC support. I don't understand the problem. Couldn't they just add `-Wno-portability' to AM_AUTOMAKE_INIT? > Let's not go back there. I still think it would be better for the user to see *once* a warning he doesn't want to see (he can enable `-Wno-portability' right away to get rid of the warning if he wants to, and then forget about it), rather than having a user *not* seeing a warning he might be interested into (and having no way to know he missed it). At least, this is what I'd want, were I the user in question.
Your call though. > I agree that it is wrong to let '-Wportability foreign' not produce > portability warnings (esp. since the option parsing order between > command-line, options in configure.ac, and options in Makefile.am > makes overriding hard), but I think the right fix for that would be > to remember whether we defaulted the '-Wportability' setting or > whether it came from an explicit setting. What about this proposal (I still have no code): 1. Add proper test(s) ensuring that AUTOMAKE_OPTIONS in Makefile.am win over AM_INIT_AUTOMAKE options in configure.in, which in turn win over cmdline options. 2. Clearly document the above behaviour in the manual. 3. Add (xfailing) tests ensuring that explicit `-W...' options always win over implicit warnings triggered by foreign, cygnus, gnu or gnits modes. (QUESTION: should this be true regardless of the place the `-W...' options are specified? E.g., should a `-Wportability' specified on command line enable portability warnings even if `foreign' is specified in AM_INIT_AUTOMAKE? 4. Add some more micellanous tests on options setting/overriding. 5. Implement the behaviour sketched in [3] above. This might be tricky, possibly requiring some non-obvious refactoring (in which case more tests will be needed). WDYT? Regards, Stefano