1

I'm trying to make a downloaded driver, xf86-video-armsoc, on Arch Linux. However, the configuration of make prevents me from compiling the driver because it treats all compiler warnings as errors. Is there any way I can disable this?

I've read through the errors thrown, and they all look like warnings. They're things like storage of 's' isn't known, implicit declaration of function, nested extern declaration and unused variable, which all sound like they can be ignored.

2
  • Usually warning as error is turned on with -Werror. grep for it and remove everywhere you will find this.
    – user140866
    Commented May 3, 2016 at 16:26
  • Thanks, is there anywhere specific I should be trying to find it? Will this be in the src folder?
    – Mapsy
    Commented May 3, 2016 at 16:29

1 Answer 1

3

Warnings as errors are usually result of -Werror passed somewhere to the compiler. It can be intentional enforcement from developer to see how much mistakes are still there and being left only because it's still in development, or intentional enforcement in mission critical software.

Anyway, you need to find out where -Werror is. grep is a nice tool for that: just recursively grep for whole word (leading dash does not matter): grep -lr Werror ., while residing in drivers source code directory.

Then you can remove the switch from each file with simple sed -i 's@-Werror@@g' file.

Looking in https://github.com/endlessm/xf86-video-armsoc/blob/master/src/Makefile.am I see an explicit -Werror set in ERROR_CFLAGS, so developer decided to catch some non fatal warnings too.

Unfortunately -Werror is useless and annoying when building release software, because compilers widely vary. Simple things like implicit function declarations and incompatible pointers / storage size mismatches do require attention, but it's a developer task to make their code match to common and accepted standards.

1
  • Perfect answer, really goddamn helpful. Thank you siblynx!
    – Mapsy
    Commented May 3, 2016 at 17:09

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .