This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [RFA] Invalid mmap(2) assumption in pch (ggc-common.c)


Matt Thomas <matt@3am-software.com> writes:

> Running the libstdc++ testsuite on NetBSD/sparc or NetBSD/sparc64
> results in most tests failing like:
> 
> <command line>:1: fatal error: had to relocate PCH
> compilation terminated.
> compiler exited with status 1
> 
> This is due to a misassumption in ggc-common.c:654
> (mmap_gt_pch_use_address):
> 
>     This version assumes that the kernel honors the START operand of mmap
>     even without MAP_FIXED if START through START+SIZE are not currently
>     mapped with something.
> 
> That is not true for NetBSD.  Due to MMU idiosyncracies, some architecures
> (like sparc and sparc64) will align mmap requests that don't have MAP_FIXED
> set for architecture specific reasons).

Such systems should work anyway, so long as the alignment is consistent;
the address being requested is one which was returned from mmap() in
a previous invocation of the compiler.

If the alignment isn't consistent, then you might look at overriding
this routine for your host.  There are custom versions for Solaris,
Linux, Darwin, and HPPA, each of which uses a different implementation
technique.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]