Messages in this thread | | | Date | Tue, 15 Oct 2002 14:19:48 -0400 | From | Jakub Jelinek <> | Subject | Re: s390x build warnings from <linux/module.h> |
| |
On Tue, Oct 15, 2002 at 06:50:12PM +0200, Martin Schwidefsky wrote: > > >> during 'make modules' on s390x, I see lots of warnings about 'ignoring > >> changed section attributes for __ksymtab' that I have found to be the > >> result of changeset 1.373.196.1, where Kai changed the defaults for > module > >> exports to 'no symbols exported'. > >> > >> The problem is that there is a section '__ksymtab,"a"', while s390x > >> requires it to be '__ksymtab,"aw"' because modules must be compiled with > >> '-fpic' here, unlike afaics all the other architectures. > > > >Hmmh, there's a couple of things I don't understand, though they're most > >likely there for a reason. First of all, why do you need -fpic at all? > >kernel modules are not shared, they should get properly relocated when > >insmod'ing them, so I don't see why you're doing that. > > The reason for -fpic for module code lies in the compiler. To improve the > code we use the brasl and larl instructions for function calling and > addressing data. Unluckily these two instructions have a limited range > of +-4GB. For user space programs that means that a single shared object > may not be bigger than 4GB and that no non-fpic code is linked into > shared objects. With these two restrictions we are able to generate > much better code. There is one small problem though: kernel modules. > They get loaded into the vmalloc area which is located AFTER the main > memory. A machine with more than 4 GB of main memory therefore can't > load modules anymore because the calls and references to kernel structure > can't span the distance between vmalloc area and kernel image. To get > around this problem we compile kernel modules with -fpic and make the > modutils create plt stubs and got entries. Easy ?
Is there any reason why you cannot implement module_map and module_unmap on s390x like sparc64 or x86-64 does? I don't think we'll have size of kernel + size of all modules approaching 2 or 4GB size any time soon on any architecture.
Jakub - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |