Displaying 4 results from an estimated 4 matches for "stuff_end".
2012 Dec 07
0
[LLVMdev] Need to create symbols only once
...any other opinions too ?
We have a similar requirement in darwin's ld64 linker, but even more general. Any binary can do the following to introspect itself:
struct stuff { int a; int b; };
extern struct stuff* stuff_start __asm("section$start$__DATA$__my");
extern struct stuff* stuff_end __asm("section$end$__DATA$__my");
void examineSection() {
const struct stuff* p;
for (p = stuff_start; p < stuff_end; ++p) {
// do stuff with p
}
}
That is, there are magic symbol names which reference the beginning or ending of any particular section. To support this, the l...
2012 Dec 07
3
[LLVMdev] Need to create symbols only once
Hi Nick,
We have few symbols like __bss_start, __bss_end, which are Undefined
symbols in the code.
I want a way in the Reader to create specific atoms before the linker
bootstraps.
I didnt find a way to do that with the existing interfaces.
The way it needs to work is as below :-
1) ReaderELF creates Absolute symbols (for __bss_start, __bss_end etc)
2) ReaderELF reads each file and adds
2013 Jan 07
1
[LLVMdev] Need to create symbols only once
...t; We have a similar requirement in darwin's ld64 linker, but even more general. Any binary can do the following to introspect itself:
>
> struct stuff { int a; int b; };
>
> extern struct stuff* stuff_start __asm("section$start$__DATA$__my");
> extern struct stuff* stuff_end __asm("section$end$__DATA$__my");
>
> void examineSection() {
> const struct stuff* p;
> for (p = stuff_start; p < stuff_end; ++p) {
> // do stuff with p
> }
> }
>
> That is, there are magic symbol names which reference the beginning or ending of any p...
2012 Dec 10
1
[LLVMdev] Need to create symbols only once
...t; We have a similar requirement in darwin's ld64 linker, but even more general. Any binary can do the following to introspect itself:
>
> struct stuff { int a; int b; };
>
> extern struct stuff* stuff_start __asm("section$start$__DATA$__my");
> extern struct stuff* stuff_end __asm("section$end$__DATA$__my");
>
> void examineSection() {
> const struct stuff* p;
> for (p = stuff_start; p < stuff_end; ++p) {
> // do stuff with p
> }
> }
>
> That is, there are magic symbol names which reference the beginning or ending of any p...