This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
Re: [Gcl-devel] Re: BFD relocations
> Greetings! I found an earlier cache flushing snippet for another
> arch:
>
> #define CLEAR_CACHE do { unsigned long ps = getpagesize(); \
> char *beg = (char *)((unsigned long )(memory->cfd.cfd_start) & ~(ps-1)); \
> char *end = ROUND_UP(memory->cfd.cfd_start + \
> memory->cfd.cfd_size,ps); \
> mprotect(beg,end-beg,PROT_READ|PROT_WRITE|PROT_EXEC);} while(0)
>
> Can mprotect be used in this way to portably flush the data cache?
I very much doubt it. I don't see any real connection between page
protection and the cache. Some OS might decide that changing
protection is a reason to flush the cache; another might not. For
some CPU targets this may be necessary or useful, for others it may be
entirely superfluous.
paul