sys/pcpu.h: remove a workaround for a fixed ld bug
The workaround was incorrectly documented as having something to do with set_pcpu section's progbits, but in fact it was for incorrect placement of __start_set_pcpu because of the bug in ld. The bug was fixed in r210245, see commit message for details. A side-effect of the workaround was that a zero-size set_pcpu section was produced for modules, source code of which included pcpu.h but didn't actually define any dynamic per-cpu variables. This commit should remove the side-effect. The same workaround is present sys/net/vnet.h, has an analogous side-effect and can be removed as well. An UPDATING entry that warns about a need for recent ld is following. MFC after: 1 month
This commit is contained in:
parent
522a3b5fbc
commit
d948155465
@ -44,24 +44,10 @@
|
||||
|
||||
/*
|
||||
* Define a set for pcpu data.
|
||||
*
|
||||
* We don't use SET_DECLARE because it defines the set as 'a' when we
|
||||
* want 'aw'. gcc considers uninitialized data in a separate section
|
||||
* writable, and there is no generic zero initializer that works for
|
||||
* structs and scalars.
|
||||
*/
|
||||
extern uintptr_t *__start_set_pcpu;
|
||||
extern uintptr_t *__stop_set_pcpu;
|
||||
|
||||
__asm__(
|
||||
#ifdef __arm__
|
||||
".section set_pcpu, \"aw\", %progbits\n"
|
||||
#else
|
||||
".section set_pcpu, \"aw\", @progbits\n"
|
||||
#endif
|
||||
"\t.p2align " __XSTRING(CACHE_LINE_SHIFT) "\n"
|
||||
"\t.previous");
|
||||
|
||||
/*
|
||||
* Array of dynamic pcpu base offsets. Indexed by id.
|
||||
*/
|
||||
|
Loading…
x
Reference in New Issue
Block a user