public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug preprocessor/58370] New: pre compiled headers failure on NetBSD/sparc64
@ 2013-09-09 13:34 martin at netbsd dot org
2013-09-09 13:54 ` [Bug preprocessor/58370] " martin at netbsd dot org
` (3 more replies)
0 siblings, 4 replies; 5+ messages in thread
From: martin at netbsd dot org @ 2013-09-09 13:34 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58370
Bug ID: 58370
Summary: pre compiled headers failure on NetBSD/sparc64
Product: gcc
Version: 4.8.1
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: preprocessor
Assignee: unassigned at gcc dot gnu.org
Reporter: martin at netbsd dot org
Trying to configure gcc fails with an endless loop in one of the configure
tests of libstc++. There are actually two errors in this:
(1) a fatal error when reading a PCH file "had to relocate PCH"
(2) a SIGSEGV when trying to resolve symbol information for the diagnostic
message, which in turn leads to a SIGSEGV inside the SIGSEGV handler
I don't know if (2) is only fallout from (1). I can provide more debug output
if needed (not sure what part of this is NetBSD specific).
The backtrace is:
#0 0x00000000012fff88 in linemap_location_from_macro_expansion_p (
set=0x42e70000, location=19) at ../../gcc-4.8.1/libcpp/line-map.c:948
#1 0x00000000012ff31c in linemap_lookup (set=0x42e70000, line=19)
at ../../gcc-4.8.1/libcpp/line-map.c:642
#2 0x000000000130065c in linemap_macro_loc_to_def_point (set=0x42e70000,
location=19, original_map=0xffffffffffffa0c8)
at ../../gcc-4.8.1/libcpp/line-map.c:1134
#3 0x0000000001300934 in linemap_resolve_location (set=0x42e70000, loc=19,
lrk=LRK_MACRO_DEFINITION_LOCATION, map=0xffffffffffffa0c8)
at ../../gcc-4.8.1/libcpp/line-map.c:1263
#4 0x00000000012d4ab8 in diagnostic_report_current_module (context=0x17b28d0,
where=19) at ../../gcc-4.8.1/gcc/diagnostic.c:481
#5 0x00000000003a6368 in cp_diagnostic_starter (context=0x17b28d0,
diagnostic=0xffffffffffffa308) at ../../gcc-4.8.1/gcc/cp/error.c:2907
#6 0x00000000012d5e44 in diagnostic_report_diagnostic (context=0x17b28d0,
diagnostic=0xffffffffffffa308) at ../../gcc-4.8.1/gcc/diagnostic.c:756
#7 0x00000000012d6b90 in fatal_error (gmsgid=0x13e1230 "had to relocate PCH")
at ../../gcc-4.8.1/gcc/diagnostic.c:1076
#8 0x00000000008e83dc in gt_pch_restore (f=0x424a0738)
at ../../gcc-4.8.1/gcc/ggc-common.c:704
#9 0x00000000005c575c in c_common_read_pch (pfile=0x42765800,
name=0x4275dbc0 "conftest.h.gch", fd=4, orig_name=0x4275dbb0 "conftest.h")
at ../../gcc-4.8.1/gcc/c-family/c-pch.c:370
#10 0x00000000012f05f8 in should_stack_file (pfile=0x42765800,
file=0x42788130, import=false) at ../../gcc-4.8.1/libcpp/files.c:787
#11 0x00000000012f097c in _cpp_stack_file (pfile=0x42765800, file=0x42788130,
import=false) at ../../gcc-4.8.1/libcpp/files.c:872
#12 0x00000000012f0fe4 in _cpp_stack_include (pfile=0x42765800,
fname=0x4275db90 "conftest.h", angle_brackets=0, type=IT_INCLUDE)
at ../../gcc-4.8.1/libcpp/files.c:1008
#13 0x00000000012e1fc4 in do_include_common (pfile=0x42765800, type=IT_INCLUDE)
at ../../gcc-4.8.1/libcpp/directives.c:793
#14 0x00000000012e2024 in do_include (pfile=0x42765800)
at ../../gcc-4.8.1/libcpp/directives.c:804
#15 0x00000000012e13dc in _cpp_handle_directive (pfile=0x42765800, indented=0)
at ../../gcc-4.8.1/libcpp/directives.c:492
#16 0x00000000012f9dc4 in _cpp_lex_token (pfile=0x42765800)
at ../../gcc-4.8.1/libcpp/lex.c:1990
#17 0x0000000001306cec in cpp_get_token_1 (pfile=0x42765800,
location=0xffffffffffffafd8) at ../../gcc-4.8.1/libcpp/macro.c:2355
#18 0x0000000001307330 in cpp_get_token_with_location (pfile=0x42765800,
loc=0xffffffffffffafd8) at ../../gcc-4.8.1/libcpp/macro.c:2537
#19 0x00000000005b9484 in c_lex_with_flags (value=0xffffffffffffafe0,
loc=0xffffffffffffafd8, cpp_flags=0xffffffffffffafd2 "", lex_flags=0)
at ../../gcc-4.8.1/gcc/c-family/c-lex.c:300
#20 0x00000000003b225c in cp_lexer_get_preprocessor_token (lexer=0x0,
token=0xffffffffffffafd0) at ../../gcc-4.8.1/gcc/cp/parser.c:715
#21 0x00000000003f64e8 in cp_parser_initial_pragma (
first_token=0xffffffffffffafd0) at ../../gcc-4.8.1/gcc/cp/parser.c:28139
#22 0x00000000003b1d98 in cp_lexer_new_main ()
This can be reproduced like this:
> cat conftest.h
#include <math.h>
> cat conftest.cc
#include "conftest.h"
> $BUILDDIR/stage1-gcc/xg++ -B $BUILDDIR/stage1-gcc -Werror -Winvalid-pch -Wno-deprecated -x c++-header conftest.h -o conftest.h.gch
> $BUILDDIR/stage1-gcc/xg++ -B $BUILDDIR/stage1-gcc -Werror -Winvalid-pch -Wno-deprecated -c conftest.cc
A bit of gdb output:
Core was generated by `cc1plus'.
Program terminated with signal 11, Segmentation fault.
#0 0x00000000012fff88 in linemap_location_from_macro_expansion_p (
set=0x42e70000, location=19) at ../../gcc-4.8.1/libcpp/line-map.c:948
948 linemap_assert (location <= MAX_SOURCE_LOCATION
(gdb) list
943 {
944 if (IS_ADHOC_LOC (location))
945 location = set->location_adhoc_data_map.data[
946 location & MAX_SOURCE_LOCATION].locus;
947
948 linemap_assert (location <= MAX_SOURCE_LOCATION
949 && (set->highest_location
950 < LINEMAPS_MACRO_LOWEST_LOCATION (set)));
951 if (set == NULL)
952 return false;
(gdb) print *set
$1 = {info_ordinary = {maps = 0x114000000, allocated = 1, used = 1115871712,
cache = 0}, info_macro = {maps = 0x105000000, allocated = 0,
used = 1117049688, cache = 0}, depth = 1, trace_includes = 55,
highest_location = 3, highest_line = 1117048808, max_column_hint = 0,
reallocator = 0x115000000, round_alloc_size = 0, location_adhoc_data_map = {
htab = 0x0, curr_loc = 1, allocated = 335544320, data = 0x24282d9e0}}
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug preprocessor/58370] pre compiled headers failure on NetBSD/sparc64
2013-09-09 13:34 [Bug preprocessor/58370] New: pre compiled headers failure on NetBSD/sparc64 martin at netbsd dot org
@ 2013-09-09 13:54 ` martin at netbsd dot org
2013-09-09 13:59 ` rguenth at gcc dot gnu.org
` (2 subsequent siblings)
3 siblings, 0 replies; 5+ messages in thread
From: martin at netbsd dot org @ 2013-09-09 13:54 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58370
--- Comment #1 from Martin Husemann <martin at netbsd dot org> ---
The fatal error seems to happen because NetBSD uses the default HAVE_MMAP_FILE
implementation of gt_pch_get_address and gt_pch_use_address instead of specific
host hooks.
Looking at the existing host hook implementations for those two functions I am
really terrified. Why is relocation not possible?
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug preprocessor/58370] pre compiled headers failure on NetBSD/sparc64
2013-09-09 13:34 [Bug preprocessor/58370] New: pre compiled headers failure on NetBSD/sparc64 martin at netbsd dot org
2013-09-09 13:54 ` [Bug preprocessor/58370] " martin at netbsd dot org
@ 2013-09-09 13:59 ` rguenth at gcc dot gnu.org
2013-09-09 14:14 ` martin at netbsd dot org
2013-09-10 10:08 ` martin at netbsd dot org
3 siblings, 0 replies; 5+ messages in thread
From: rguenth at gcc dot gnu.org @ 2013-09-09 13:59 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58370
--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> ---
(In reply to Martin Husemann from comment #1)
> The fatal error seems to happen because NetBSD uses the default
> HAVE_MMAP_FILE implementation of gt_pch_get_address and gt_pch_use_address
> instead of specific host hooks.
>
> Looking at the existing host hook implementations for those two functions I
> am really terrified. Why is relocation not possible?
Probably because nobody submitted and tested a NetBSD implementation.
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug preprocessor/58370] pre compiled headers failure on NetBSD/sparc64
2013-09-09 13:34 [Bug preprocessor/58370] New: pre compiled headers failure on NetBSD/sparc64 martin at netbsd dot org
2013-09-09 13:54 ` [Bug preprocessor/58370] " martin at netbsd dot org
2013-09-09 13:59 ` rguenth at gcc dot gnu.org
@ 2013-09-09 14:14 ` martin at netbsd dot org
2013-09-10 10:08 ` martin at netbsd dot org
3 siblings, 0 replies; 5+ messages in thread
From: martin at netbsd dot org @ 2013-09-09 14:14 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58370
--- Comment #3 from Martin Husemann <martin at netbsd dot org> ---
(In reply to Richard Biener from comment #2)
> Probably because nobody submitted and tested a NetBSD implementation.
You mean an evil hack to try to avoid the relocation (like all existing host
hooks seem to do)?
Relocation of precompiled header information should not be host specific. With
it, any posix mmap (via the default implementation) would do.
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug preprocessor/58370] pre compiled headers failure on NetBSD/sparc64
2013-09-09 13:34 [Bug preprocessor/58370] New: pre compiled headers failure on NetBSD/sparc64 martin at netbsd dot org
` (2 preceding siblings ...)
2013-09-09 14:14 ` martin at netbsd dot org
@ 2013-09-10 10:08 ` martin at netbsd dot org
3 siblings, 0 replies; 5+ messages in thread
From: martin at netbsd dot org @ 2013-09-10 10:08 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58370
--- Comment #4 from Martin Husemann <martin at netbsd dot org> ---
To avoid confusion, I'm splitting this into two separate reports - will dig
further into the crash myself, since it is probably not easy to reproduce on
other host platforms.
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2013-09-10 10:08 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-09-09 13:34 [Bug preprocessor/58370] New: pre compiled headers failure on NetBSD/sparc64 martin at netbsd dot org
2013-09-09 13:54 ` [Bug preprocessor/58370] " martin at netbsd dot org
2013-09-09 13:59 ` rguenth at gcc dot gnu.org
2013-09-09 14:14 ` martin at netbsd dot org
2013-09-10 10:08 ` martin at netbsd dot org
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).