Am I pandering to the smoke testers?
I have a quick sanity check I'd like to throw out there.
I've been working all week on Alien::TinyCC, and I made some great progress. My initial distribution wasn't properly checking that the build steps completed successfully, so I wasn't getting any useful information back from the smoke testers. Once I fixed that, I started to get some useful feedback. Mostly.
I have a Macbook, and I've been testing my build on my Macbook, so I had a reasonable expectation that my build setup would work on Macs. However, every single report from a Mac smoke tester was coming back "UNKNOWN", which basically means it failed at the build stage. How could this be?
It turns out that all of the Mac smoke tests came from Nigel Horne's Mac boxes. If you look at those reports, you'll notice the two reasons for failure are quite odd: error: unrecognized command line option "-fassociative-math" and error: bad value (native) for -march= switch.
These are odd errors because neither of these command line switches are mine. They come from the test box's environment variables. To be sure, I modified the Mac build process to check for and scrub those switches from CFLAGS and/or CPPFLAGS when appropriate (i.e. when using llvm to emulate gcc, and only on Macs). Doing this gets me past the build stage, and all the way through successful tests. That leaves me with two two lines of questions.
First, are Nigel's boxes able to build XS modules without trouble? I'm not sure because there's no way I could find to locate Nigel's other reports for other modules. But if so, does this mean that our toolchain actually sets the comipler environment variables? Or, perhaps, our toolchain doesn't even ask the system directly for its CLFAGS and CPPFLAGS? I suppose ExtUtils::MakeMaker may not even reference CFLAGS or CPPFLAGS, and Module::Build may not ask those environment variables for help, either. Should I have my Alien package ignore those variables in its Makefile, too? Or perhaps I should override them with Perl's settings for those flags?
Second, am I working to hard on this? On the one hand, I would say that modifying my build setup specifically so that it builds on this one smoke tester's possibly erroneous boxes seems like I'm pandering to the smoke testers to build my "PASS"es. But I'm not, really. No other Mac boxes were reporting anything. Unless I made these modifications, I wasn't getting any smoke feedback on Macs. I didn't even know if they passed their test suite because I couldn't get past the compile stage. Still, is this too much? Should I just email Nigel and ask if he can change his environment variables? Or, should I replace CFLAGS and CPPFLAGS with Perl's configure-based flags?