On Sat, Jun 21, 2014 at 11:31 AM, Mike Gilbert <flop...@gentoo.org> wrote: > On Sat, Jun 21, 2014 at 10:04 AM, Cristian Rodríguez > <crrodrig...@opensuse.org> wrote: >> El 21/06/14 01:38, Chase Rayfield escribió: >> >>> udev up to version 208 builds correctly on Sparc v8. However 212 and >>> greater does not. >>> >>> Complete build logs of 208 and 214 can be found here: >>> https://bugs.gentoo.org/show_bug.cgi?id=514016 >>> >>> Any suggestions or alternatives to how we can fix this would be >>> appreciated. >>> >>> This affects old Sun hardware, Leon Sparc, and the sparc implementation >>> being developed at temlib.org .... it may also affect other >>> architectures that I am not aware of. >>> >>> Thanks, >>> Chase Rayfield >> >> >> Not a systemd problem. please ix your tool-chain. systemd does not even use >> __sync_sub_and_fetch_4(), this is a function that ought to be proviided by >> the compiler or libgcc . >> > > systemd does use __sync_sub_and_fetch, which probably gets mapped to > __sync_sub_and_fetch_4 somewhere. > > src/shared/refcnt.h:#define REFCNT_DEC(r) (__sync_sub_and_fetch(&(r)._value, > 1))
Also, from the gcc manual: https://gcc.gnu.org/onlinedocs/gcc-4.7.4/gcc/_005f_005fsync-Builtins.html > Not all operations are supported by all target processors. If a particular > operation cannot be implemented on the target processor, a warning will be > generated and a call an external function will be generated. The external > function will carry the same name as the builtin, with an additional suffix > ‘_n’ where n is the size of the data type. If I interpret that correctly, systemd would need to define _sync_sub_and_fetch_4 when building for 32-bit processors which do not support the __sync_sub_and_fetch operation natively. _______________________________________________ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel