https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64810
--- Comment #10 from David Malcolm <dmalcolm at gcc dot gnu.org> ---
Trying a hw watchpoint:
(gdb) watch global_options.x_arm_float_abi
shows this is never touched within test-empty.c.exe
Invoking ./xgcc verbosely on an empty C file:
$ ./xgcc -c -xc -v -B. -save-temps /dev/null
I note that ./cc1 and ./as are being invoked with various pertinent "-m"
options:
./cc1 -fpreprocessed null.i -quiet -dumpbase null -march=armv7-a
-mfloat-abi=hard -mfpu=vfpv3-d16 -mtls-dialect=gnu -auxbase null -version -o
null.s
./as -v -march=armv7-a -mfloat-abi=hard -mfpu=vfpv3-d16 -meabi=5 -o null.o
null.s
(e.g. -mfloat-abi=hard etc)
null.s looks like this:
.arch armv7-a
.eabi_attribute 28, 1
.fpu vfpv3-d16
.eabi_attribute 20, 1
.eabi_attribute 21, 1
.eabi_attribute 23, 3
.eabi_attribute 24, 1
.eabi_attribute 25, 1
.eabi_attribute 26, 2
.eabi_attribute 30, 6
.eabi_attribute 34, 1
.eabi_attribute 18, 4
.arm
.syntax divided
.file "null"
.ident "GCC: (GNU) 5.0.0 20150126 (experimental)"
.section .note.GNU-stack,"",%progbits
Under non-jit operation the driver seems to invoking cc1 with -m options based
on configure-time settings, whereas within the jit, jit-playback.c builds an
argv for toplev::main analogous to invoking cc1, but doesn't attempt to inject
these additional -m options, hence we get a bogus .fpu attribute, and indeed,
the other settings are likely to be bogus also.