PINE64
PinePhone Cross Compiler Install - Printable Version

+- PINE64 (https://forum.pine64.org)
+-- Forum: PinePhone (https://forum.pine64.org/forumdisplay.php?fid=120)
+--- Forum: General Discussion on PinePhone (https://forum.pine64.org/forumdisplay.php?fid=127)
+--- Thread: PinePhone Cross Compiler Install (/showthread.php?tid=13150)



PinePhone Cross Compiler Install - dgdimick - 02-17-2021

I'm trying to install a GCC cross compiler so I can write so really bad code for when my PhinePhone gets here; a 5th grader is probably a better coder then I am.

Anyway, I'm using these instructions, and it work just fine untill I try to install glibc

https://preshing.com/20141119/how-to-build-a-gcc-cross-compiler/

Code:
make -j4 csu/subdir_lib
returns this
make[2]: *** [/home/dgdimick/PinePhone/CrossCompiler/build-glibc/sysd-rules:9: /                                                                                                            home/dgdimick/PinePhone/CrossCompiler/build-glibc/csu/libc-start.o] Error 1
make[2]: *** Waiting for unfinished jobs....
check_fds.c: Assembler messages:
check_fds.c:81: Error: no such instruction: `brk '
make[2]: *** [../o-iterator.mk:9: /home/dgdimick/PinePhone/CrossCompiler/build-g                                                                                                            libc/csu/check_fds.o] Error 1
In file included from ../include/errno.h:25,
                from ../csu/libc-tls.c:20,
                from ../sysdeps/aarch64/libc-tls.c:19:
../sysdeps/aarch64/libc-tls.c: In function ‘__tls_get_addr’:
../sysdeps/aarch64/nptl/tls.h:91:19: error: ‘__builtin_thread_pointer’ is not su                                                                                                            pported on this target
  91 |  (((tcbhead_t *) __builtin_thread_pointer ())->dtv)
      |                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~
../sysdeps/aarch64/libc-tls.c:30:16: note: in expansion of macro ‘THREAD_DTV’
  30 |  dtv_t *dtv = THREAD_DTV ();
      |                ^~~~~~~~~~
make[2]: *** [/home/dgdimick/PinePhone/CrossCompiler/build-glibc/sysd-rules:485:                                                                                                              /home/dgdimick/PinePhone/CrossCompiler/build-glibc/csu/libc-tls.o] Error 1
make[2]: Leaving directory '/home/dgdimick/PinePhone/CrossCompiler/glibc-2.29/cs                                                                                                            u'
make[1]: *** [Makefile:258: csu/subdir_lib] Error 2
make[1]: Leaving directory '/home/dgdimick/PinePhone/CrossCompiler/glibc-2.29'
make: *** [Makefile:9: csu/subdir_lib] Error 2

dgdimick@Samba:~/PinePhone/CrossCompiler/build-glibc $



Any ideas? Or am I just doing this wrong, like there's already as package to install?

I'm running on an old laptop that has Ubuntu installed.


RE: PinePhone Cross Compiler Install - wibble - 02-17-2021

I would expect ubuntu to have a packaged crossdevelopment toolchain available - there's gcc-aarch64-linux-gnu at least. It probably depends which distro you're targeting though - for example PostmarketOS has a script that builds its own crossdev environment.


RE: PinePhone Cross Compiler Install - chaseleif - 02-22-2021

Here's a couple of instruction/discussion pages on cross compilation for Gentoo, maybe you will find these useful or get some direction from reading these:

https://wiki.gentoo.org/wiki/Cross_build_environment
https://forums.gentoo.org/viewtopic-p-8024368.html