| Summary: | dns/knot2: Use GCC on i386, Remove BROKEN on i386 | ||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Product: | Ports & Packages | Reporter: | Leo Vandewoestijne <freebsd> | ||||||||||||
| Component: | Individual Port(s) | Assignee: | Matthew Seaman <matthew> | ||||||||||||
| Status: | Closed FIXED | ||||||||||||||
| Severity: | Affects Only Me | CC: | freebsd, matthew | ||||||||||||
| Priority: | --- | Keywords: | needs-qa | ||||||||||||
| Version: | Latest | Flags: | koobs:
maintainer-feedback+
|
||||||||||||
| Hardware: | Any | ||||||||||||||
| OS: | Any | ||||||||||||||
| URL: | https://lists.nic.cz/pipermail/knot-dns-users/2017-June/001156.html | ||||||||||||||
| Bug Depends on: | |||||||||||||||
| Bug Blocks: | 220419 | ||||||||||||||
| Attachments: |
|
||||||||||||||
|
Description
Leo Vandewoestijne
2017-06-29 12:20:09 UTC
Thank you Leo. I don't believe it is accepted to use CC=clang (hardcoded, rather than framework mechanisms such as USES=compiler et al). Additionally, why is HAS_CONFIGURE used in the !i386 case instead of GNU_CONFIGURE (in all cases) Also, for this and future issues, please separate out logically distinct changes, in this case combining CONFLICTS->CONFLICTS_INSTALL with changes required to only fix BROKEN Created attachment 183915 [details] unbroken atomic issue i386 in dns/knot2 Hello Kubilay Kocak, > don't believe it is accepted to use CC=clang > Thinking of it, actually it isn't needed to define it for !i386. > why is HAS_CONFIGURE used in the !i386 case instead of GNU_CONFIGURE (in all cases) > Ah, re-reading 6.5.3 of porters manual I'd discover I had a wrong understanding of the two. > separate out logically distinct changes / combining CONFLICTS->CONFLICTS_INSTALL > True, that's indeed not related to the BROKEN issue. Thanks for your pointers, I made the change even smaller. Attached patch is tested in poudriere, on both 10.3 as 11.0 and both i386 as amd64. I'm still getting compile failures on 11.0 i386: ``` libtool: link: cc -O2 -pipe -fstack-protector -isystem /usr/local/include -fno-strict-aliasing -Wall -Werror=format-security -Werror=implicit -Wstrict-prototypes -fstack-protector -o .libs/keymgr utils/keymgr/keymgr-bind_privkey.o utils/keymgr/keymgr-functions.o utils/keymgr/keymgr-main.o ./.libs/libknotd.a -L/usr/local/lib /wrkdirs/usr/ports/dns/knot2/work/knot-2.5.2/src/zscanner/.libs/libzscanner.so -lurcu ./.libs/libcontrib.a ./.libs/libknotus.a /wrkdirs/usr/ports/dns/knot2/work/knot-2.5.2/src/.libs/libknot.so /wrkdirs/usr/ports/dns/knot2/work/knot-2.5.2/src/dnssec/.libs/libdnssec.so -ledit -lncurses dnssec/.libs/libdnssec.so dnssec/.libs/libshared.a zscanner/.libs/libzscanner.so -llmdb -lgnutls -lnettle -lpthread -lm -Wl,-rpath -Wl,/usr/local/lib ./.libs/libknotd.a(libknotd_la-query_module.o): In function `knotd_mod_stats_incr': knot/nameserver/query_module.c:(.text+0x9e0): undefined reference to `__atomic_fetch_add_8' ./.libs/libknotd.a(libknotd_la-query_module.o): In function `knotd_mod_stats_decr': knot/nameserver/query_module.c:(.text+0xa80): undefined reference to `__atomic_fetch_sub_8' ./.libs/libknotd.a(libknotd_la-query_module.o): In function `knotd_mod_stats_store': knot/nameserver/query_module.c:(.text+0xb20): undefined reference to `__atomic_store_8' cc: error: linker command failed with exit code 1 (use -v to see invocation) *** [keymgr] Error code 1 make[4]: stopped in /wrkdirs/usr/ports/dns/knot2/work/knot-2.5.2/src --- kjournalprint --- libtool: link: cc -O2 -pipe -fstack-protector -isystem /usr/local/include -fno-strict-aliasing -Wall -Werror=format-security -Werror=implicit -Wstrict-prototypes -fstack-protector -o .libs/kjournalprint utils/kjournalprint/kjournalprint-main.o ./.libs/libknotd.a /wrkdirs/usr/ports/dns/knot2/work/knot-2.5.2/src/.libs/libknot.so -L/usr/local/lib /wrkdirs/usr/ports/dns/knot2/work/knot-2.5.2/src/dnssec/.libs/libdnssec.so /wrkdirs/usr/ports/dns/knot2/work/knot-2.5.2/src/zscanner/.libs/libzscanner.so -lurcu ./.libs/libcontrib.a -llmdb -lgnutls -lnettle -lpthread -lm -Wl,-rpath -Wl,/usr/local/lib ./.libs/libknotd.a(libknotd_la-query_module.o): In function `knotd_mod_stats_incr': knot/nameserver/query_module.c:(.text+0x9e0): undefined reference to `__atomic_fetch_add_8' ./.libs/libknotd.a(libknotd_la-query_module.o): In function `knotd_mod_stats_decr': knot/nameserver/query_module.c:(.text+0xa80): undefined reference to `__atomic_fetch_sub_8' ./.libs/libknotd.a(libknotd_la-query_module.o): In function `knotd_mod_stats_store': knot/nameserver/query_module.c:(.text+0xb20): undefined reference to `__atomic_store_8' cc: error: linker command failed with exit code 1 (use -v to see invocation) *** [kjournalprint] Error code 1 make[4]: stopped in /wrkdirs/usr/ports/dns/knot2/work/knot-2.5.2/src 2 errors make[4]: stopped in /wrkdirs/usr/ports/dns/knot2/work/knot-2.5.2/src *** [all-recursive] Error code 1 make[3]: stopped in /wrkdirs/usr/ports/dns/knot2/work/knot-2.5.2/src 1 error make[3]: stopped in /wrkdirs/usr/ports/dns/knot2/work/knot-2.5.2/src *** [all] Error code 2 make[2]: stopped in /wrkdirs/usr/ports/dns/knot2/work/knot-2.5.2/src 1 error make[2]: stopped in /wrkdirs/usr/ports/dns/knot2/work/knot-2.5.2/src *** [all-recursive] Error code 1 make[1]: stopped in /wrkdirs/usr/ports/dns/knot2/work/knot-2.5.2 1 error make[1]: stopped in /wrkdirs/usr/ports/dns/knot2/work/knot-2.5.2 ===> Compilation failed unexpectedly. Try to set MAKE_JOBS_UNSAFE=yes and rebuild before reporting the failure to the maintainer. *** Error code 1 ``` > I'm still getting compile failures on 11.0 i386:
>
That's disappointing.
So I assume your 'cc' is gcc (or is it clang)?
(In reply to Leo Vandewoestijne from comment #4) It's the default c compiler on 11.0-RELEASE, which is: ``` % cc -v FreeBSD clang version 3.8.0 (tags/RELEASE_380/final 262564) (based on LLVM 3.8.0) Target: x86_64-unknown-freebsd11.0 Thread model: posix InstalledDir: /usr/bin ``` Well, ccache is involved, but that doesn't affect the outcome. Created attachment 184074 [details]
unbroken atomic issue i386 in dns/knot2 - w/o compiler clause
@Matthew:
In that case, could you please try this patch instead there?
It's the very same but without the compiler-type condition.
(In reply to Leo Vandewoestijne from comment #6) Sure. I'll try that this evening. (In reply to Matthew Seaman from comment #7) Unfortunately the updated patch made no difference Created attachment 184209 [details]
unbroken i386 in dns/knot2 - another attempt
@Matthew,
OK, since I can't replicate that error, and you can...
can you try and see if this patch then does solve it?
The only difference with the previous is adding CPUTYPE=i686 also, besides the already added CFLAGS.
(In reply to Leo Vandewoestijne from comment #9) Still no joy I'm afraid. You say this works for you? How exactly are you running your test compiles? I'm testing with poudriere trying to run as close to a vanilla environment as possible. Created attachment 184472 [details] knot2 update I used poudriere on an AMD64 ZFS instance on DigitalOcean, all fine. Yesterday I did the same on an AMD64 ZFS EC2 instance, and 10.3/i386 was fine, but now 11.0/i386 failed with my suggested modifications. (so there I get the same result as you). Today I did more testing and found out the solution to the i386 problem on >= 11 is USE_GCC. In the meanwhile 2.5.3 was released: https://gitlab.labs.nic.cz/knot/knot-dns/raw/v2.5.3/NEWS Attached patch was tested successfully on both i386 & amd64 on 10.3, 11.0 and 12.0. Committed, thanks! A commit references this bug: Author: matthew Date: Wed Jul 19 07:33:35 UTC 2017 New revision: 446186 URL: https://svnweb.freebsd.org/changeset/ports/446186 Log: Update to 2.5.3 Require gcc to allow compilation to succeed on FreeBSD 11+ i386 ChangeLog: https://gitlab.labs.nic.cz/knot/knot-dns/raw/v2.5.3/NEWS PR: 220355 Submitted by: freebsd@dns-lab.com (maintainer) Changes: head/dns/knot2/Makefile head/dns/knot2/distinfo |