[PATCH 29/31] PDP11: Use `const_double_zero' to express double zero constant
Maciej W. Rozycki
macro@linux-mips.org
Tue Dec 15 14:06:48 GMT 2020
On Tue, 15 Dec 2020, Martin Liška wrote:
> If I see correctly, starting from this revision I can't compile a cross
> compiler of x86_64-linux-gnu:
>
> ../configure --target=pdp11-aout --disable-bootstrap --enable-languages=c,c++
> --disable-multilib --enable-obsolete
Thanks for the heads-up and the details of the configuration, and sorry
for the breakage.
> $ make
> build/genemit ../../gcc/common.md ../../gcc/config/pdp11/pdp11.md \
> insn-conditions.md > tmp-emit.c
> genemit: Internal error: abort in gen_exp, at genemit.c:202
> make: *** [Makefile:2427: s-emit] Error 1
>
> $ Breakpoint 1, fancy_abort (file=0x435238 "../../gcc/genemit.c", line=202,
> func=0x435230 "gen_exp") at ../../gcc/errors.c:133
> 133 internal_error ("abort in %s, at %s:%d", func, trim_filename (file),
> line);
> (gdb) bt
> #0 fancy_abort (file=0x435238 "../../gcc/genemit.c", line=202, func=0x435230
> "gen_exp") at ../../gcc/errors.c:133
> #1 0x0000000000402e4b in gen_exp (x=0x470de0, subroutine_type=DEFINE_INSN,
> used=0x4aa4b0 "", info=0x7fffffffdea0) at ../../gcc/genemit.c:202
> #2 0x0000000000402f68 in gen_exp (x=0x4d6c70, subroutine_type=DEFINE_INSN,
> used=0x4aa4b0 "", info=0x7fffffffdea0) at ../../gcc/genemit.c:227
> #3 0x0000000000402f68 in gen_exp (x=0x4d6c50, subroutine_type=DEFINE_INSN,
> used=0x4aa4b0 "", info=0x7fffffffdea0) at ../../gcc/genemit.c:227
> #4 0x000000000040307d in gen_exp (x=0x4aa490, subroutine_type=DEFINE_INSN,
> used=0x4aa4b0 "", info=0x7fffffffdea0) at ../../gcc/genemit.c:255
> #5 0x00000000004036c1 in gen_insn (info=0x7fffffffdea0) at
> ../../gcc/genemit.c:435
> #6 0x0000000000404930 in main (argc=3, argv=0x7fffffffdfc8) at
> ../../gcc/genemit.c:911
I don't have the target environment available and consequently the target
does not complete building for me:
The directory that should contain system headers does not exist:
.../usr/sysroot/usr/include
make[2]: *** [Makefile:3218: stmp-fixinc] Error 1
or otherwise I would have at least tried to compile it before submitting
the change. The configuration does build far enough to trigger this issue
though and I can confirm the change is indeed the culprit.
> Can you please take a look?
I'm fairly sure this is due to the difference in TARGET_SUPPORTS_WIDE_INT
with the VAX backend vs the PDP-11 one. I have an idea how this should be
addressed and will be implementing it shortly.
NB the backend fails `-Werror' compilation:
In file included from ./tm.h:18,
from .../gcc/backend.h:28,
from .../gcc/varasm.c:31:
.../gcc/varasm.c: In function 'void assemble_zeros(long unsigned int)':
.../gcc/config/pdp11/pdp11.h:622:20: error: format '%o' expects argument of type 'unsigned int', but argument 3 has type 'long unsigned int' [-Werror=format=]
622 | fprintf (FILE, "\t.blkb\t%o\n", (SIZE) & 0xffff); \
| ^~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~
| |
| long unsigned int
etc., so that has to be disabled. This may be with 64-bit hosts only, I'm
not sure, however the way varargs are handled means the issue will likely
cause a broken compiler to be built if the warning is ignored, at least
with some hosts.
Paul, can you please look into it sometime?
Maciej
More information about the Gcc-patches
mailing list