On 4 December 2016 at 10:15, Iain Buclaw <ibuc...@gdcproject.org> wrote: > On 3 December 2016 at 22:29, Matthias Klose <d...@debian.org> wrote: >> On 03.12.2016 22:13, Markus Koschany wrote: >>> On 03.12.2016 22:00, Matthias Klose wrote: >>>> reassign 846669 gdc-6 >>>> forcemerge 845377 846669 >>>> thanks >>>> >>>> please see #845377. >>>> >>>> This build is configured with --enable-default-pie. The linker is now >>>> called >>>> with -pie, but cc1d isn't passed either -fPIE, or -fPIC. The work around >>>> is to >>>> pass either -fPIC, or -no-pie. Also passing -fPIE doesn't have an effect. >>> >>> Hi, >>> >>> sorry I'm not a D expert. Do you intend to fix #845377 before the Freeze or >>> are all >>> reverse-dependencies supposed to work around this issue by passing either >>> -fPIC or -no-pie to configure? >> >> Please give Iain some time to have a look at this. >> > > I'll be spending today on this. Hopefully not all. :-) > > Regards
It looks like the pre-emptive check for "is this symbol external?" is not right. The codegen pass thinks it should be static, but it is infact not, and so it emits the call without @PLT. This only affects D templates. Incidentally, I recently cleaned up the area where this is done, making it a small fix in upstream. Will have a look at debian's source package to prepare the relevant patch. Regards Iain