tech-pkg archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

mariadb106-client fails to build on netbsd 10 aarch64, protected branch instructions



On NetBSD 10 aarch64 (from a few weeks ago), mariadb106-client fails to build:

  /tmp//ccG4aESO.s: Assembler messages:
  /tmp//ccG4aESO.s:43: Error: selected processor does not support `bti j'
  /tmp//ccG4aESO.s:49: Error: selected processor does not support `bti j'
  /tmp//ccG4aESO.s:129: Error: selected processor does not support `bti j'
  /tmp//ccG4aESO.s:144: Error: selected processor does not support `bti j'
  /tmp//ccG4aESO.s:223: Error: selected processor does not support `bti j'
  --- libmariadb/libmariadb/CMakeFiles/mariadb_obj.dir/ma_context.c.o ---
  *** [libmariadb/libmariadb/CMakeFiles/mariadb_obj.dir/ma_context.c.o] Error code 1

  make[2]: stopped in /tmp/work/databases/mariadb106-client/work/mariadb-10.6.23
  1 error

I dimly remember this from before.

There is an #if in the sources to use the opcode instead of the assembly
for older gcc, and if I change that to use opcode for gcc10 it builds.

But the error is not that gcc is unhappy with bti, but that our
assembler thinks that aarch64 as netbsd defines it does not necessarily
have bti instructions.  As I understand things, bti is supposed to be a
nop for processors that don't implement branch protection.

Does anyone understand this better, in terms of being able to recommend:

  our assembler is buggy

  bti is not ok to use

  ?



Home | Main Index | Thread Index | Old Index