Skip to content
Commit 10b721fb authored by Andrew Jones's avatar Andrew Jones
Browse files

arm64: Fix compiling with ancient compiler



When compiling with an ancient compiler (gcc-4.8.5-36.el7_6.2.aarch64)
the build fails with

  lib/libcflat.a(alloc.o): In function `mult_overflow':
  /home/drjones/kvm-unit-tests/lib/alloc.c:19: undefined reference to `__multi3'

According to kernel commit fb8722735f50 ("arm64: support __int128 on
gcc 5+") gcc older than 5 will emit __multi3 for __int128 multiplication.
To fix this, let's just use check_mul_overflow(), which does overflow
checking with GCC7.1+ and nothing for older gcc. We lose the fallback
for older gcc, but oh, well, the heavily negative diffstat is just too
tempting to go for another solution.

While we're cleaning up lib/alloc.c with the function deletion also take
the opportunity to clean up the include style and add an SPDX header.

Reviewed-by: default avatarThomas Huth <thuth@redhat.com>
Signed-off-by: Andrew Jones's avatarAndrew Jones <drjones@redhat.com>
parent dbf4a3c3
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment