From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 72587 invoked by alias); 19 May 2016 07:15:43 -0000 Mailing-List: contact crossgcc-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: crossgcc-owner@sourceware.org Received: (qmail 72571 invoked by uid 89); 19 May 2016 07:15:41 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-0.1 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,SPF_PASS autolearn=ham version=3.3.2 spammy=D*att.net, Hx-languages-length:5063, vido X-HELO: mail-lf0-f52.google.com Received: from mail-lf0-f52.google.com (HELO mail-lf0-f52.google.com) (209.85.215.52) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-GCM-SHA256 encrypted) ESMTPS; Thu, 19 May 2016 07:15:40 +0000 Received: by mail-lf0-f52.google.com with SMTP id y84so30317965lfc.0 for ; Thu, 19 May 2016 00:15:39 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=by0S1/QY8k1FAjyZF7rwRerSAhReqBnKkv7XszUYO30=; b=eYsksNz9a/L8I0JgS6Up53KtlQutp+aqDQAP9nACDj268mZpdUQFDMXg3M2BGH7tFG 7FghIAc7VZZ6l63i6UN/OEwAil2NTW+r5z1iTCSyPRkVjCRfFdTRt0IDkS4l+DmlemlJ 8Eemficep56u2wMZ25wi+XUzcYI0Q8nHIvw+lQCUhY/HbSKvjIHD8Oo4eYG9LdP3Yh9K G37iurJ0DUF1fhI2Smkx10gtii/5eM+T+Wkfv8lu9Ky38ay0PbZJcAVp77UdhWVOhw1e c4e7VSycfLXOIXFi6yvtbS/pO55b5ogCtO6cijE8vJtACEES1rfcRyRO3jkQFtUksOT5 2mdg== X-Gm-Message-State: AOPr4FXy9iLPyA94XbnAeoqseXv4vHLiEJvKeXkdpFWzPKJHAM8JTAznw9IbyfGkmAOmEjepv6nMh5/NcVjjdQ== X-Received: by 10.25.39.73 with SMTP id n70mr4011583lfn.91.1463642136605; Thu, 19 May 2016 00:15:36 -0700 (PDT) MIME-Version: 1.0 Received: by 10.25.154.7 with HTTP; Thu, 19 May 2016 00:15:16 -0700 (PDT) In-Reply-To: <573D596D.9020505@att.net> References: <7AA25A17-BFDC-4C29-835B-254A908C8288@gmail.com> <06BBAE1D-12F6-4756-8811-6E728E036599@gmail.com> <573D4734.60909@att.net> <573D596D.9020505@att.net> From: Thomas De Schampheleire Date: Thu, 19 May 2016 07:15:00 -0000 Message-ID: Subject: Re: Current state of multilib support (powerpc) To: Alexey Neyman Cc: Cody P Schafer , "Yann E. MORIN" , Ray Donnelly , crossgcc maillist , Bryan Hundven Content-Type: text/plain; charset=UTF-8 X-IsSubscribed: yes X-SW-Source: 2016-05/txt/msg00012.txt.bz2 On Thu, May 19, 2016 at 8:13 AM, Alexey Neyman 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