Thanks Nick/Marvin for the suggestions and feedback. I implemented the
approach that Marvin outlined and it seems to fix the problem for me.

The patch is available here:
https://issues.apache.org/jira/secure/attachment/12531455/potential_fix2.patch

Let me know if this seems like a more reasonable hack.

Thanks,
Logan

On Thu, Jun 7, 2012 at 10:44 AM, Marvin Humphrey <[email protected]>wrote:

> On Thu, Jun 7, 2012 at 7:10 AM, Logan Bell <[email protected]> wrote:
> > It would seem that having a "CC_capture_warnings" would probably be a
> > useful general purpose function to have.
>
> That approach is plausible: compile twice capturing compiler warnings and
> fail if the warnings differ.
>
> It's not a route we typically want to take because we'd like to verify that
> compiler features actually *work* -- but we're backed into a corner here.
>
> > I would also volunteer to try to implement the technical details for this
> > function, unless there are any objections creating such a method?
>
> This would be a nice feature to have.  However, coding it up would actually
> take a fair amount of refactoring, as the assumption that we throw away
> compiler output is pretty deeply baked in.
>
> It might be quicker to try enabling warnings as errors.  This is done with
> -Werror on GCC and Clang, and with /WX on MSVC.
>
> Since this is likely to be a rarely used feature, I'd propose a
> CC_warnings_as_errors(int enabled) setter that controls a static variable
> within Compiler.c.  If that static variable is non-zero, then we tack on
> the
> extra flag when generating the compiler command within CC_compile_exe() and
> CC_compile_obj().
>
> Then in SymbolVisibility.c, we'd enable that setting for only as long as
> necessary.
>
> > Or, perhaps the reason it doesn't exist is because it's not trivial for
> all
> > of the various compilers we support?
>
> It's doable but not trivial, both because of the compiler and the shell.
>  MSVC
> writes its boilerplate to stderr, so I'm not sure the approach is
> generalizable to all compilers.  And redirection syntax is different under
> cmd.exe than under Unix shells.
>
> Marvin Humphrey
>

Reply via email to