On Saturday, December 3, 2016 4:36:37 AM CET Ben Hutchings wrote: > On Fri, 2016-12-02 at 13:40 +0100, Arnd Bergmann wrote: > > With binutils-2.16 and before, a weak missing symbol was kept during the > > final link, and a missing CRC for an export would lead to that CRC > > being treated as zero implicitly. With binutils-2.17, the crc > > symbol gets dropped, and any module trying to use it will fail to > > load. > > > > This sets the weak CRC symbol to zero explicitly, making it defined > > in vmlinux, which in turn lets us load the modules referring to > > that CRC. > > > > The comment above the __CRC_SYMBOL macro suggests that this was > > always the intention, although it also seems that all symbols > > defined in C have a correct CRC these days, and only the exports > > that are now done in assembly need this. > > > > > Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx> > > --- > > Not sure if this is the correct way of doing it, but this seems trivial > > enough and lets me build the kernel with missing CRCs with any binutils > > version. > > I tried this along with Adam's patch on x86_64, with Debian's binutils > 2.27.51.20161127. The result was that the kernel's __kcrctab held 0 > for several symbols, even though there was type information in asm- > prototypes.h and Module.symvers and the modules had a non-zero CRC for > those symbols. With just Adam's patch, the kernel and modules agreed. Can you be more specific? Which symbols are those? I would have expected modpost to generate Module.symvers from the vmlinux file, so I wonder where that difference comes from. Arnd -- To unsubscribe from this list: send the line "unsubscribe linux-arch" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html