[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Libunwind-devel] [PATCH 24/27] Flush icache with __builtin___clear_
From: |
Konstantin Belousov |
Subject: |
Re: [Libunwind-devel] [PATCH 24/27] Flush icache with __builtin___clear_cache() in tests when compiling with GCC |
Date: |
Wed, 29 Aug 2012 21:47:01 +0300 |
User-agent: |
Mutt/1.4.2.3i |
On Wed, Aug 29, 2012 at 04:22:50PM +0300, Tommi Rantala wrote:
> 2012/8/22 Tommi Rantala <address@hidden>:
> > When compiling with GCC, use the builtin instruction cache flushing
> > mechanism in all tests where it is needed.
> >
> > Quoting GCC docs: ''If the target does not require instruction cache
> > flushes, __builtin___clear_cache has no effect. Otherwise either
> > instructions are emitted in-line to clear the instruction cache or a
> > call to the __clear_cache function in libgcc is made.''.
>
> I installed FreeBSD 9.0 in qemu, and noticed that
> __builtin___clear_cache() does not seem to be available in the FreeBSD
> GCC version. I guess we need to either check for the GCC version, or
> check if __builtin___clear_cache() is available.
>
> Anyone else have better ideas?
I use gcc 4.7.1 to build libunwind, so I did not noted this.
Yes, gcc in the FreeBSD base is ancient, because this was the last
GPLv2 version.
That said, clang defines __GNUC__, but only provides __builtin___clear_cache
on ARM.
It seems that the configure-time detection of the __builtin___clear_cache
is the only route.
pgpguWZ5vzFLf.pgp
Description: PGP signature
- [Libunwind-devel] [PATCH 18/27] Remove unneeded length modifier from suppressed match in sscanf() format in tests/crasher.c, (continued)
- [Libunwind-devel] [PATCH 18/27] Remove unneeded length modifier from suppressed match in sscanf() format in tests/crasher.c, Tommi Rantala, 2012/08/22
- [Libunwind-devel] [PATCH 19/27] Fix memory leaks in unw_create_addr_space() wrong-endian error paths, Tommi Rantala, 2012/08/22
- [Libunwind-devel] [PATCH 16/27] Fix plain return from main() in tests/test-async-sig.c, Tommi Rantala, 2012/08/22
- [Libunwind-devel] [PATCH 22/27] test-resume-sig-rt: test unw_resume() in presence of "realtime" signal frame, Tommi Rantala, 2012/08/22
- [Libunwind-devel] [PATCH 25/27] Place `inline' at beginning of declaration of invalidate_edi(), Tommi Rantala, 2012/08/22
- [Libunwind-devel] [PATCH 20/27] ARM: fix non-signal-frame local unw_resume() due to compiler optimization cleverness, Tommi Rantala, 2012/08/22
- [Libunwind-devel] [PATCH 21/27] ARM: fix with-signal-frame local unw_resume(), Tommi Rantala, 2012/08/22
- [Libunwind-devel] [PATCH 24/27] Flush icache with __builtin___clear_cache() in tests when compiling with GCC, Tommi Rantala, 2012/08/22
- [Libunwind-devel] [PATCH 26/27] Fix function name duplication in Debug() output, Tommi Rantala, 2012/08/22
- [Libunwind-devel] [PATCH 27/27] Add missing newline to debug message in _UCD_access_reg_linux.c, Tommi Rantala, 2012/08/22
- [Libunwind-devel] [PATCH 02/27] HPPA: add `global_cache' member to unw_addr_space struct, Tommi Rantala, 2012/08/22
- [Libunwind-devel] [PATCH 09/27] Run `autoupdate' to stop using obsoleted macros in `configure.in', Tommi Rantala, 2012/08/22
- [Libunwind-devel] [PATCH 01/27] HPPA: fix tdep_put_unwind_info() macro, Tommi Rantala, 2012/08/22
- [Libunwind-devel] [PATCH 06/27] Eliminate unused parameters in tests, Tommi Rantala, 2012/08/22
- [Libunwind-devel] [PATCH 07/27] Annotate unused parameters in tests, Tommi Rantala, 2012/08/22
- [Libunwind-devel] [PATCH 03/27] HPPA: include `mempool.h' in `libunwind_i.h', Tommi Rantala, 2012/08/22
- Re: [Libunwind-devel] [PATCH 00/27] Misc fixes II, Arun Sharma, 2012/08/26