Don't cache pcpui in sys_fork()
[akaros.git] / kern / linker_tables.ld
1 /* this is INCLUDEd into the arch-specific ld scripts */
2
3         /* Linker-made tables.  Our tables (e.g. devtab) are 2^6 aligned,
4          * independently of us aligning '.'.  We align '.' to get the right start,
5          * e.g.  __devtabstart. */
6         . = ALIGN(64);
7         /* We shouldn't have to use PROVIDE, but if we don't, we get the wrong
8          * value for '.'.  And items with empty tables get the KLA (basically 0) */
9         .devtab : {
10                 PROVIDE(__devtabstart = .);
11                 PROVIDE(devtab = .);
12                 *(.devtab)
13                 PROVIDE(__devtabend = .);
14         }
15
16         /* Not sure if these need to be aligned to 64 bytes or not.  We had to
17          * change the alignment above for the devtab, so we just changed it here
18          * too, but it's unclear if this is 100% necessary.  In any event, it
19          * doesn't hurt anything, it just wastes some bytes in our binary. */
20         . = ALIGN(64);
21         .linkerfunc1 : {
22                 PROVIDE(__linkerfunc1start = .);
23                 *(.linkerfunc1)
24                 PROVIDE(__linkerfunc1end = .);
25         }
26
27         . = ALIGN(64);
28         .linkerfunc2 : {
29                 PROVIDE(__linkerfunc2start = .);
30                 *(.linkerfunc2)
31                 PROVIDE(__linkerfunc2end = .);
32         }
33
34         . = ALIGN(64);
35         .linkerfunc3 : {
36                 PROVIDE(__linkerfunc3start = .);
37                 *(.linkerfunc3)
38                 PROVIDE(__linkerfunc3end = .);
39         }
40
41         . = ALIGN(64);
42         .linkerfunc4 : {
43                 PROVIDE(__linkerfunc4start = .);
44                 *(.linkerfunc4)
45                 PROVIDE(__linkerfunc4end = .);
46         }