From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 104763 invoked by alias); 25 Jan 2018 21:18:52 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Received: (qmail 104747 invoked by uid 89); 25 Jan 2018 21:18:52 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-26.1 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,RCVD_IN_DNSWL_NONE,SPF_PASS,URIBL_RED autolearn=ham version=3.3.2 spammy=nonmultilib, non-multilib, HX-Received:sk:v191mr1, HX-Received:10.99.97.200 X-HELO: mail-pg0-f66.google.com X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:subject:in-reply-to:cc:from:to:message-id :mime-version:content-transfer-encoding; bh=iWjNG8+yphH0f5YHTzKz+cHCahgPddNVZo34Ekc6S4o=; b=Ej6oZ1hF562f/XJzIRQFgxFsEd0DoQrGOqDnqpP9+86d0w/oklgZX6IJ8WgUBWSelS xHZmU1YQmb/fwDL32H+NLTI01kzgJVLUspscu4BQb9RazMY/P76387dU6vmOr3ha5HP2 safP8nyJ4as+EkLfKcjW111/Bi0siOEO23EIrmtyjtk4AVEKv/pHVMsRiGYSgq/HmEAM 5Cy8QMDRf5ipG7V62EIXVyWLYo7yTHgre6Dt/HQPIrLZrXou5DeA0HsJizr6t9BDHZyV 9Yi7cmW7z2FtQjwyF7yf7gW65A0qB3eJ0q6P+QSLedNbURa1rohIQfSqQ3PuwEwMtouK JyKA== X-Gm-Message-State: AKwxyte3bC6J6Xt+PrsvVTph0QtyJJqBCkdv1I4IkeQN4DU2VS7vfdNl B5EhyZhKatX4b4A3ICKR29Rsh/YHZAY= X-Google-Smtp-Source: AH8x2278o9LhiiorkltCnDQOwAs5S01lQ3MmnRlbwfXWE0vS4HLPKSwFlVSUrC1EJ959xF22lBzpXA== X-Received: by 10.99.97.200 with SMTP id v191mr14343545pgb.121.1516915128710; Thu, 25 Jan 2018 13:18:48 -0800 (PST) Date: Thu, 25 Jan 2018 21:18:00 -0000 X-Google-Original-Date: Thu, 25 Jan 2018 13:13:24 PST (-0800) Subject: Re: [PATCH 17/17] Add RISC-V to build-many-glibcs.py In-Reply-To: CC: libc-alpha@sourceware.org, Andrew Waterman , Darius Rad , dj@redhat.com, patches@groups.riscv.org From: Palmer Dabbelt To: joseph@codesourcery.com Message-ID: Mime-Version: 1.0 (MHng) Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit X-SW-Source: 2018-01/txt/msg00862.txt.bz2 On Thu, 25 Jan 2018 09:42:20 PST (-0800), joseph@codesourcery.com wrote: > On Wed, 24 Jan 2018, Palmer Dabbelt wrote: > >> diff --git a/scripts/build-many-glibcs.py b/scripts/build-many-glibcs.py >> index 28c04e66fd52..e3113599beb1 100755 >> --- a/scripts/build-many-glibcs.py >> +++ b/scripts/build-many-glibcs.py >> @@ -329,6 +329,12 @@ class Context(object): >> os_name='linux-gnuspe', >> variant='e500v1', >> gcc_cfg=['--disable-multilib', '--enable-secureplt']) >> + self.add_config(arch='riscv64', >> + os_name='linux-gnu', >> + glibcs=[{'variant': 'rv64imafdc-lp64d', >> + 'ccopts': '-march=rv64imafdc -mabi=lp64d'}, >> + {'variant': 'rv64imac-lp64', >> + 'ccopts': '-march=rv64imac -mabi=lp64'}]) > > Are you sure this actually works with this version of the port, and > current upstream GCC? > > In patch 16, in this version of the port, the preconfigure script > disallows soft-float, "glibc does not yet support systems without the F > extension". Apart from a few other places in the port with soft-float > support (again, the port should be consistent about what is or is not > supported - either have the soft-float support, or not include the code at > all because it can't be tested - of course most places are actually > testing for the ABI, but it seems there are a few testing __riscv_flen), > as I understand it -march=rv64imac means soft-float so wouldn't build > given patch 16. *And* GCC's t-linux-multilib looks like it expects both > 32-bit and 64-bit, hard-float and soft-float ABI multilibs: > > MULTILIB_REQUIRED = march=rv32imac/mabi=ilp32 \ > march=rv32imafdc/mabi=ilp32d \ > march=rv64imac/mabi=lp64 \ > march=rv64imafdc/mabi=lp64d > > So I'd expect the second GCC build to run into problems when only RV64 > multilibs of glibc but not RV32 ones have been built, because it would try > to build the RV32 shared libraries of libgcc, libstdc++ etc., which depend > on glibc having been built. Sorry, I think I got my signals crossed and didn't get the patches that dropped the various bits of support onto the machine that was running build-many-glibcs.py. I'm going to add three (or two, if the soft float doesn't make it in time) non-multilib targets that will look something like this: self.add_config(arch='riscv64', os_name='linux-gnu', variant='rv64imac-lp64', gcc_cfg=['--with-arch=rv64imac', '--with-abi=lp64', '--disable-multilib']) self.add_config(arch='riscv64', os_name='linux-gnu', variant='rv64imafdc-lp64', gcc_cfg=['--with-arch=rv64imafdc', '--with-abi=lp64', '--disable-multilib']) self.add_config(arch='riscv64', os_name='linux-gnu', variant='rv64imafdc-lp64d', gcc_cfg=['--with-arch=rv64imafdc', '--with-abi=lp64d', '--disable-multilib'])