| Age | Commit message (Collapse) | Author |
|
Now that sparc64 is using gcc-3.x we can disallow gcc-2.91, etc.
Documentation/Changes already says 2.95.3, which is working fine for me.
With this change, we no longer require that per-cpu data definitions be
initialised. That was a workaround for a bug in older gccs. So remove the
build infrastructure which was checking for that.
Also, mention that nfs-utils-1.0.3 is required. It isn't required yet, but
will be once we enable larger dev_t: there is an interface for exportfs which
passes dev_t's into the kernel which breaks with larger dev_t. That
interface is old, deprecated and is not used in nfs-utils-1.0.3.
|
|
We warn when symbols end in __per_cpu, but aren't in the per-cpu section.
However, checksum symbols gave false positives.
|
|
This patch adds the new config option CONFIG_MODVERSIONING which will
be the new way of checking for ABI changes between kernel and module
code.
This and the following patches are in part based on an initial
implementation by Rusty Russell and I believe some of the ideas go back
to discussions on linux-kbuild, Keith Owens and Rusty.
though I'm not sure I think credit for the basic idea of
storing version info in sections goes to Keith Owens and Rusty.
o Rename __gpl_ksymtab to __ksymtab_gpl since that looks more consistent
and appending _gpl instead of putting it into the middle simplifies
sharing code for EXPORT_SYMBOL() and EXPORT_SYMBOL_GPL()
o Add CONFIG_MODVERSIONING
o If CONFIG_MODVERSIONING is set, add a section __kcrctab{,_gpl}, which
contains the ABI checksums for the exported symbols listed in
__ksymtab{,_crc} Since we don't know the checksums yet at compilation
time, just make them an unresolved symbol which gets filled in by the
linker later.
|
|
The current code reserves 60 bytes for the symbol string of every
exported symbol, unnecessarily wasting kernel memory since most symbols
are much shorter. We revert to the 2.4 solution where the actual strings
are saved out of line and only the pointers are kept.
The latest module-init-tools already handle this case, people who are
using older versions need to update to make sure depmod works
properly.
Saves 80 KB in vmlinux with my .config.
|
|
So poor old Dave spent days hunting down memory corruption because the
`kstat' per-cpu storage is not initialised (it needs to be, it's a workaround
for ancient gcc's).
The same problem had me hunting for a day too.
This patch, based on an initial version from Rusty will
parse System.map at final link and will fail the build if
any per-cpu symbols are found to be not in the percpu section.
|