/* this is INCLUDEd into the arch-specific ld scripts */ | |
/* Linker-made tables. Our tables (e.g. devtab) are 2^6 aligned, | |
* independently of us aligning '.'. We align '.' to get the right | |
* start, e.g. __devtabstart. */ | |
. = ALIGN(64); | |
/* We shouldn't have to use PROVIDE, but if we don't, we get the wrong | |
* value for '.'. And items with empty tables get the KLA (basically | |
* 0) */ | |
.devtab : { | |
PROVIDE(__devtabstart = .); | |
PROVIDE(devtab = .); | |
*(.devtab) | |
PROVIDE(__devtabend = .); | |
} | |
/* Not sure if these need to be aligned to 64 bytes or not. We had to | |
* change the alignment above for the devtab, so we just changed it here | |
* too, but it's unclear if this is 100% necessary. In any event, it | |
* doesn't hurt anything, it just wastes some bytes in our binary. */ | |
. = ALIGN(64); | |
.linkerfunc1 : { | |
PROVIDE(__linkerfunc1start = .); | |
*(.linkerfunc1) | |
PROVIDE(__linkerfunc1end = .); | |
} | |
. = ALIGN(64); | |
.linkerfunc2 : { | |
PROVIDE(__linkerfunc2start = .); | |
*(.linkerfunc2) | |
PROVIDE(__linkerfunc2end = .); | |
} | |
. = ALIGN(64); | |
.linkerfunc3 : { | |
PROVIDE(__linkerfunc3start = .); | |
*(.linkerfunc3) | |
PROVIDE(__linkerfunc3end = .); | |
} | |
. = ALIGN(64); | |
.linkerfunc4 : { | |
PROVIDE(__linkerfunc4start = .); | |
*(.linkerfunc4) | |
PROVIDE(__linkerfunc4end = .); | |
} |