This is the mail archive of the crossgcc@sourceware.org mailing list for the crossgcc project.

See crosstool-NG for lots more information.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Building rpi armv6 toolchain on macOS


I have reproduced your issue on current master with the following changes to .config (extracted .config from your build.log with "ct-ng extractconfig < build.log > .config"):

- set CT_OBSOLETE=y
- ct-ng oldconfig
- set GCC to 4.9.4 and kernel to 4.1.38 (latest on 4.9.x and 4.1.x branches)

However, I noted that you have set "Patches origin" option to "none". This prohibits crosstool-ng from applying any patches it has for any packages. In your configuration, setting it to "bundled" makes the build succeed (on master).

You can try to find out which of the patches fixes your issue. Likely it is one in patches/glibc/2.19, patches/binutils/2.25.1 or patches/gcc/4.9.4.

As a side note, I'd recommend using master on macos rather than 1.22 - there has been a lot of macos fixes since.

Regards,
Alexey.


On 03/09/2017 04:15 AM, Etan Kissling wrote:
Hi,

I'm trying to build a toolchain that supports cross compilation for the Raspberry Pi Zero W.
This requires building for ARMv6 (same as for the old Raspberry Pi 1).

The official repository contains a crosstool-ng config file here:
https://github.com/raspberrypi/tools/blob/master/configs/arm-rpi-4.9.3-linux-gnueabihf.config
Unfortunately, only Linux binaries are provided in the repo. So for macOS I need to start from this config.

The changes I did to the config file so far are:
Undefine CT_CONFIGURE_has_xz
Set CT_LOCAL_TARBALLS_DIR / CT_WORK_DIR / CT_PREFIX_DIR to reside on case-sensitive file systems
CT_EXTRA_CFLAGS_FOR_HOST="-fbracket-depth=512"
This fixes "[ERROR] /tmp/ct-ng/fs/.build/src/gcc-4.9.3/gcc/config/arm/neon.md:3486:10917: fatal error: bracket nesting level exceeded maximum of 256".
CT_WANTS_STATIC_LINK=n
CT_CC_GCC_STATIC_LIBSTDCXX=n
These two fix errors during initial sanity checking.
I'm currently stuck at the step "Installing C library headers & start files" where I get these errors during assembly of ../ports/sysdeps/unix/sysv/linux/arm/libc-aeabi_read_tp.S:
ccL1wvil.s: Assembler messages:
ccL1wvil.s:70: Error: invalid constant (ae) after fixup
ccL1wvil.s:143: Error: invalid constant (ff) after fixup

I tried with -mthumb (which leads to "conftest.c:14:1: sorry, unimplemented: Thumb-1 hard-float VFP ABI")
and with -nostartfiles (which lets assembly work for this file but doesn't work on the next one (../ports/sysdeps/unix/sysv/linux/arm/libc-do-syscall.S)

The complete build logs can be found here:
https://scriptreactor.com/rpi1-fixup-error.build.log
https://scriptreactor.com/rpi1-fixup-error-nostartfiles.build.log (with -nostartfiles)

Any idea on what could be tried next?

Xcode version: 8.2.1 (8C1002)
maxOS version: 10.12.3 (16D32)
crosstool-ng installed via "brew install crosstool-ng --with-grep"

Thanks for any input!

Etan






Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]