when GNU and LLVM disagree

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

when GNU and LLVM disagree

Aioi Yuuko
Hello misc,

I've just gone into /usr/src and done "TARGET=arm64 make cross-gcc" on
6.2 with a 6.2 source tree installed. This shell session describes what
I'm
running into better than I could in words:
$ cd /tmp
$ ed hello.c
hello.c: No such file or directory
a
#include <stdio.h>
int
main()
{
         printf("hello world\n");
}
.
wq
60
$ /usr/cross/arm64/usr/bin/aarch64-unknown-openbsd6.2-clang -c -o
hello.o hello.c
$ /usr/cross/arm64/usr/bin/aarch64-unknown-openbsd6.2-objdump -S hello.o

hello.o:     file format elf64-aarch64

/usr/cross/arm64/usr/bin/aarch64-unknown-openbsd6.2-objdump: Can't
disassemble for architecture aarch64

$ ^D

Now, I know clang is the system compiler on arm64. I also know that the
version of binutils in /usr/src/gnu predates aarch64's existence by a
good
handful of years, while LLVM 4.0 is very recent. The question is, then,
what's
to be done about this? I'm not actually trying to cross-compile on ARM,
just
getting a feel for the cross-* targets for other purposes. I'm poring
through
/usr/src/Makefile.cross, and unfortunately `apropos cross` only turns up
some
X11 and Perl references. Any pointers to understanding the cross-*
system are
appreciated.

Thanks,
yuuko