On Wed, Nov 30, 2016 at 11:20:13PM +0000, Richard W.M. Jones wrote:
On Wed, Nov 30, 2016 at 10:08:55PM +0000, Richard W.M. Jones wrote:
> On Wed, Nov 30, 2016 at 02:07:13PM -0700, Jerry James wrote:
> > I'm trying to build python-cvxopt, but gcc is failing on aarch64 with
> > a bus error:
> >
> >
http://koji.fedoraproject.org/koji/taskinfo?taskID=16684863
>
> As a data point, the build succeeds on F25/aarch64 with:
>
> glibc-2.24-3.fc25.aarch64
> gcc-6.2.1-2.fc25.aarch64
>
> I'll spin up a Rawhide VM later to see if I can reproduce this with
> the suspect glibc etc (don't want to risk upgrading glibc on my main
> machine :-)
On Rawhide (updated partially from F25), the compile works OK with:
glibc-2.24-3.fc25.aarch64
gcc-6.2.1-2.fc26.aarch64
and it still *works* if I upgrade glibc to:
glibc-2.24.90-19.fc26.aarch64
(leaving all other non-glibc-related packages unchanged).
But it *fails* in exactly the way you describe if I upgrade glibc to:
glibc-2.24.90-20.fc26.aarch64
So it looks fairly conclusively like it's something to do with the
latest glibc, and you need to be looking at the differences between
the -19 and -20 packages.
That glibc is crash-central too. The act of installing gdb to try to
get a stack trace itself caused a crash :-(
The stack trace may be a bit broken, but here goes:
Core was generated by `/usr/libexec/gcc/aarch64-redhat-linux/6.2.1/cc1 -quiet -I
/usr/include -I /usr/'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0 0x00000000010b48c0 in aarch64_fallback_frame_state (context=0x3fff9a499c0,
context=0x3fff9a499c0, fs=0x3fff9a49d80) at ./md-unwind-support.h:71
71 if (pc[0] != MOVZ_X8_8B || pc[1] != SVC_0)
Missing separate debuginfos, use: dnf debuginfo-install glibc-2.24.90-19.fc26.aarch64
gmp-6.1.1-1.fc25.aarch64 libmpc-1.0.2-5.fc24.aarch64 mpfr-3.1.5-1.fc25.aarch64
zlib-1.2.8-10.fc24.aarch64
(gdb) t a a bt
Thread 1 (LWP 18161):
#0 0x00000000010b48c0 in aarch64_fallback_frame_state (context=0x3fff9a499c0,
context=0x3fff9a499c0, fs=0x3fff9a49d80) at ./md-unwind-support.h:71
#1 uw_frame_state_for (context=context@entry=0x3fff9a499c0,
fs=fs@entry=0x3fff9a49d80) at ../../../libgcc/unwind-dw2.c:1249
#2 0x00000000010b6388 in _Unwind_Backtrace (
trace=trace@entry=0x8657cc <unwind>, trace_argument=0x3fff9a4a428,
trace_argument@entry=0x3fff9a4a438) at ../../../libgcc/unwind.inc:290
#3 0x0000000000865920 in backtrace_full (state=0x3ff8b9f0000,
skip=skip@entry=2,
callback=callback@entry=0x84cfbc <bt_callback(void*, uintptr_t, char const*, int,
char const*)>,
error_callback=error_callback@entry=0x84cf54 <bt_err_callback(void*, char const*,
int)>, data=data@entry=0x3fff9a4a494)
at ../../libbacktrace/backtrace.c:127
#4 0x000000000101bc98 in diagnostic_action_after_output (
context=context@entry=0x15037a0 <global_diagnostic_context>,
diag_kind=<optimized out>) at ../../gcc/diagnostic.c:476
#5 0x000000000101b270 in diagnostic_report_diagnostic (
context=0x15037a0 <global_diagnostic_context>, diagnostic=0x3fff9a4a568,
diagnostic@entry=0x3fff9a4a578) at ../../gcc/diagnostic.c:827
#6 0x000000000084cac8 in internal_error (gmsgid=gmsgid@entry=0x111e3c0 "%s")
at ../../gcc/diagnostic.c:1258
#7 0x00000000006bd188 in crash_signal (signo=11) at ../../gcc/toplev.c:333
#8 <signal handler called>
#9 0x00000000010b48c0 in aarch64_fallback_frame_state (context=0x3fff9a4ba60,
context=0x3fff9a4ba60, fs=0x3fff9a4be20) at ./md-unwind-support.h:71
#10 uw_frame_state_for (context=context@entry=0x3fff9a4ba60,
fs=fs@entry=0x3fff9a4be20) at ../../../libgcc/unwind-dw2.c:1249
#11 0x00000000010b6388 in _Unwind_Backtrace (
trace=trace@entry=0x8657cc <unwind>, trace_argument=0x3fff9a4c4c8,
trace_argument@entry=0x3fff9a4c4d8) at ../../../libgcc/unwind.inc:290
#12 0x0000000000865920 in backtrace_full (state=0x3ff8ba00000,
skip=skip@entry=2,
callback=callback@entry=0x84cfbc <bt_callback(void*, uintptr_t, char const*, int,
char const*)>,
error_callback=error_callback@entry=0x84cf54 <bt_err_callback(void*, char const*,
int)>, data=data@entry=0x3fff9a4c534)
at ../../libbacktrace/backtrace.c:127
#13 0x000000000101bc98 in diagnostic_action_after_output (
context=context@entry=0x15037a0 <global_diagnostic_context>,
diag_kind=<optimized out>) at ../../gcc/diagnostic.c:476
#14 0x000000000101b270 in diagnostic_report_diagnostic (
context=0x15037a0 <global_diagnostic_context>, diagnostic=0x3fff9a4c608,
diagnostic@entry=0x3fff9a4c618) at ../../gcc/diagnostic.c:827
#15 0x000000000084cac8 in internal_error (gmsgid=gmsgid@entry=0x111e3c0 "%s")
at ../../gcc/diagnostic.c:1258
#16 0x00000000006bd188 in crash_signal (signo=7) at ../../gcc/toplev.c:333
#17 <signal handler called>
#18 0x00000000003fffff in ?? ()
#19 0x000003ff8dee0acc in mpfr_init2 () from /lib64/libmpfr.so.4
#20 0x0000000000b1223c in real_from_string (r=r@entry=0x3fff9a4db48,
str=0x3fff9a4daa0 "1.0") at ../../gcc/real.c:2106
#21 0x0000000000f50470 in real_from_string3 (r=0x3fff9a4db48,
s=<optimized out>, fmt=...) at ../../gcc/real.c:2173
#22 0x0000000000ece420 in interpret_float(const cpp_token *, unsigned int, const char *,
enum overflow_type *) (token=token@entry=0x1c68ead0, flags=290,
flags@entry=33026, suffix=<optimized out>, overflow=0x3fff9a4dc44,
overflow@entry=0x3fff9a4dcc4) at ../../gcc/c-family/c-lex.c
#23 0x00000000008da6cc in c_lex_with_flags (value=value@entry=0x3ff8be40010,
loc=loc@entry=0x3ff8be4000c, cpp_flags=cpp_flags@entry=0x0,
lex_flags=-1942608032) at ../../gcc/c-family/c-lex.c:425
#24 0x00000000008ab598 in c_lex_one_token (parser=0x3ff8be40000,
token=0x3ff8be40008) at ../../gcc/c/c-parser.c:272
#25 0x00000000008b1848 in c_parser_peek_token (parser=0x3ff8be40000)
at ../../gcc/c/c-parser.c:455
#26 c_parser_expr_no_commas (parser=parser@entry=0x3ff8be40000,
after=after@entry=0x0, omp_atomic_lhs=omp_atomic_lhs@entry=0x0)
at ../../gcc/c/c-parser.c:6297
#27 0x00000000008bad1c in c_parser_expression (
parser=parser@entry=0x3ff8be40000) at ../../gcc/c/c-parser.c:8443
#28 0x00000000008b8d1c in c_parser_expression_conv (parser=0x3ff8be40000)
at ../../gcc/c/c-parser.c:8476
#29 c_parser_statement_after_labels (parser=parser@entry=0x3ff8be40000,
if_p=if_p@entry=0x0, chain=chain@entry=0x0) at ../../gcc/c/c-parser.c:5284
#30 0x00000000008b8350 in c_parser_compound_statement_nostart (
parser=0x3ff8be40000) at ../../gcc/c/c-parser.c:4858
#31 0x00000000008b7f80 in c_parser_compound_statement (
parser=parser@entry=0x3ff8be40000) at ../../gcc/c/c-parser.c:4693
#32 0x00000000008ac5ac in c_parser_declaration_or_fndef (
parser=parser@entry=0x3ff8be40000, fndef_ok=<optimized out>,
fndef_ok@entry=true, static_assert_ok=static_assert_ok@entry=true,
empty_ok=empty_ok@entry=true, nested=nested@entry=false,
start_attr_ok=start_attr_ok@entry=true,
objc_foreach_object_declaration=objc_foreach_object_declaration@entry=0x0,
omp_declare_simd_clauses=..., omp_declare_simd_clauses@entry=...,
oacc_routine_clauses=<optimized out>, oacc_routine_clauses@entry=0x0)
at ../../gcc/c/c-parser.c:2105
#33 0x0000000000ea8d3c in c_parser_external_declaration (parser=0x3ff8be40000)
at ../../gcc/c/c-parser.c:1549
#34 c_parser_translation_unit (parser=0x3ff8be40000)
at ../../gcc/c/c-parser.c:1430
#35 c_parse_file () at ../../gcc/c/c-parser.c:17894
#36 0x0000000000ecfd60 in c_common_parse_file ()
at ../../gcc/c-family/c-opts.c:1064
#37 0x0000000000f59da0 in compile_file () at ../../gcc/toplev.c:463
#38 0x000000000087b6f0 in do_compile () at ../../gcc/toplev.c:1986
#39 toplev::main (this=this@entry=0x3fff9a4e460, argc=<optimized out>,
argc@entry=51, argv=<optimized out>, argv@entry=0x3fff9a4e588)
at ../../gcc/toplev.c:2094
#40 0x000000000087cbd4 in main (argc=51, argv=0x3fff9a4e588)
at ../../gcc/main.c:39
Rich.
--
Richard Jones, Virtualization Group, Red Hat
http://people.redhat.com/~rjones
Read my programming and virtualization blog:
http://rwmj.wordpress.com
virt-builder quickly builds VMs from scratch
http://libguestfs.org/virt-builder.1.html