C/C++ Compiler Invalidly Turning Warnings into Errors?

Stephen Morris samorris at netspace.net.au
Thu Jan 15 21:35:24 UTC 2015


On 01/15/2015 11:38 PM, Sam Varshavchik wrote:
> Stephen Morris writes:
>
>> I have a driver for a wifi usb device that I need to compile because 
>> there are no drivers in the kernel, which has been obtained from the 
>> vendor of the device. When I attempt to compile the code the compile 
>> fails on the grounds that some warnings are being translated into 
>> errors. From my perspective these errors should not be happening 
>> because, when a debugging module wants to time stamp the build, that 
>> is not an error and is perfectly acceptable. How do I get the 
>> compiler to stop producing these errors. The messages I get are 
>> listed below.
>
> The makefile that's used to build this module explicitly specifies a 
> compiler flag that makes this diagnostic an error. You can see it 
> referenced in the error message, -Werror=date-time
>
> So the answer to your question is very simple: it happens because 
> that's what it does. I'm sure there's a way to override this flag. 
> Look at the makefile, figure out where it specifies this flag, and 
> take it out, if that's what you want to do. It might be possible to 
> pass some flags on the command line to override it; can't really say 
> without looking at the makefile.
>
> If this driver is supposedly obtained from the vendor, and I'd think 
> it's highly unlikely that Fedora manually patches the upstream kernel 
> to add this flag, so the conclusion to draw from this is that the 
> vendor has never tested their module with a kernel that's more recent 
> than whatever is the first version of the kernel whose makefile was 
> set up that way. I'd say that this compiler error is the least of your 
> problems.
Thanks Sam, I've found the Makefile that does the compiling and it 
doesn't supply the parameter, -Werror specification is listed in there 
but is commented out, so if it is not specified in the kernel source 
then it is coming from one of the includes being used. I may have to 
compile the kernel manually myself as well anyway, as the makefile seems 
to be specifying dependencies on kernel config specifications that don't 
appear to be active in the pre-compiled kernels I am using.
>
>> Authentication requested [root] for make driver:
>> make ARCH=x86_64 CROSS_COMPILE= -C 
>> /lib/modules/3.17.8-300.fc21.x86_64/build 
>> M=/usr/local/downloads/dlink/RTL8812AU_linux_v4.3.2_11100.20140411/driver/rtl8812AU_linux_v4.3.2_11100.20140411 
>> modules
>> make[1]: Entering directory '/usr/src/kernels/3.17.8-300.fc21.x86_64'
>>   CC [M] 
>> /usr/local/downloads/dlink/RTL8812AU_linux_v4.3.2_11100.20140411/driver/rtl8812AU_linux_v4.3.2_11100.20140411/core/rtw_cmd.o
>>   CC [M] 
>> /usr/local/downloads/dlink/RTL8812AU_linux_v4.3.2_11100.20140411/driver/rtl8812AU_linux_v4.3.2_11100.20140411/core/rtw_security.o
>>   CC [M] 
>> /usr/local/downloads/dlink/RTL8812AU_linux_v4.3.2_11100.20140411/driver/rtl8812AU_linux_v4.3.2_11100.20140411/core/rtw_debug.o
>> /usr/local/downloads/dlink/RTL8812AU_linux_v4.3.2_11100.20140411/driver/rtl8812AU_linux_v4.3.2_11100.20140411/core/rtw_debug.c: 
>> In function ‘dump_drv_version’:
>> /usr/local/downloads/dlink/RTL8812AU_linux_v4.3.2_11100.20140411/driver/rtl8812AU_linux_v4.3.2_11100.20140411/core/rtw_debug.c:66:64: 
>> error: macro "__DATE__" might prevent reproducible builds 
>> [-Werror=date-time]
>>   DBG_871X_SEL_NL(sel, "build time: %s %s\n", __DATE__, __TIME__);
>> ^
>> /usr/local/downloads/dlink/RTL8812AU_linux_v4.3.2_11100.20140411/driver/rtl8812AU_linux_v4.3.2_11100.20140411/core/rtw_debug.c:66:1: 
>> error: macro "__TIME__" might prevent reproducible builds 
>> [-Werror=date-time]
>>   DBG_871X_SEL_NL(sel, "build time: %s %s\n", __DATE__, __TIME__);
>>  ^
>> /usr/local/downloads/dlink/RTL8812AU_linux_v4.3.2_11100.20140411/driver/rtl8812AU_linux_v4.3.2_11100.20140411/core/rtw_debug.c:66:1: 
>> error: macro "__DATE__" might prevent reproducible builds 
>> [-Werror=date-time]
>> /usr/local/downloads/dlink/RTL8812AU_linux_v4.3.2_11100.20140411/driver/rtl8812AU_linux_v4.3.2_11100.20140411/core/rtw_debug.c:66:1: 
>> error: macro "__TIME__" might prevent reproducible builds 
>> [-Werror=date-time]
>> /usr/local/downloads/dlink/RTL8812AU_linux_v4.3.2_11100.20140411/driver/rtl8812AU_linux_v4.3.2_11100.20140411/core/rtw_debug.c:66:1: 
>> error: macro "__DATE__" might prevent reproducible builds 
>> [-Werror=date-time]
>> /usr/local/downloads/dlink/RTL8812AU_linux_v4.3.2_11100.20140411/driver/rtl8812AU_linux_v4.3.2_11100.20140411/core/rtw_debug.c:66:1: 
>> error: macro "__TIME__" might prevent reproducible builds 
>> [-Werror=date-time]
>> cc1: some warnings being treated as errors
>> scripts/Makefile.build:257: recipe for target 
>> '/usr/local/downloads/dlink/RTL8812AU_linux_v4.3.2_11100.20140411/driver/rtl8812AU_linux_v4.3.2_11100.20140411/core/rtw_debug.o' 
>> failed
>> make[2]: *** 
>> [/usr/local/downloads/dlink/RTL8812AU_linux_v4.3.2_11100.20140411/driver/rtl8812AU_linux_v4.3.2_11100.20140411/core/rtw_debug.o] 
>> Error 1
>> Makefile:1377: recipe for target 
>> '_module_/usr/local/downloads/dlink/RTL8812AU_linux_v4.3.2_11100.20140411/driver/rtl8812AU_linux_v4.3.2_11100.20140411' 
>> failed
>> make[1]: *** 
>> [_module_/usr/local/downloads/dlink/RTL8812AU_linux_v4.3.2_11100.20140411/driver/rtl8812AU_linux_v4.3.2_11100.20140411] 
>> Error 2
>> make[1]: Leaving directory '/usr/src/kernels/3.17.8-300.fc21.x86_64'
>> Makefile:1350: recipe for target 'modules' failed
>> make: *** [modules] Error 2
>> ##################################################
>> Compile make driver error: 2
>> Please check error Mesg
>> ##################################################
>>
>
>

-------------- next part --------------
A non-text attachment was scrubbed...
Name: samorris.vcf
Type: text/x-vcard
Size: 130 bytes
Desc: not available
URL: <http://lists.fedoraproject.org/pipermail/users/attachments/20150116/e4e798c0/attachment.vcf>


More information about the users mailing list