Progress:
TCWG-829 Ifunc support - Refactored implementation using synthetic sections upstreamed. Found out that x86 ifunc was broken and probably hadn't ever worked so I fixed that while I was there.
PR31332 x86 pic plt sequences broken - Found out that x86 pic and pie is broken in lld, the implementation assumes that .got is immediately followed by .got.plt with no gap. As lld makes no such guarantees it is easy to break with a trivial example. Raised PR31332 after investigating the root cause. Spent quite a bit of time on this, even though it is x86 specific, I wanted to make sure I hadn't broken it.
Fosdem-2017 - Submitted a llvm-devroom talk on lld to Fosdem (post deadline, but probably still up for consideration)
Plans for this week:
TCWG-985 PIE on ARM broken - I have a simple fix that should be simple to upstream
TCWG-919 Thunks to undefined symbols - I have a downstream patch, but there is risk I'll be asked to refactor
TCWG-911 Eglibc requires a .ARM.attributes section for dlopen - There is a trivial hack to make this work; just use the first ARM attributes section and throw away the rest. A proper solution to support ARM attributes merging will take some time.
PR31332 x86 pic plt sequences broken - I think I can fix this fairly cheaply which while not directly relevant to ARM, it does give me another easily accessible target to test on my desk top and has some community benefits.
Ifuncs - LLD doesn't support taking the address of ifuncs for any architecture. I don't think that this is common practice, but it is a latent problem that it might be good to fix now when ifunc is in my head.
Planned holidays: 19th December till end of the year, back on Tuesday 3rd January