Date: Sat, 31 Jan 2015 19:55:13 +0000 (UTC) From: Andrew Turner <andrew@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r277998 - head/sys/arm/include Message-ID: <201501311955.t0VJtDVk062361@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: andrew Date: Sat Jan 31 19:55:12 2015 New Revision: 277998 URL: https://svnweb.freebsd.org/changeset/base/277998 Log: Stop using load-multiple with lr and pc. This has been deprecated in ARMv7 and clang 3.6 warns about it. As this is used in libc and we build it with -Werror this warning becomes an error stopping the build. Modified: head/sys/arm/include/profile.h Modified: head/sys/arm/include/profile.h ============================================================================== --- head/sys/arm/include/profile.h Sat Jan 31 19:42:08 2015 (r277997) +++ head/sys/arm/include/profile.h Sat Jan 31 19:55:12 2015 (r277998) @@ -86,7 +86,12 @@ typedef u_long fptrdiff_t; /* \ * Restore registers that were trashed during mcount \ */ \ - __asm__("ldmfd sp!, {r0-r3, lr, pc}"); + __asm__("ldmfd sp!, {r0-r3, lr}"); \ + /* \ + * Return to the caller. Loading lr and pc in one instruction \ + * is deprecated on ARMv7 so we need this on it's own. \ + */ \ + __asm__("ldmfd sp!, {pc}"); void bintr(void); void btrap(void); void eintr(void);
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201501311955.t0VJtDVk062361>