Bug#976494: blastem: FTBFS on arm64: z80_to_x86.c:634:21: error: invalid operands to binary - (have ‘code_ptr’ {aka ‘unsigned int *’} and ‘uint8_t *’ {aka ‘unsigned char =?UTF-8?Q?*=E2=80=99}?=)

Lucas Nussbaum lucas at debian.org
Sat Dec 5 12:16:21 GMT 2020


Source: blastem
Version: 0.6.3.3-3
Severity: serious
Justification: FTBFS on arm64
Tags: bullseye sid ftbfs
Usertags: ftbfs-20201205 ftbfs-bullseye

Hi,

During a rebuild of all packages in sid, your package failed to build
on arm64.

Relevant part (hopefully):
> cc -O2 -flto -g -fPIE -D_FORTIFY_SOURCE=2 -fstack-protector-strong -Wformat -Werror=format-security -I/usr/include/SDL2 -std=gnu99 -Wreturn-type -Werror=return-type -Werror=implicit-function-declaration -Wno-unused-value -DHAS_PROC -DHAVE_UNISTD_H -Wno-unused-result -DCONFIG_PATH='"'/etc/blastem'"' -DDATA_PATH='"'/usr/share/games/blastem'"' -c -o z80_to_x86.o z80_to_x86.c
> z80_to_x86.c: In function ‘translate_z80inst’:
> z80_to_x86.c:332:20: warning: initialization of ‘uint8_t *’ {aka ‘unsigned char *’} from incompatible pointer type ‘code_ptr’ {aka ‘unsigned int *’} [-Wincompatible-pointer-types]
>   332 |  uint8_t * start = opts->gen.code.cur;
>       |                    ^~~~
> z80_to_x86.c:337:40: warning: passing argument 3 of ‘zbreakpoint_patch’ from incompatible pointer type [-Wincompatible-pointer-types]
>   337 |    zbreakpoint_patch(context, address, start);
>       |                                        ^~~~~
>       |                                        |
>       |                                        uint8_t * {aka unsigned char *}
> z80_to_x86.c:29:78: note: expected ‘code_ptr’ {aka ‘unsigned int *’} but argument is of type ‘uint8_t *’ {aka ‘unsigned char *’}
>    29 | uint32_t zbreakpoint_patch(z80_context * context, uint16_t address, code_ptr dst);
>       |                                                                     ~~~~~~~~~^~~
> z80_to_x86.c:629:20: warning: initialization of ‘uint8_t *’ {aka ‘unsigned char *’} from incompatible pointer type ‘code_ptr’ {aka ‘unsigned int *’} [-Wincompatible-pointer-types]
>   629 |   uint8_t * cont = code->cur+1;
>       |                    ^~~~
> z80_to_x86.c:633:13: warning: passing argument 2 of ‘jmp’ from incompatible pointer type [-Wincompatible-pointer-types]
>   633 |   jmp(code, start);
>       |             ^~~~~
>       |             |
>       |             uint8_t * {aka unsigned char *}
> In file included from backend.h:11,
>                  from z80_to_x86.h:9,
>                  from z80_to_x86.c:7:
> gen.h:25:36: note: expected ‘code_ptr’ {aka ‘unsigned int *’} but argument is of type ‘uint8_t *’ {aka ‘unsigned char *’}
>    25 | void jmp(code_info *code, code_ptr dest);
>       |                           ~~~~~~~~~^~~~
> z80_to_x86.c:634:21: error: invalid operands to binary - (have ‘code_ptr’ {aka ‘unsigned int *’} and ‘uint8_t *’ {aka ‘unsigned char *’})
>   634 |   *cont = code->cur - (cont + 1);
>       |           ~~~~~~~~~ ^ ~~~~~~~~~~
>       |               |             |
>       |               |             uint8_t * {aka unsigned char *}
>       |               code_ptr {aka unsigned int *}
> z80_to_x86.c:705:20: warning: initialization of ‘uint8_t *’ {aka ‘unsigned char *’} from incompatible pointer type ‘code_ptr’ {aka ‘unsigned int *’} [-Wincompatible-pointer-types]
>   705 |   uint8_t * cont = code->cur+1;
>       |                    ^~~~
> z80_to_x86.c:709:13: warning: passing argument 2 of ‘jmp’ from incompatible pointer type [-Wincompatible-pointer-types]
>   709 |   jmp(code, start);
>       |             ^~~~~
>       |             |
>       |             uint8_t * {aka unsigned char *}
> In file included from backend.h:11,
>                  from z80_to_x86.h:9,
>                  from z80_to_x86.c:7:
> gen.h:25:36: note: expected ‘code_ptr’ {aka ‘unsigned int *’} but argument is of type ‘uint8_t *’ {aka ‘unsigned char *’}
>    25 | void jmp(code_info *code, code_ptr dest);
>       |                           ~~~~~~~~~^~~~
> z80_to_x86.c:710:21: error: invalid operands to binary - (have ‘code_ptr’ {aka ‘unsigned int *’} and ‘uint8_t *’ {aka ‘unsigned char *’})
>   710 |   *cont = code->cur - (cont + 1);
>       |           ~~~~~~~~~ ^ ~~~~~~~~~~
>       |               |             |
>       |               |             uint8_t * {aka unsigned char *}
>       |               code_ptr {aka unsigned int *}
> z80_to_x86.c:782:20: warning: initialization of ‘uint8_t *’ {aka ‘unsigned char *’} from incompatible pointer type ‘code_ptr’ {aka ‘unsigned int *’} [-Wincompatible-pointer-types]
>   782 |   uint8_t * cont = code->cur+1;
>       |                    ^~~~
> z80_to_x86.c:785:21: warning: initialization of ‘uint8_t *’ {aka ‘unsigned char *’} from incompatible pointer type ‘code_ptr’ {aka ‘unsigned int *’} [-Wincompatible-pointer-types]
>   785 |   uint8_t * cont2 = code->cur+1;
>       |                     ^~~~
> z80_to_x86.c:789:13: warning: passing argument 2 of ‘jmp’ from incompatible pointer type [-Wincompatible-pointer-types]
>   789 |   jmp(code, start);
>       |             ^~~~~
>       |             |
>       |             uint8_t * {aka unsigned char *}
> In file included from backend.h:11,
>                  from z80_to_x86.h:9,
>                  from z80_to_x86.c:7:
> gen.h:25:36: note: expected ‘code_ptr’ {aka ‘unsigned int *’} but argument is of type ‘uint8_t *’ {aka ‘unsigned char *’}
>    25 | void jmp(code_info *code, code_ptr dest);
>       |                           ~~~~~~~~~^~~~
> z80_to_x86.c:790:21: error: invalid operands to binary - (have ‘code_ptr’ {aka ‘unsigned int *’} and ‘uint8_t *’ {aka ‘unsigned char *’})
>   790 |   *cont = code->cur - (cont + 1);
>       |           ~~~~~~~~~ ^ ~~~~~~~~~~
>       |               |             |
>       |               |             uint8_t * {aka unsigned char *}
>       |               code_ptr {aka unsigned int *}
> z80_to_x86.c:791:22: error: invalid operands to binary - (have ‘code_ptr’ {aka ‘unsigned int *’} and ‘uint8_t *’ {aka ‘unsigned char *’})
>   791 |   *cont2 = code->cur - (cont2 + 1);
>       |            ~~~~~~~~~ ^ ~~~~~~~~~~~
>       |                |              |
>       |                |              uint8_t * {aka unsigned char *}
>       |                code_ptr {aka unsigned int *}
> z80_to_x86.c:861:20: warning: initialization of ‘uint8_t *’ {aka ‘unsigned char *’} from incompatible pointer type ‘code_ptr’ {aka ‘unsigned int *’} [-Wincompatible-pointer-types]
>   861 |   uint8_t * cont = code->cur+1;
>       |                    ^~~~
> z80_to_x86.c:864:21: warning: initialization of ‘uint8_t *’ {aka ‘unsigned char *’} from incompatible pointer type ‘code_ptr’ {aka ‘unsigned int *’} [-Wincompatible-pointer-types]
>   864 |   uint8_t * cont2 = code->cur+1;
>       |                     ^~~~
> z80_to_x86.c:868:13: warning: passing argument 2 of ‘jmp’ from incompatible pointer type [-Wincompatible-pointer-types]
>   868 |   jmp(code, start);
>       |             ^~~~~
>       |             |
>       |             uint8_t * {aka unsigned char *}
> In file included from backend.h:11,
>                  from z80_to_x86.h:9,
>                  from z80_to_x86.c:7:
> gen.h:25:36: note: expected ‘code_ptr’ {aka ‘unsigned int *’} but argument is of type ‘uint8_t *’ {aka ‘unsigned char *’}
>    25 | void jmp(code_info *code, code_ptr dest);
>       |                           ~~~~~~~~~^~~~
> z80_to_x86.c:869:21: error: invalid operands to binary - (have ‘code_ptr’ {aka ‘unsigned int *’} and ‘uint8_t *’ {aka ‘unsigned char *’})
>   869 |   *cont = code->cur - (cont + 1);
>       |           ~~~~~~~~~ ^ ~~~~~~~~~~
>       |               |             |
>       |               |             uint8_t * {aka unsigned char *}
>       |               code_ptr {aka unsigned int *}
> z80_to_x86.c:870:22: error: invalid operands to binary - (have ‘code_ptr’ {aka ‘unsigned int *’} and ‘uint8_t *’ {aka ‘unsigned char *’})
>   870 |   *cont2 = code->cur - (cont2 + 1);
>       |            ~~~~~~~~~ ^ ~~~~~~~~~~~
>       |                |              |
>       |                |              uint8_t * {aka unsigned char *}
>       |                code_ptr {aka unsigned int *}
> z80_to_x86.c:2067:83: warning: passing argument 3 of ‘defer_address’ from incompatible pointer type [-Wincompatible-pointer-types]
>  2067 |     opts->gen.deferred = defer_address(opts->gen.deferred, inst->immed, code->cur + 1);
>       |                                                                         ~~~~~~~~~~^~~
>       |                                                                                   |
>       |                                                                                   code_ptr {aka unsigned int *}
> In file included from z80_to_x86.h:9,
>                  from z80_to_x86.c:7:
> backend.h:83:84: note: expected ‘uint8_t *’ {aka ‘unsigned char *’} but argument is of type ‘code_ptr’ {aka ‘unsigned int *’}
>    83 | deferred_addr * defer_address(deferred_addr * old_head, uint32_t address, uint8_t *dest);
>       |                                                                           ~~~~~~~~~^~~~
> z80_to_x86.c:2109:26: warning: initialization of ‘uint8_t *’ {aka ‘unsigned char *’} from incompatible pointer type ‘code_ptr’ {aka ‘unsigned int *’} [-Wincompatible-pointer-types]
>  2109 |   uint8_t *no_jump_off = code->cur+1;
>       |                          ^~~~
> z80_to_x86.c:2114:80: warning: passing argument 3 of ‘defer_address’ from incompatible pointer type [-Wincompatible-pointer-types]
>  2114 |    opts->gen.deferred = defer_address(opts->gen.deferred, dest_addr, code->cur + 1);
>       |                                                                      ~~~~~~~~~~^~~
>       |                                                                                |
>       |                                                                                code_ptr {aka unsigned int *}
> In file included from z80_to_x86.h:9,
>                  from z80_to_x86.c:7:
> backend.h:83:84: note: expected ‘uint8_t *’ {aka ‘unsigned char *’} but argument is of type ‘code_ptr’ {aka ‘unsigned int *’}
>    83 | deferred_addr * defer_address(deferred_addr * old_head, uint32_t address, uint8_t *dest);
>       |                                                                           ~~~~~~~~~^~~~
> z80_to_x86.c:2119:28: error: invalid operands to binary - (have ‘code_ptr’ {aka ‘unsigned int *’} and ‘uint8_t *’ {aka ‘unsigned char *’})
>  2119 |   *no_jump_off = code->cur - (no_jump_off+1);
>       |                  ~~~~~~~~~ ^ ~~~~~~~~~~~~~~~
>       |                      |                   |
>       |                      |                   uint8_t * {aka unsigned char *}
>       |                      code_ptr {aka unsigned int *}
> z80_to_x86.c:2127:80: warning: passing argument 3 of ‘defer_address’ from incompatible pointer type [-Wincompatible-pointer-types]
>  2127 |    opts->gen.deferred = defer_address(opts->gen.deferred, dest_addr, code->cur + 1);
>       |                                                                      ~~~~~~~~~~^~~
>       |                                                                                |
>       |                                                                                code_ptr {aka unsigned int *}
> In file included from z80_to_x86.h:9,
>                  from z80_to_x86.c:7:
> backend.h:83:84: note: expected ‘uint8_t *’ {aka ‘unsigned char *’} but argument is of type ‘code_ptr’ {aka ‘unsigned int *’}
>    83 | deferred_addr * defer_address(deferred_addr * old_head, uint32_t address, uint8_t *dest);
>       |                                                                           ~~~~~~~~~^~~~
> z80_to_x86.c:2150:26: warning: initialization of ‘uint8_t *’ {aka ‘unsigned char *’} from incompatible pointer type ‘code_ptr’ {aka ‘unsigned int *’} [-Wincompatible-pointer-types]
>  2150 |   uint8_t *no_jump_off = code->cur+1;
>       |                          ^~~~
> z80_to_x86.c:2156:80: warning: passing argument 3 of ‘defer_address’ from incompatible pointer type [-Wincompatible-pointer-types]
>  2156 |    opts->gen.deferred = defer_address(opts->gen.deferred, dest_addr, code->cur + 1);
>       |                                                                      ~~~~~~~~~~^~~
>       |                                                                                |
>       |                                                                                code_ptr {aka unsigned int *}
> In file included from z80_to_x86.h:9,
>                  from z80_to_x86.c:7:
> backend.h:83:84: note: expected ‘uint8_t *’ {aka ‘unsigned char *’} but argument is of type ‘code_ptr’ {aka ‘unsigned int *’}
>    83 | deferred_addr * defer_address(deferred_addr * old_head, uint32_t address, uint8_t *dest);
>       |                                                                           ~~~~~~~~~^~~~
> z80_to_x86.c:2161:28: error: invalid operands to binary - (have ‘code_ptr’ {aka ‘unsigned int *’} and ‘uint8_t *’ {aka ‘unsigned char *’})
>  2161 |   *no_jump_off = code->cur - (no_jump_off+1);
>       |                  ~~~~~~~~~ ^ ~~~~~~~~~~~~~~~
>       |                      |                   |
>       |                      |                   uint8_t * {aka unsigned char *}
>       |                      code_ptr {aka unsigned int *}
> z80_to_x86.c:2171:26: warning: initialization of ‘uint8_t *’ {aka ‘unsigned char *’} from incompatible pointer type ‘code_ptr’ {aka ‘unsigned int *’} [-Wincompatible-pointer-types]
>  2171 |   uint8_t *no_jump_off = code->cur+1;
>       |                          ^~~~
> z80_to_x86.c:2177:80: warning: passing argument 3 of ‘defer_address’ from incompatible pointer type [-Wincompatible-pointer-types]
>  2177 |    opts->gen.deferred = defer_address(opts->gen.deferred, dest_addr, code->cur + 1);
>       |                                                                      ~~~~~~~~~~^~~
>       |                                                                                |
>       |                                                                                code_ptr {aka unsigned int *}
> In file included from z80_to_x86.h:9,
>                  from z80_to_x86.c:7:
> backend.h:83:84: note: expected ‘uint8_t *’ {aka ‘unsigned char *’} but argument is of type ‘code_ptr’ {aka ‘unsigned int *’}
>    83 | deferred_addr * defer_address(deferred_addr * old_head, uint32_t address, uint8_t *dest);
>       |                                                                           ~~~~~~~~~^~~~
> z80_to_x86.c:2182:28: error: invalid operands to binary - (have ‘code_ptr’ {aka ‘unsigned int *’} and ‘uint8_t *’ {aka ‘unsigned char *’})
>  2182 |   *no_jump_off = code->cur - (no_jump_off+1);
>       |                  ~~~~~~~~~ ^ ~~~~~~~~~~~~~~~
>       |                      |                   |
>       |                      |                   uint8_t * {aka unsigned char *}
>       |                      code_ptr {aka unsigned int *}
> z80_to_x86.c:2193:82: warning: passing argument 3 of ‘defer_address’ from incompatible pointer type [-Wincompatible-pointer-types]
>  2193 |    opts->gen.deferred = defer_address(opts->gen.deferred, inst->immed, code->cur + 1);
>       |                                                                        ~~~~~~~~~~^~~
>       |                                                                                  |
>       |                                                                                  code_ptr {aka unsigned int *}
> In file included from z80_to_x86.h:9,
>                  from z80_to_x86.c:7:
> backend.h:83:84: note: expected ‘uint8_t *’ {aka ‘unsigned char *’} but argument is of type ‘code_ptr’ {aka ‘unsigned int *’}
>    83 | deferred_addr * defer_address(deferred_addr * old_head, uint32_t address, uint8_t *dest);
>       |                                                                           ~~~~~~~~~^~~~
> z80_to_x86.c:2226:26: warning: initialization of ‘uint8_t *’ {aka ‘unsigned char *’} from incompatible pointer type ‘code_ptr’ {aka ‘unsigned int *’} [-Wincompatible-pointer-types]
>  2226 |   uint8_t *no_call_off = code->cur+1;
>       |                          ^~~~
> z80_to_x86.c:2235:82: warning: passing argument 3 of ‘defer_address’ from incompatible pointer type [-Wincompatible-pointer-types]
>  2235 |    opts->gen.deferred = defer_address(opts->gen.deferred, inst->immed, code->cur + 1);
>       |                                                                        ~~~~~~~~~~^~~
>       |                                                                                  |
>       |                                                                                  code_ptr {aka unsigned int *}
> In file included from z80_to_x86.h:9,
>                  from z80_to_x86.c:7:
> backend.h:83:84: note: expected ‘uint8_t *’ {aka ‘unsigned char *’} but argument is of type ‘code_ptr’ {aka ‘unsigned int *’}
>    83 | deferred_addr * defer_address(deferred_addr * old_head, uint32_t address, uint8_t *dest);
>       |                                                                           ~~~~~~~~~^~~~
> z80_to_x86.c:2240:28: error: invalid operands to binary - (have ‘code_ptr’ {aka ‘unsigned int *’} and ‘uint8_t *’ {aka ‘unsigned char *’})
>  2240 |   *no_call_off = code->cur - (no_call_off+1);
>       |                  ~~~~~~~~~ ^ ~~~~~~~~~~~~~~~
>       |                      |                   |
>       |                      |                   uint8_t * {aka unsigned char *}
>       |                      code_ptr {aka unsigned int *}
> z80_to_x86.c:2277:26: warning: initialization of ‘uint8_t *’ {aka ‘unsigned char *’} from incompatible pointer type ‘code_ptr’ {aka ‘unsigned int *’} [-Wincompatible-pointer-types]
>  2277 |   uint8_t *no_call_off = code->cur+1;
>       |                          ^~~~
> z80_to_x86.c:2284:28: error: invalid operands to binary - (have ‘code_ptr’ {aka ‘unsigned int *’} and ‘uint8_t *’ {aka ‘unsigned char *’})
>  2284 |   *no_call_off = code->cur - (no_call_off+1);
>       |                  ~~~~~~~~~ ^ ~~~~~~~~~~~~~~~
>       |                      |                   |
>       |                      |                   uint8_t * {aka unsigned char *}
>       |                      code_ptr {aka unsigned int *}
> z80_to_x86.c:2315:82: warning: passing argument 3 of ‘defer_address’ from incompatible pointer type [-Wincompatible-pointer-types]
>  2315 |    opts->gen.deferred = defer_address(opts->gen.deferred, inst->immed, code->cur + 1);
>       |                                                                        ~~~~~~~~~~^~~
>       |                                                                                  |
>       |                                                                                  code_ptr {aka unsigned int *}
> In file included from z80_to_x86.h:9,
>                  from z80_to_x86.c:7:
> backend.h:83:84: note: expected ‘uint8_t *’ {aka ‘unsigned char *’} but argument is of type ‘code_ptr’ {aka ‘unsigned int *’}
>    83 | deferred_addr * defer_address(deferred_addr * old_head, uint32_t address, uint8_t *dest);
>       |                                                                           ~~~~~~~~~^~~~
> z80_to_x86.c:2472:13: warning: passing argument 2 of ‘jmp’ from incompatible pointer type [-Wincompatible-pointer-types]
>  2472 |   jmp(code, start);
>       |             ^~~~~
>       |             |
>       |             uint8_t * {aka unsigned char *}
> In file included from backend.h:11,
>                  from z80_to_x86.h:9,
>                  from z80_to_x86.c:7:
> gen.h:25:36: note: expected ‘code_ptr’ {aka ‘unsigned int *’} but argument is of type ‘uint8_t *’ {aka ‘unsigned char *’}
>    25 | void jmp(code_info *code, code_ptr dest);
>       |                           ~~~~~~~~~^~~~
> z80_to_x86.c:2597:13: warning: passing argument 2 of ‘jmp’ from incompatible pointer type [-Wincompatible-pointer-types]
>  2597 |   jmp(code, start);
>       |             ^~~~~
>       |             |
>       |             uint8_t * {aka unsigned char *}
> In file included from backend.h:11,
>                  from z80_to_x86.h:9,
>                  from z80_to_x86.c:7:
> gen.h:25:36: note: expected ‘code_ptr’ {aka ‘unsigned int *’} but argument is of type ‘uint8_t *’ {aka ‘unsigned char *’}
>    25 | void jmp(code_info *code, code_ptr dest);
>       |                           ~~~~~~~~~^~~~
> z80_to_x86.c:2717:13: warning: passing argument 2 of ‘jmp’ from incompatible pointer type [-Wincompatible-pointer-types]
>  2717 |   jmp(code, start);
>       |             ^~~~~
>       |             |
>       |             uint8_t * {aka unsigned char *}
> In file included from backend.h:11,
>                  from z80_to_x86.h:9,
>                  from z80_to_x86.c:7:
> gen.h:25:36: note: expected ‘code_ptr’ {aka ‘unsigned int *’} but argument is of type ‘uint8_t *’ {aka ‘unsigned char *’}
>    25 | void jmp(code_info *code, code_ptr dest);
>       |                           ~~~~~~~~~^~~~
> z80_to_x86.c:2816:13: warning: passing argument 2 of ‘jmp’ from incompatible pointer type [-Wincompatible-pointer-types]
>  2816 |   jmp(code, start);
>       |             ^~~~~
>       |             |
>       |             uint8_t * {aka unsigned char *}
> In file included from backend.h:11,
>                  from z80_to_x86.h:9,
>                  from z80_to_x86.c:7:
> gen.h:25:36: note: expected ‘code_ptr’ {aka ‘unsigned int *’} but argument is of type ‘uint8_t *’ {aka ‘unsigned char *’}
>    25 | void jmp(code_info *code, code_ptr dest);
>       |                           ~~~~~~~~~^~~~
> z80_to_x86.c: In function ‘z80_interp_handler’:
> z80_to_x86.c:2849:32: warning: assignment to ‘uint8_t *’ {aka ‘unsigned char *’} from incompatible pointer type ‘code_ptr’ {aka ‘unsigned int *’} [-Wincompatible-pointer-types]
>  2849 |   context->interp_code[opcode] = code->cur;
>       |                                ^
> z80_to_x86.c: At top level:
> z80_to_x86.c:2886:11: error: conflicting types for ‘z80_get_native_address’
>  2886 | uint8_t * z80_get_native_address(z80_context * context, uint32_t address)
>       |           ^~~~~~~~~~~~~~~~~~~~~~
> In file included from z80_to_x86.c:7:
> z80_to_x86.h:98:10: note: previous declaration of ‘z80_get_native_address’ was here
>    98 | code_ptr z80_get_native_address(z80_context * context, uint32_t address);
>       |          ^~~~~~~~~~~~~~~~~~~~~~
> z80_to_x86.c: In function ‘z80_handle_code_write’:
> z80_to_x86.c:3007:18: warning: initialization of ‘code_ptr’ {aka ‘unsigned int *’} from incompatible pointer type ‘uint8_t *’ {aka ‘unsigned char *’} [-Wincompatible-pointer-types]
>  3007 |   code_ptr dst = z80_get_native_address(context, inst_start);
>       |                  ^~~~~~~~~~~~~~~~~~~~~~
> z80_to_x86.c: In function ‘z80_invalidate_code_range’:
> z80_to_x86.c:3042:15: warning: assignment to ‘code_ptr’ {aka ‘unsigned int *’} from incompatible pointer type ‘uint8_t *’ {aka ‘unsigned char *’} [-Wincompatible-pointer-types]
>  3042 |      code.cur = native_code_map[chunk].base + native_code_map[chunk].offsets[offset];
>       |               ^
> z80_to_x86.c: At top level:
> z80_to_x86.c:3053:11: error: conflicting types for ‘z80_get_native_address_trans’
>  3053 | uint8_t * z80_get_native_address_trans(z80_context * context, uint32_t address)
>       |           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
> In file included from z80_to_x86.c:7:
> z80_to_x86.h:99:10: note: previous declaration of ‘z80_get_native_address_trans’ was here
>    99 | code_ptr z80_get_native_address_trans(z80_context * context, uint32_t address);
>       |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
> z80_to_x86.c: In function ‘z80_retranslate_inst’:
> z80_to_x86.c:3116:44: warning: passing argument 3 of ‘z80_map_native_address’ from incompatible pointer type [-Wincompatible-pointer-types]
>  3116 |   z80_map_native_address(context, address, start, after-inst, ZMAX_NATIVE_SIZE);
>       |                                            ^~~~~
>       |                                            |
>       |                                            code_ptr {aka unsigned int *}
> z80_to_x86.c:2918:80: note: expected ‘uint8_t *’ {aka ‘unsigned char *’} but argument is of type ‘code_ptr’ {aka ‘unsigned int *’}
>  2918 | void z80_map_native_address(z80_context * context, uint32_t address, uint8_t * native_address, uint8_t size, uint8_t native_size)
>       |                                                                      ~~~~~~~~~~^~~~~~~~~~~~~~
> z80_to_x86.c:3117:25: warning: initialization of ‘code_word *’ {aka ‘unsigned int *’} from incompatible pointer type ‘uint8_t *’ {aka ‘unsigned char *’} [-Wincompatible-pointer-types]
>  3117 |   code_info tmp_code = {orig_start, orig_start + 16};
>       |                         ^~~~~~~~~~
> z80_to_x86.c:3117:25: note: (near initialization for ‘tmp_code.cur’)
> z80_to_x86.c:3117:37: warning: initialization of ‘code_word *’ {aka ‘unsigned int *’} from incompatible pointer type ‘uint8_t *’ {aka ‘unsigned char *’} [-Wincompatible-pointer-types]
>  3117 |   code_info tmp_code = {orig_start, orig_start + 16};
>       |                                     ^~~~~~~~~~
> z80_to_x86.c:3117:37: note: (near initialization for ‘tmp_code.last’)
> z80_to_x86.c:3122:19: warning: passing argument 2 of ‘jmp’ from incompatible pointer type [-Wincompatible-pointer-types]
>  3122 |    jmp(&tmp_code, z80_get_native_address_trans(context, address + after-inst));
>       |                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>       |                   |
>       |                   uint8_t * {aka unsigned char *}
> In file included from backend.h:11,
>                  from z80_to_x86.h:9,
>                  from z80_to_x86.c:7:
> gen.h:25:36: note: expected ‘code_ptr’ {aka ‘unsigned int *’} but argument is of type ‘uint8_t *’ {aka ‘unsigned char *’}
>    25 | void jmp(code_info *code, code_ptr dest);
>       |                           ~~~~~~~~~^~~~
> z80_to_x86.c:3128:13: warning: assignment to ‘code_ptr’ {aka ‘unsigned int *’} from incompatible pointer type ‘uint8_t *’ {aka ‘unsigned char *’} [-Wincompatible-pointer-types]
>  3128 |   code->cur = orig_start;
>       |             ^
> z80_to_x86.c:3129:14: warning: assignment to ‘code_ptr’ {aka ‘unsigned int *’} from incompatible pointer type ‘uint8_t *’ {aka ‘unsigned char *’} [-Wincompatible-pointer-types]
>  3129 |   code->last = orig_start + ZMAX_NATIVE_SIZE;
>       |              ^
> z80_to_x86.c:3135:15: warning: passing argument 2 of ‘jmp’ from incompatible pointer type [-Wincompatible-pointer-types]
>  3135 |    jmp(&tmp2, z80_get_native_address_trans(context, address + after-inst));
>       |               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>       |               |
>       |               uint8_t * {aka unsigned char *}
> In file included from backend.h:11,
>                  from z80_to_x86.h:9,
>                  from z80_to_x86.c:7:
> gen.h:25:36: note: expected ‘code_ptr’ {aka ‘unsigned int *’} but argument is of type ‘uint8_t *’ {aka ‘unsigned char *’}
>    25 | void jmp(code_info *code, code_ptr dest);
>       |                           ~~~~~~~~~^~~~
> z80_to_x86.c: In function ‘translate_z80_stream’:
> z80_to_x86.c:3158:26: warning: passing argument 2 of ‘jmp’ from incompatible pointer type [-Wincompatible-pointer-types]
>  3158 |     jmp(&opts->gen.code, existing);
>       |                          ^~~~~~~~
>       |                          |
>       |                          uint8_t * {aka unsigned char *}
> In file included from backend.h:11,
>                  from z80_to_x86.h:9,
>                  from z80_to_x86.c:7:
> gen.h:25:36: note: expected ‘code_ptr’ {aka ‘unsigned int *’} but argument is of type ‘uint8_t *’ {aka ‘unsigned char *’}
>    25 | void jmp(code_info *code, code_ptr dest);
>       |                           ~~~~~~~~~^~~~
> z80_to_x86.c:3165:50: warning: passing argument 3 of ‘z80_map_native_address’ from incompatible pointer type [-Wincompatible-pointer-types]
>  3165 |     z80_map_native_address(context, address, stub.cur, 1, stub.last - stub.cur);
>       |                                              ~~~~^~~~
>       |                                                  |
>       |                                                  code_ptr {aka unsigned int *}
> z80_to_x86.c:2918:80: note: expected ‘uint8_t *’ {aka ‘unsigned char *’} but argument is of type ‘code_ptr’ {aka ‘unsigned int *’}
>  2918 | void z80_map_native_address(z80_context * context, uint32_t address, uint8_t * native_address, uint8_t size, uint8_t native_size)
>       |                                                                      ~~~~~~~~~~^~~~~~~~~~~~~~
> z80_to_x86.c:3181:45: warning: passing argument 3 of ‘z80_map_native_address’ from incompatible pointer type [-Wincompatible-pointer-types]
>  3181 |    z80_map_native_address(context, address, start, next-encoded, opts->gen.code.cur - start);
>       |                                             ^~~~~
>       |                                             |
>       |                                             code_ptr {aka unsigned int *}
> z80_to_x86.c:2918:80: note: expected ‘uint8_t *’ {aka ‘unsigned char *’} but argument is of type ‘code_ptr’ {aka ‘unsigned int *’}
>  2918 | void z80_map_native_address(z80_context * context, uint32_t address, uint8_t * native_address, uint8_t size, uint8_t native_size)
>       |                                                                      ~~~~~~~~~~^~~~~~~~~~~~~~
> z80_to_x86.c: In function ‘zbreakpoint_patch’:
> z80_to_x86.c:3798:21: warning: passing argument 2 of ‘call’ from incompatible pointer type [-Wincompatible-pointer-types]
>  3798 |  call(&code, context->bp_stub);
>       |              ~~~~~~~^~~~~~~~~
>       |                     |
>       |                     uint8_t * {aka unsigned char *}
> In file included from backend.h:11,
>                  from z80_to_x86.h:9,
>                  from z80_to_x86.c:7:
> gen.h:24:37: note: expected ‘code_ptr’ {aka ‘unsigned int *’} but argument is of type ‘uint8_t *’ {aka ‘unsigned char *’}
>    24 | void call(code_info *code, code_ptr fun);
>       |                            ~~~~~~~~~^~~
> z80_to_x86.c: In function ‘zcreate_stub’:
> z80_to_x86.c:3809:19: warning: assignment to ‘uint8_t *’ {aka ‘unsigned char *’} from incompatible pointer type ‘code_ptr’ {aka ‘unsigned int *’} [-Wincompatible-pointer-types]
>  3809 |  context->bp_stub = code->cur;
>       |                   ^
> z80_to_x86.c:3813:32: error: invalid operands to binary - (have ‘code_ptr’ {aka ‘unsigned int *’} and ‘uint8_t *’ {aka ‘unsigned char *’})
>  3813 |  int check_int_size = code->cur-context->bp_stub;
>       |                       ~~~~~~~~~^~~~~~~~~~~~~~~~~
>       |                           |            |
>       |                           |            uint8_t * {aka unsigned char *}
>       |                           code_ptr {aka unsigned int *}
> z80_to_x86.c:3814:12: warning: assignment to ‘code_ptr’ {aka ‘unsigned int *’} from incompatible pointer type ‘uint8_t *’ {aka ‘unsigned char *’} [-Wincompatible-pointer-types]
>  3814 |  code->cur = context->bp_stub;
>       |            ^
> z80_to_x86.c:3825:29: warning: passing argument 2 of ‘call_args’ from incompatible pointer type [-Wincompatible-pointer-types]
>  3825 |  call_args_abi(code, context->bp_handler, 2, opts->gen.context_reg, opts->gen.scratch1);
>       |                      ~~~~~~~^~~~~~~~~~~~
>       |                             |
>       |                             uint8_t * {aka unsigned char *}
> In file included from backend.h:11,
>                  from z80_to_x86.h:9,
>                  from z80_to_x86.c:7:
> gen.h:30:42: note: expected ‘code_ptr’ {aka ‘unsigned int *’} but argument is of type ‘uint8_t *’ {aka ‘unsigned char *’}
>    30 | void call_args(code_info *code, code_ptr fun, uint32_t num_args, ...);
>       |                                 ~~~~~~~~~^~~
> z80_to_x86.c:3832:22: warning: initialization of ‘uint8_t *’ {aka ‘unsigned char *’} from incompatible pointer type ‘code_ptr’ {aka ‘unsigned int *’} [-Wincompatible-pointer-types]
>  3832 |  uint8_t * jmp_off = code->cur+1;
>       |                      ^~~~
> z80_to_x86.c:3841:23: error: invalid operands to binary - (have ‘code_ptr’ {aka ‘unsigned int *’} and ‘uint8_t *’ {aka ‘unsigned char *’})
>  3841 |  *jmp_off = code->cur - (jmp_off+1);
>       |             ~~~~~~~~~ ^ ~~~~~~~~~~~
>       |                 |               |
>       |                 |               uint8_t * {aka unsigned char *}
>       |                 code_ptr {aka unsigned int *}
> z80_to_x86.c: In function ‘zinsert_breakpoint’:
> z80_to_x86.c:3860:40: warning: passing argument 3 of ‘zbreakpoint_patch’ from incompatible pointer type [-Wincompatible-pointer-types]
>  3860 |    zbreakpoint_patch(context, address, native);
>       |                                        ^~~~~~
>       |                                        |
>       |                                        uint8_t * {aka unsigned char *}
> z80_to_x86.c:3786:78: note: expected ‘code_ptr’ {aka ‘unsigned int *’} but argument is of type ‘uint8_t *’ {aka ‘unsigned char *’}
>  3786 | uint32_t zbreakpoint_patch(z80_context * context, uint16_t address, code_ptr dst)
>       |                                                                     ~~~~~~~~~^~~
> z80_to_x86.c: In function ‘zremove_breakpoint’:
> z80_to_x86.c:3872:22: warning: assignment to ‘code_ptr’ {aka ‘unsigned int *’} from incompatible pointer type ‘uint8_t *’ {aka ‘unsigned char *’} [-Wincompatible-pointer-types]
>  3872 |   opts->gen.code.cur = native;
>       |                      ^
> z80_to_x86.c:3873:23: warning: assignment to ‘code_ptr’ {aka ‘unsigned int *’} from incompatible pointer type ‘uint8_t *’ {aka ‘unsigned char *’} [-Wincompatible-pointer-types]
>  3873 |   opts->gen.code.last = native + 128;
>       |                       ^
> make[2]: *** [Makefile:356: z80_to_x86.o] Error 1

The full build log is available from:
   http://qa-logs.debian.net/2020/12/05/blastem_0.6.3.3-3_unstable.log

A list of current common problems and possible solutions is available at
http://wiki.debian.org/qa.debian.org/FTBFS . You're welcome to contribute!

If you reassign this bug to another package, please marking it as 'affects'-ing
this package. See https://www.debian.org/Bugs/server-control#affects

If you fail to reproduce this, please provide a build log and diff it with me
so that we can identify if something relevant changed in the meantime.

About the archive rebuild: The rebuild was done on EC2 VM instances from
Amazon Web Services, using a clean, minimal and up-to-date chroot. Every
failed build was retried once to eliminate random failures.



More information about the Pkg-games-devel mailing list