^ —————. —.— . . —.— . . .————— . .
——— | | | | | | || | | | |
—(o)— | | | | | | | | | |———— '————|
——————— | | | | | | | || | |
————————— —————' —'— ' —'— ' ' '————— '
home manual roadmap issues status papers download
Allow programs to override libc symbols
int write() { return 42; }
int main() { return write(); }
This code can be normally compiled by gcc. But it does not load in DIVINE:
error: Linking globals named 'write': symbol multiply defined!
Change History (4)
Component: |
bench →
divcc
|
Owner: |
changed from mornfall to blurrymoi
|
Status: |
new →
assigned
|
Summary: |
Fix linking programs that define symbols with names of libc function →
Allow programs to override libc symbols
|
Component: |
divcc →
DiOS
|
Owner: |
changed from blurrymoi to mornfall
|
Status: |
assigned →
accepted
|
Resolution: |
→ fixed
|
Status: |
accepted →
closed
|
The way this is normally implemented is that things like 'write' (which are part of POSIX, but not part of ISO C) are weak aliases to internal symbols (like _libc_write).