From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 102157 invoked by alias); 23 Jan 2017 17:18:36 -0000 Mailing-List: contact gcc-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-owner@gcc.gnu.org Received: (qmail 101852 invoked by uid 89); 23 Jan 2017 17:18:35 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.5 required=5.0 tests=AWL,BAYES_50,RP_MATCHES_RCVD autolearn=ham version=3.3.2 spammy=gcc-git, sebastian_h, gccgit, 8873 X-HELO: gate.crashing.org Received: from gate.crashing.org (HELO gate.crashing.org) (63.228.1.57) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Mon, 23 Jan 2017 17:18:31 +0000 Received: from gate.crashing.org (localhost.localdomain [127.0.0.1]) by gate.crashing.org (8.14.1/8.13.8) with ESMTP id v0NHIOjb006654; Mon, 23 Jan 2017 11:18:25 -0600 Received: (from segher@localhost) by gate.crashing.org (8.14.1/8.14.1/Submit) id v0NHIOT6006652; Mon, 23 Jan 2017 11:18:24 -0600 Date: Mon, 23 Jan 2017 17:18:00 -0000 From: Segher Boessenkool To: Sebastian Huber Cc: GCC Development Subject: Re: How to configure a bi-arch PowerPC GCC? Message-ID: <20170123171823.GF30284@gate.crashing.org> References: <5880B3FD.2030605@embedded-brains.de> <20170120010404.GW30284@gate.crashing.org> <5881BDB2.3050505@embedded-brains.de> <20170121004635.GB30284@gate.crashing.org> <5885BC78.8010804@embedded-brains.de> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <5885BC78.8010804@embedded-brains.de> User-Agent: Mutt/1.4.2.3i X-IsSubscribed: yes X-SW-Source: 2017-01/txt/msg00211.txt.bz2 Hello again, On Mon, Jan 23, 2017 at 09:19:04AM +0100, Sebastian Huber wrote: > >>I am flexible in terms of the ABI choice for the 64-bit PowerPC. I guess > >>the ABI_ELFv2 is the way to go? > >It certainly is the most modern ABI. It makes some requirements to what > >Power ISA features are required, which may or may not be a problem for > >your platform. If you want to use BE, that should work with ELFv2 fine > >(and it did in the past at least), but it doesn't get serious testing. > > I use now the attached patch and get the following error types (for > several multilibs): > /home/EB/sebastian_h/archive/gcc-git/libgcc/config/rs6000/ibm-ldouble.c:374:0: > /home/EB/sebastian_h/archive/gcc-git/libgcc/soft-fp/quad.h:72:1: error: > unable to emulate 'TF' > typedef float TFtype __attribute__ ((mode (TF))); > ^~~~~~~ >From rs6000.c (rs6000_scalar_mode_supported_p): else if (TARGET_FLOAT128_TYPE && (mode == KFmode || mode == IFmode)) return true; else return default_scalar_mode_supported_p (mode); and the latter has if (precision == LONG_DOUBLE_TYPE_SIZE) return true; return false; so you have no 128-bit FP type at all. Maybe your TARGET_IEEEQUAD definition is wrong, maybe something else... What type *do* you want for float128? > /home/EB/sebastian_h/archive/gcc-git/libgcc/unwind-dw2-fde.c: In > function 'search_object': > /home/EB/sebastian_h/archive/gcc-git/libgcc/unwind-dw2-fde.c:588:25: > internal compiler error: in emit_move_insn, at expr.c:3698 > v1->array[i1+i2] = v1->array[i1-1]; > ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~ > 0x6c49bb emit_move_insn(rtx_def*, rtx_def*) > /home/EB/sebastian_h/archive/gcc-git/gcc/expr.c:3697 > 0x6a5c2b force_reg > /home/EB/sebastian_h/archive/gcc-git/gcc/explow.c:648 > 0xd61994 rs6000_legitimize_address > /home/EB/sebastian_h/archive/gcc-git/gcc/config/rs6000/rs6000.c:8873 rs6000_legitimize_address called force_reg which ICEs in emit_move_insn because the source is not the same mode as the dest (or an immediate, etc.) You'll have to debug this a bit more to see what is going on. > /home/EB/sebastian_h/archive/gcc-git/libgcc/emutls.c:171:13: note: > include '' or provide a declaration of 'realloc' > /tmp/ccoZ1J0W.s: Assembler messages: > /tmp/ccoZ1J0W.s:125: Error: can't resolve `.got' {.got section} - > `.LCTOC1' {*UND* section} Your TLS is misconfigured. Or something. > --- a/gcc/config.gcc > +++ b/gcc/config.gcc > @@ -2381,7 +2381,7 @@ powerpc-*-eabi*) > use_gcc_stdint=wrap > ;; > powerpc-*-rtems*) > - tm_file="${tm_file} dbxelf.h elfos.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h rs6000/e500.h rs6000/rtems.h rtems.h" > + tm_file="rs6000/biarch64.h ${tm_file} dbxelf.h elfos.h freebsd-spec.h newlib-stdint.h rs6000/sysv4.h rs6000/eabi.h rs6000/e500.h rs6000/rtems.h rtems.h" > extra_options="${extra_options} rs6000/sysv4.opt" > tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-rtems rs6000/t-ppccomm" > ;; You might want to break this line into parts. It isn't so easy to see what you changed now :-) Have you checked if your generated files (say, those in libgcc) are actually ELFv2 now, and if they look correct? Segher