svn commit: r255092 - in head: lib/libcompiler_rt sys/arm/arm

2013-08-31 Thread David Chisnall
Author: theraven Date: Sat Aug 31 08:50:45 2013 New Revision: 255092 URL: http://svnweb.freebsd.org/changeset/base/255092 Log: Unconditionally compile the __sync_* atomics support functions into compiler-rt for ARM. This is quite ugly, because it has to work around a clang bug that does

Re: svn commit: r255092 - in head: lib/libcompiler_rt sys/arm/arm

2013-08-31 Thread Ed Schouten
2013/8/31 David Chisnall thera...@freebsd.org: Reviewed by: ed Just for the record: though I did review this patch, but did not agree with the approach taken. Though I have to confess that due all the case distinctions this code isn't the cleanest out there, the #pragmas/__strong_references

Re: svn commit: r255092 - in head: lib/libcompiler_rt sys/arm/arm

2013-08-31 Thread David Chisnall
On 31 Aug 2013, at 12:30, Ed Schouten e...@80386.nl wrote: 1. Fix LLVM/Clang. Never ever let LLVM/Clang emit calls to __sync_*. You can easily implement the __sync_* interface on top of __atomic_*. What baffles me, is that the calls to __sync_* are emitted by LLVM

Re: svn commit: r255092 - in head: lib/libcompiler_rt sys/arm/arm

2013-08-31 Thread Ed Schouten
2013/8/31 David Chisnall thera...@freebsd.org: Although this would fix the issue in the tree, a number of ports explicitly call the __sync_* builtins, including some that have USE_GCC set, so even fixing clang would not address this. Do we know how many ports there are that do this? This