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] |
On Thu, May 19, 2016 at 8:13 AM, Alexey Neyman <stilor@att.net> wrote: [..] >>>> >>>> I created a toolchain based on that PR with the following configuration: >>>> >>>> CT_PREFIX_DIR="${CT_TOP_DIR}/targets/${CT_TARGET}" >>>> CT_ARCH_CPU="e6500" >>>> CT_ARCH_64=y >>>> CT_ARCH_powerpc=y >>>> CT_MULTILIB=y >>>> CT_KERNEL_linux=y >>>> CT_KERNEL_V_3_18=y >>>> >>>> CT_BINUTILS_EXTRA_CONFIG_ARRAY="--enable-targets=powerpc-linux,powerpc64-linux" >>>> CT_CC_GCC_V_4_9_3=y >>>> >>>> CT_CC_GCC_CORE_EXTRA_CONFIG_ARRAY="--enable-targets=powerpc-linux,powerpc64-linux" >>>> >>>> CT_CC_GCC_EXTRA_CONFIG_ARRAY="--enable-targets=powerpc-linux,powerpc64-linux" >>>> CT_CC_GCC_MULTILIB_LIST="powerpc-linux,powerpc64-linux" >>>> CT_CC_LANG_CXX=y >>>> >>>> The idea is that 32-bit should be the default, without requiring >>>> additional options on the compiler command-line. >>>> >>>> When passing this toolchain to buildroot, applications seems to build >>>> fine in 32-bit (I did not try to run them yet). >>>> The kernel is also correctly built in 64-bit. >>>> However, there is something wrong for u-boot. I get errors like: >> >> The fact that both 32- and 64-bit applications compile fine indicate that >> gcc indeed is passing the options to ld correctly. I tried building a simple >> app in 32- and 64-bit modes, with -v, and the output shows that in 64-bit >> mode, -m64 is added to the arguments - as expected. >> >>>> >>>> /foo/output/host/usr/bin/powerpc64-unknown-linux-gnu-ld.bfd: >>>> Relocatable linking with relocations from format elf32-powerpc >>>> (arch/powerpc/cpu/mpc8xxx/cpu.o) to format elf64-powerpc >>>> (arch/powerpc/cpu/mpc8xxx/built-in.o) is not supported >> >> Which target are you building? I tried some random powerpc target >> (xpedite517x_defconfig) and the build failed due to some invalid assembly >> but went past mpc8xxx/built-in.o: >> >> CC arch/powerpc/cpu/mpc8xxx/cpu.o >> CC arch/powerpc/cpu/mpc8xxx/fdt.o >> CC arch/powerpc/cpu/mpc8xxx/fsl_lbc.o >> CC arch/powerpc/cpu/mpc8xxx/law.o >> LD arch/powerpc/cpu/mpc8xxx/built-in.o >> LD arch/powerpc/cpu/built-in.o >> AS arch/powerpc/cpu/mpc86xx/cache.o >> CC arch/powerpc/cpu/mpc86xx/cpu.o >> CC arch/powerpc/cpu/mpc86xx/cpu_init.o >> CC arch/powerpc/cpu/mpc86xx/fdt.o >> CC arch/powerpc/cpu/mpc86xx/interrupts.o >> CC arch/powerpc/cpu/mpc86xx/mpc8641_serdes.o >> CC arch/powerpc/cpu/mpc86xx/speed.o >> LD arch/powerpc/cpu/mpc86xx/built-in.o >> AS arch/powerpc/cpu/mpc86xx/start.o >> arch/powerpc/cpu/mpc86xx/start.S: Assembler messages: >> arch/powerpc/cpu/mpc86xx/start.S:466: Error: missing operand >> >> Hard to say what went wrong without the name of the target that failed for >> you. It looks, however, like U-Boot's build system expects binutils/gcc to >> default to exact CPU for the target - not surprising given the variety of >> PowerPC assembly dialects... >> > > The target is a custom board not available in upstream uboot. It is based on > Freescale T2080. I don't have the repo at hand, I can check later if there > is a similar upstream target that shows the same problem... > > If you cannot find a similar board, at least capture the commands that > compiled the objects that went into linking, and the link command itself. > With a bit of luck that may be sufficient to reproduce the issue :) > I can reproduce the issue with the upstream config called 'T2080RDB'. Excerpt from the log: /foo/output/host/usr/bin/powerpc64-unknown-linux-gnu-gcc -Wp,-MD,board/freescale/common/.fman.o.d -nostdinc -isystem /foo/output/host/opt/ext-toolchain/bin/../lib/gcc/powerpc64-unknown-linux-gnu/4.9.3/include -Iinclude -I./arch/powerpc/include -I./board/isam_common -I./board/freescale/t208xrdb -include ./include/linux/kconfig.h -D__KERNEL__ -D__UBOOT__ -DCONFIG_SYS_TEXT_BASE=0xeff40000 -Wall -Wstrict-prototypes -Wno-format-security -fno-builtin -ffreestanding -Os -fno-stack-protector -g -fstack-usage -Wno-format-nonliteral -Werror=date-time -D__powerpc__ -ffixed-r2 -Wa,-me500 -msoft-float -mno-string -fno-delete-null-pointer-checks -mno-spe -fpic -mrelocatable -ffunction-sections -fdata-sections -meabi -pipe -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(fman)" -D"KBUILD_MODNAME=KBUILD_STR(fman)" -c -o board/freescale/common/fman.o board/freescale/common/fman.c /foo/output/host/usr/bin/powerpc64-unknown-linux-gnu-ld.bfd -n -r -o board/freescale/common/built-in.o board/freescale/common/fman.o board/freescale/common/vid.o board/freescale/common/sys_eeprom.o /foo/output/host/usr/bin/powerpc64-unknown-linux-gnu-ld.bfd: Relocatable linking with relocations from format elf32-powerpc (board/freescale/common/fman.o) to format elf64-powerpc (board/freescale/common/built-in.o) is not supported s Be aware that I'm building with Buildroot, meaning that the compiler (not linker) is wrapped. When calling that wrapper, the real compiler is called with following extra options: --sysroot' '/home/tdescham/repo/isam/buildroot-fantg/output/host/usr/powerpc-buildroot-linux-gnu/sysroot' '-mcpu=e6500' Thanks, Thomas -- For unsubscribe information see http://sourceware.org/lists.html#faq
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |