0

Compiling binutils-2.33.1 for ARM64 (aarch64*--).

The build passes but I'm getting strange issues in some programs. GNU MP for example core dumps when building its generator. Handling of long's seem broken.

When I run make check on the binutils-2.33.1 build. There is only 3 unexpected failures. They definitely stands out:

Running /custom_toolchain/binutils-2.33.1/binutils/testsuite/binutils-all/aarch64/aarch64.exp ...
FAIL: Check if disassembler can handle all sections in default order                                                                                  
FAIL: Check if disassembler can handle all sections in different order than header

Running /custom_toolchain/binutils-2.33.1/binutils/testsuite/binutils-all/objdump.exp ...
Version /custom_toolchain/build/binutils/objdump 2.33.1
FAIL: build-id-debuglink (grepping for source file name in disassembly output)

Can I safely ignore these failures? If not, any thought to the cause?

Halsafar
  • 2,540
  • 4
  • 29
  • 52

1 Answers1

0

You should not ignore those failures. If you have access to a linux x86_64 system, you could cross-compile binutils 2.33.1 using a toolchain that can be trusted, such as a gcc toolchain from either Linaro or Arm: The root cause may be a defective tool on your Aarch64 system.

A procedure for cross-compiling binutils on a linux x86_64 system would be:

wget https://mirror.csclub.uwaterloo.ca/gnu/binutils/binutils-2.33.1.tar.xz
wget https://releases.linaro.org/components/toolchain/binaries/7.5-2019.12/aarch64-linux-gnu/gcc-linaro-7.5.0-2019.12-i686_aarch64-linux-gnu.tar.xz

tar Jxf binutils-2.33.1.tar.xz
tar Jxf aarch64-linux-gnu/gcc-linaro-7.5.0-2019.12-i686_aarch64-linux-gnu.tar.xz

export CROSS_COMPILE=$(pwd)/gcc-linaro-7.5.0-2019.12-i686_aarch64-linux-gnu/bin/aarch64-linux-gnu-
export PREFIX=$(pwd)/binutils-2.33.1-aarch64-linux-gnu

mkdir binutils
cd binutils
../binutils-2.33.1/configure --host=aarch64-linux-gnu --with-static-standard-libraries --program-prefix=aarch64-linux-gnu- --prefix=${PREFIX}
make all install
cd -

ls -Gg binutils-2.33.1-aarch64-linux-gnu/bin/
total 98316
-rwxr-xr-x 1 5744720 Dec 13 23:41 aarch64-linux-gnu-addr2line
-rwxr-xr-x 2 5926304 Dec 13 23:41 aarch64-linux-gnu-ar
-rwxr-xr-x 2 8713560 Dec 13 23:41 aarch64-linux-gnu-as
-rwxr-xr-x 1 5696976 Dec 13 23:41 aarch64-linux-gnu-c++filt
-rwxr-xr-x 1  108784 Dec 13 23:41 aarch64-linux-gnu-elfedit
-rwxr-xr-x 1 6314920 Dec 13 23:41 aarch64-linux-gnu-gprof
-rwxr-xr-x 4 9739912 Dec 13 23:42 aarch64-linux-gnu-ld
-rwxr-xr-x 4 9739912 Dec 13 23:42 aarch64-linux-gnu-ld.bfd
-rwxr-xr-x 2 5789736 Dec 13 23:41 aarch64-linux-gnu-nm
-rwxr-xr-x 2 6529712 Dec 13 23:41 aarch64-linux-gnu-objcopy
-rwxr-xr-x 2 9437264 Dec 13 23:41 aarch64-linux-gnu-objdump
-rwxr-xr-x 2 5926304 Dec 13 23:41 aarch64-linux-gnu-ranlib
-rwxr-xr-x 2 2980560 Dec 13 23:41 aarch64-linux-gnu-readelf
-rwxr-xr-x 1 5735096 Dec 13 23:41 aarch64-linux-gnu-size
-rwxr-xr-x 1 5732376 Dec 13 23:41 aarch64-linux-gnu-strings
-rwxr-xr-x 2 6529704 Dec 13 23:41 aarch64-linux-gnu-strip

You could then replace copy binutils executables into your target system: if your problem was binutils-related, this may well solve it.

Frant
  • 5,382
  • 1
  • 16
  • 22