Re: [-next] FATAL: drivers/gpu/drm/udl/udl: sizeof(struct usb_device_id)=24 is not a modulo of the size of section __mod_usb_device_table=44.
From: Bjørn Mork <bjorn@mork.no>
Date: 2012-06-17 14:01:08
Also in:
linux-kbuild, linux-m68k, lkml
Andreas Schwab [off-list ref] writes:
Bjørn Mork [off-list ref] writes:quoted
AFAIK (which admittedly is not much wrt cross building) there is no way we can make the host built file2alias know the proper aligment for the structure in the target built modules. That's the background for this fix: commit 4ce6efed48d736e3384c39ff87bda723e1f8e041 Author: Sam Ravnborg [off-list ref] Date: Sun Mar 23 21:38:54 2008 +0100 kbuild: soften modpost checks when doing cross buildsThis is not a fix in any sense of the word. modpost can only work properly if its view of the device_id structures matches *exactly* that of the target.
You are absolutely correct, of course. I am starting to believe Greg is correct. Cross building works mostly by pure luck :-) I found that the reason the change I referred to above didn't kick in was because CONFIG_DEBUG_SECTION_MISMATCH was set, causing modpost to be called from scripts/Makefile.build without the "-c" option: # Do section mismatch analysis for each module/built-in.o ifdef CONFIG_DEBUG_SECTION_MISMATCH cmd_secanalysis = ; scripts/mod/modpost $@ endif But as you point out: The whole "soften modpost check" concept is bogus. It just cannot work. And I just verified it doing a m68k allmodconfig build without CONFIG_DEBUG_SECTION_MISMATCH. modpost will bail out unless host and target aligment matches: scripts/mod/modpost -m -a -o /usr/local/src/build-tmp/linux/Module.symvers -S -c -s drivers/media/video/gspca/gspca_sunplus: struct usb_device_id is 24 bytes. The last of 55 is: 0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 FATAL: drivers/media/video/gspca/gspca_sunplus: struct usb_device_id is not terminated with a NULL entry! make[1]: *** [__modpost] Error 1 make: *** [modules] Error 2 So the prosed fix from Greg is certainly the correct one, until someone rewrites modpost to be completely cross build safe. Bjørn -- To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html