libgcc/config/arm/linux-atomic-64bit.c uses __write to print an error message if the 64bit cmpxchg method is not available in the kernel.
__write is not part of the public libc abi, so use write instead. (user code may define write in iso c conforming mode and then the error message may not be visible before the crash.) The return type in the declaration of write is fixed too. OK for trunk and backporting? libgcc/ChangeLog: 2015-11-06 Szabolcs Nagy <szabolcs.n...@arm.com> PR target/68059 * config/arm/linux-atomic-64bit.c (__write): Rename to... (write): ...this and fix the return type.
diff --git a/libgcc/config/arm/linux-atomic-64bit.c b/libgcc/config/arm/linux-atomic-64bit.c index cdf713c..894450e 100644 --- a/libgcc/config/arm/linux-atomic-64bit.c +++ b/libgcc/config/arm/linux-atomic-64bit.c @@ -33,7 +33,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see kernels; we check for that in an init section and bail out rather unceremoneously. */ -extern unsigned int __write (int fd, const void *buf, unsigned int count); +extern int write (int fd, const void *buf, unsigned int count); extern void abort (void); /* Kernel helper for compare-and-exchange. */ @@ -56,7 +56,7 @@ static void __check_for_sync8_kernelhelper (void) for the user - I'm not sure I can rely on much else being available at this point, so do the same as generic-morestack.c write () and abort (). */ - __write (2 /* stderr. */, err, sizeof (err)); + write (2 /* stderr. */, err, sizeof (err)); abort (); } };