Created attachment 201784 [details]
After https://svnweb.freebsd.org/ports?limit_changes=0&view=revision&revision=492056, gnustep-base doesn't build (tested on powerpc64):
The reason is that there are bugs in lld for powerpc64, clang itself is ok.
After changing to Binutils ld, it builds: https://talos.anongoth.pl/data/powerpc64-default/2019-02-05_05h49m32s/logs/gnustep-base-1.26.0_1.log
Hardware sponsored by IntegriCloud.
Created attachment 201787 [details]
updated patch to objc.mk
IIUC the suggested patch changes the behavior on tier-1. I propose a patch not to do so. In addition, don't we need to include a dependency on binutils in the tier-2 case?
(In reply to Mark Linimon from comment #1)
I tried linking using base ld and it seems to work, so no binutils from ports are needed.
Please can you test whether the -base test suite works (gmake check in the build directory)? On amd64, you can link with BFD ld, but the resulting library doesn't actually work, which is why we enforce lld. A few things don't work with lld, but do work with gold and so we use gold for those (they're marked LLD_UNSAFE). Setting LD=ld is almost certainly wrong, because if ld is ld.bfd then this produces nonfunctional binaries for most Objective-C code.
Does just setting LLD_UNSAFE unconditionally on powerpc64 for Objective-C things work? This will make them fall back to gold with the existing logic, and gold appears to work for Objective-C at least as well as lld (on amd64).
The log file is also a bit confusing. It appeas to be passing -fobjc-runtime=gnustep-1.8 to the builds. The latest changes set this to gnustep-2.0, which was an ABI-breaking change and is responsible for triggering the issues with BFD ld. Please make sure that this is what you see in the compile lines when testing.
Hm, ok. It doesn't work. I guess we can close it :(
I'd be quite happy just marking anything that uses objc as broken on platforms that clang doesn't support. GCC supports an archaic dialect of Objective-C and anyone that actually tries to use it will likely have a poor experience.
(In reply to David Chisnall from comment #6)
No problem, it doesn't work anyway.
There's WiP to migrate to Clang and elfv2 for FreeBSD 13 so I hope we'll soon be able to unbreak it.