Add STT_GNU_IFUNC support
Add ARM specific STT_GNU_IFUNC support to Binutils. Ignore GOLD for now.
Blueprint information
- Status:
- Complete
- Approver:
- Loïc Minier
- Priority:
- High
- Drafter:
- Andrew Stubbs
- Direction:
- Needs approval
- Assignee:
- Richard Sandiford
- Definition:
- Approved
- Series goal:
- Accepted for 11.05
- Implementation:
- Implemented
- Milestone target:
- 11.05-final
- Started by
- Michael Hope
- Completed by
- Michael Hope
Whiteboard
michaelh1 shifted off the demonstration side to cortex-strings for next cycle.
From the summit:
- a bit harder than GCC hardware-
- used on i386 for string functions in addition to hardware caps.
- instead of linking to particular function
- can have problems with JIT compilers
- can run without libc?
- can be used to create an OS that works on any device (and is then stripped of unused codepaths post install)
Effort: 2-4M
Status:
- ARM have officially allocated relocation number 160 for R_ARM_IRELATIVE.
- binutils support submitted upstream & committed.
- GLIBC support written. Submission underway..
Work Items
Work items:
Investigate extent of the work: DONE
Prototype: DONE
Implement using a private relocation: DONE
Get ABI extensions from ARM: DONE
Document ABI extensions: DONE
Finish implementation using public relocation (binutils): DONE
Finish implementation using public relocation (glibc): DONE
Add test cases: DONE
Dependency tree
* Blueprints in grey have been implemented.