https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98839
--- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> --- That is because most targets define POINTER_SIZE as (condition ? 64 : 32) or constant while rs6000 as a variable holding it, therefore whether it chooses unsigned or signed type for it then matters in these cases. Does: 2021-01-26 Jakub Jelinek <ja...@redhat.com> PR bootstrap/98839 * dwarf2asm.c (dw2_assemble_integer): Cast DWARF2_ADDR_SIZE to int in comparison. --- gcc/dwarf2asm.c.jj 2021-01-26 09:20:19.242499512 +0100 +++ gcc/dwarf2asm.c 2021-01-26 16:33:20.320710684 +0100 @@ -46,7 +46,7 @@ along with GCC; see the file COPYING3. void dw2_assemble_integer (int size, rtx x) { - if (size == 2 * DWARF2_ADDR_SIZE && !CONST_SCALAR_INT_P (x)) + if (size == 2 * (int) DWARF2_ADDR_SIZE && !CONST_SCALAR_INT_P (x)) { /* On 32-bit targets with -gdwarf64, DImode values with relocations usually result in assembler errors. Assume fix this?