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