Adds sscanf()
[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         PROVIDE(__devtabstart = .);
10         PROVIDE(devtab = .);
11         .devtab : {
12                 *(.devtab)
13         }
14         PROVIDE(__devtabend = .);
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         PROVIDE(__linkerfunc1start = .);
22         .linkerfunc1 : {
23                 *(.linkerfunc1)
24         }
25         PROVIDE(__linkerfunc1end = .);
26
27         . = ALIGN(64);
28         PROVIDE(__linkerfunc2start = .);
29         .linkerfunc2 : {
30                 *(.linkerfunc2)
31         }
32         PROVIDE(__linkerfunc2end = .);
33
34         . = ALIGN(64);
35         PROVIDE(__linkerfunc3start = .);
36         .linkerfunc3 : {
37                 *(.linkerfunc3)
38         }
39         PROVIDE(__linkerfunc3end = .);
40
41         . = ALIGN(64);
42         PROVIDE(__linkerfunc4start = .);
43         .linkerfunc4 : {
44                 *(.linkerfunc4)
45         }
46         PROVIDE(__linkerfunc4end = .);