Created attachment 195543 [details]
It builds fine on 11.2-RELEASE and 12-CURRENT.
Looks good to me, if you've tested it. I think this was because of a clang bug, which is now fixed upstream, and may have been fixed when the GNUstep ports were updated to a newer clang.
It's broken on 11.1-RELEASE: http://thunderx1.nyi.freebsd.org/data/111arm64-default/472730/logs/errors/gnustep-base-1.25.0_4.log
and it builds fine with newer clang.
I assume we still have to support 11.1 until it's EOL?
(In reply to mikael.urankar from comment #2)
I think that is due to picking the system clang if it's new enough, only it isn't actually new enough. I plan on switching the ports over to the v2 ABI soon when clang 7.0 is released, which should involve bumping the minimum clang version. In the meantime, it looks as if just bumping the minimum clang version to whatever 11.2 needs will work. Can you try that (ports/Mk/Uses/gnustep.mk or objc.mk, I don't recall which) and see if that fixes it on AArch64?
Created attachment 195647 [details]
Indeed, bumping OBJC_CLANG_VERSION to 60 fixes the build issue on 11.1-RELEASE.
Thanks for the hint.
Somewhat annoyingly, you will need to bump the portrevision for every port that uses Objective-C after this change (or you will end up with different packages from the same port depending on when they were built). I'm happy for the patch to be committed once it includes that change.
Created attachment 195718 [details]
(In reply to David Chisnall from comment #5)
I've bumped the portrevision to all ports listed in the gnustep CATEGORIES (with Tools/script/bump-revision.sh). I hope it's enough.
(In reply to mikael.urankar from comment #6)
Normally, I run the script on all ports that depend on libobjc2 and manually bump that. Is there anything that isn't in the GNUSTEP category that this would catch?
Otherwise, I'm happy for this to be committed. Do you need me to do it, or do you have access?
(In reply to David Chisnall from comment #7)
I gave a look and noticed the following "oddities" in some ports (I don't know if it's an error or normal):
- lang/swift: depends on lang/libobjc2 but is not in the gnustep category and it doesn't use "USES= objc"
- security/openvpn-auth-ldap: is not in the gnustep category but use "USES= objc"
I also forgot to bump www/sogo2-activesync, www/sogo3-activesync and www/sogo4-activesync, they are slaves ports of www/sogoX. Do I need to bump them (they were not bumped in ports r448472)?
I don't have a ports bit.
*** Bug 231244 has been marked as a duplicate of this bug. ***
A commit references this bug:
Date: Wed Sep 26 15:23:57 UTC 2018
New revision: 480741
Update Objective-C LLVM version to 6.0.
Fixes aarch64 build. Reduces depends on obsolete LLVM 4.0.
Submitted by: email@example.com
Approved by: theraven (prior version)
Sponsored by: DARPA, AFRL
Committed patch produced by applying the objc.mk patch by hand and then running:
grep libobjc2 INDEX-11 | cut -d\| -f2 | cut -c12-1000 | xargs sh Tools/scripts/bump-revision.sh