This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/16344] g++ built by profiledbootstrap broken
- From: "danglin at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 4 Jul 2004 20:44:22 -0000
- Subject: [Bug target/16344] g++ built by profiledbootstrap broken
- References: <20040703082540.16344.debian-gcc@lists.debian.org>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Additional Comments From danglin at gcc dot gnu dot org 2004-07-04 20:44 -------
The SIGSEGV is caused by function pointer canonicalization in this code
/* If the text segment was not loaded at the same address as it was
when the PCH file was created, function pointers loaded from the
PCH will not be valid. We could in theory remap all the function
pointers, but no support for that exists at present. */
if (v.pch_init != &pch_init)
in c-pch.c. Canonicalization will fail if v.pch_init or &pch_init
point to invalid function descriptors. I believe that the SIGSEGV
can be prevented by adding a "void *" cast to one of the sides of the
comparison. If the function descriptor compare succeeds, then
possibly it may be valid to do a canonicalized comparison.
The above failure indicates an issue with mmap. With 2.4 hppa-linux
kernels, the largefile.c pch test fails. There seems to be a similar
problem here with the 2.6.6-pa4 kernel (that's what I used). I'm
guessing but I think profiledbootstrap changes the size of the pch
file causing this failure.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=16344