Summary: | benchmarks/stress-ng isn't broken on i386, something else is. | ||
---|---|---|---|
Product: | Ports & Packages | Reporter: | dewayne |
Component: | Individual Port(s) | Assignee: | Luca Pizzamiglio <pizzamig> |
Status: | Closed FIXED | ||
Severity: | Affects Some People | Flags: | pizzamig:
maintainer-feedback+
|
Priority: | --- | ||
Version: | Latest | ||
Hardware: | i386 | ||
OS: | Any |
Description
dewayne
2018-07-19 08:15:20 UTC
Hi. I had the same issue with librdkafka. The issue is in clang 6. Until clang 6 was only in current, I just marked them BROKEN there. Then FreeBSD 11.2 came out (with clang 6) and I extended BROKEN to FreeBSD 11.2. The problem is the configure/test: clang 6 perform some inline magic, and the configure tests believe that, on i386, atomic_add_fetch 8 byte long does exist, but when it compiles the real code, it fails, because it doesn't exist at all. I'm in the process to update to stress-ng 0.09.34 and my solution is to add the attribute noinline to the function that tests atomics. Disabling inline there, the test code failed to compile, as expected. I don't know exactly what triggered this issue, I wrote to the mailing list, but no solutions came out (https://readlist.com/lists/freebsd.org/freebsd-current/24/124939.html), but Dimitry sent a bug report in clang (https://bugs.llvm.org/show_bug.cgi?id=34347) A commit references this bug: Author: pizzamig Date: Mon Jul 23 15:52:54 UTC 2018 New revision: 475186 URL: https://svnweb.freebsd.org/changeset/ports/475186 Log: benchmarks/stress-ng: Update to 0.09.35 While I'm upgrading, I fix the atomic 64 bit detection on clang6 The current solution is to for the noinline attribute to the atomic detection code PR: 229885 Changes: head/benchmarks/stress-ng/Makefile head/benchmarks/stress-ng/distinfo I linked the commit that fix the build. You can see in the makefile where I add the noinline attribute. Thanks for motivating me to find a proper solution |