[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

[Bug target/16344] g++ built by profiledbootstrap broken



------- 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

------- You are receiving this mail because: -------
You reported the bug, or are watching the reporter.



Reply to: