|
From: | David Chisnall |
Subject: | Re: plmerge core dumps... |
Date: | Thu, 13 Feb 2020 14:15:57 +0000 |
User-agent: | Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:68.0) Gecko/20100101 Thunderbird/68.4.2 |
On 13/02/2020 10:35, Richard Frith-Macdonald wrote:
Is it a bug in the linker?
It is, but it is a bug that shows up *only* with ld -r. LLD did not support ld -r for a long time and that made no difference to over 90% of the things in the FreeBSD ports collection. It is a very rarely used corner case for the linker and so likely to be very poorly tested (it also has quite poorly defined semantics, which is part of the problem).
GNUstep Make uses this for 'subprojects'. We hit this early because -base Additions is a subproject. These are compiled as .o files and then linked to form a single .o file using ld -r. Most modern build systems would typically just pass the list of .o files to the parent project to link, but GNUstep Make tries to create a single subproject.o.
It is good that -base tests this corner case of -make, because it would otherwise hit external users, but I am not convinced by the value of this option in GNUstep Make overall (though, as I have said before, I am also not convinced of the value of investing time and engineering resources in maintaining a custom build system that does not compose well with any other project's build system).
David
[Prev in Thread] | Current Thread | [Next in Thread] |