Committed, thanks!
On Wed, Sep 25, 2019 at 09:45:41AM -0700, Josh Elsasser wrote:
> I came across some code which uses __clear_cache() from
> libgcc/libcompiler_rt on 32-bit arm. Currently that just falls through
> to abort(), but enabling the existing sysarch() code works for me.
>
> diff --git a/lib/libcompiler_rt/clear_cache.c
> b/lib/libcompiler_rt/clear_cache.c
> index 451f1c0b124..4902d761b81 100644
> --- a/lib/libcompiler_rt/clear_cache.c
> +++ b/lib/libcompiler_rt/clear_cache.c
> @@ -33,7 +33,7 @@ uintptr_t GetCurrentProcess(void);
>#include
> #endif
>
> -#if defined(__OpenBSD__) && defined(__mips__)
> +#if defined(__OpenBSD__) && (defined(__mips__) || defined(__arm__))
>#include
>#include
> #endif
> @@ -102,7 +102,7 @@ void __clear_cache(void *start, void *end) {
> * so there is nothing to do
> */
> #elif defined(__arm__) && !defined(__APPLE__)
> -#if defined(__FreeBSD__) || defined(__NetBSD__)
> +#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__)
> struct arm_sync_icache_args arg;
>
> arg.addr = (uintptr_t)start;
>