L4T 28.2 toolchain problem

I downloaded 64bit toolchain from:

and after extraction I had this problem.

Using file command I discovered that the toolchain is 32bit and not 64bit:

file install/bin/aarch64-unknown-linux-gnu-gcc
install/bin/aarch64-unknown-linux-gnu-gcc: ELF 32-bit LSB executable, Intel 80386, version 1 (GNU/Linux), statically linked, for GNU/Linux 2.6.24, BuildID[sha1]=f36837f48003dacbe0c3febceae1f762df882f75, with debug_info, not stripped

I tried to download 32bit toolchain (I thought that was an error on publication), but is the same 32bit version.

I tried to download the version from L4T 28.1 and 27.1 but I obtained the same file.

Please re publish the right toolchains.

Thanks in advance
Giuseppe Patanè

The “baggage” subdirectory of the Documentation download should have the correct cross-compiler.

FYI, i386 is 32-bit desktop PC. The “aarch64” is the output format…this is a cross compiler which runs on a PC with 32-bit mode and outputs for a 64-bit ARMv8-a system. This is not necessarily an error since most desktop x86_64 PCs can still operate with 32-bit i386 mode. Compatibility libraries would need to be in place, but most every desktop PC distribution does this by default. The tool chain is 64-bit output executed in a 32-bit environment, so this is ok when run from a PC.

The newer Linaro releases are all 64-bit on PC side as well as 64-bit on ARM side, but the ARMv8-a output will be nearly identical (newer compilers have changes, but will put out the same code whether run natively from ARMv8-a or from i386/x86_64 PC).

If you are looking for a native compiler on the Jetson, then this would be an incorrect compiler…but the Jetson already has a native compiler.

This is an error, because in the l4t page there are specified 2 cross compiler toolchain, one for 64 bit host and one for 32 bit host.
Both cross toolchains generates binary for aarch64 target machine.
I temporary resolved with linaro toolchain, but I think that is important notify community and Nvidia about this problem, because I spent a couple of hours to solve this with a workaround.

Consider that my build system until yesterday, worked well without problem.

Obviously that is possible to build native on Jetson but I don’t need this.

It is interesting…I don’t know why there are two listed unless it is just for completeness. For the case of the “aarch64-unknown-linux-gnu-gcc-4.8.5” file it is an exact match between the two versions (I ran sha1sum on them and the “file” command). However, both are 32-bit i386 compatibility mode for the desktop PC, I don’t see one as being 64-bit on the host for this one command in the bin subdirectory. Both would run in the same environment, both would produce code for the same architecture without any difference (there may be other files which differ, I’m just looking at gcc).

EDIT: Even the entire archive of gcc-4.8.5-aarch64.tgz is a sha1sum match for both 64-bit and 32-bit BSP versions.