From owner-freebsd-ports@freebsd.org Sun May 19 17:48:22 2019 Return-Path: Delivered-To: freebsd-ports@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 01C8015B3CE8 for ; Sun, 19 May 2019 17:48:22 +0000 (UTC) (envelope-from james@opentech.cc) Received: from NAM05-DM3-obe.outbound.protection.outlook.com (mail-eopbgr730074.outbound.protection.outlook.com [40.107.73.74]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (Client CN "mail.protection.outlook.com", Issuer "GlobalSign Organization Validation CA - SHA256 - G3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 556516DF8A; Sun, 19 May 2019 17:48:19 +0000 (UTC) (envelope-from james@opentech.cc) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=opentech.cc; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Hf+8zeSmF4QSGEjNnPIBfXOu+YiHd+usOFHjN79QdvI=; b=V4GoQX6FyJ1uyOtNpATnyLlyAizXaVsoP9aF1DQpiOv1XQCN/AAD9fW8eNV806ihMqa/7K6CaEwdx/hdOoCaqVXDDB9gy+uiH3B06ol+jfk1bkOG/RTEOYCuicrIfYAUHzOnSJhAULDrB0TEsVp50tWfGUZ4fpDYF3oV6CbcVPM= Received: from BN7PR06MB5187.namprd06.prod.outlook.com (20.176.29.18) by BN7PR06MB3810.namprd06.prod.outlook.com (52.132.217.13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1900.18; Sun, 19 May 2019 17:48:15 +0000 Received: from BN7PR06MB5187.namprd06.prod.outlook.com ([fe80::3934:1ed8:5f2e:1d6f]) by BN7PR06MB5187.namprd06.prod.outlook.com ([fe80::3934:1ed8:5f2e:1d6f%5]) with mapi id 15.20.1900.020; Sun, 19 May 2019 17:48:15 +0000 From: James Shuriff To: Mark Millard CC: ports-list freebsd , "bapt@FreeBSD.org" , "jhb@FreeBSD.org" Subject: RE: maintenance of gcc cross ports Thread-Topic: maintenance of gcc cross ports Thread-Index: AQHVDgRVF2udLzIfIU+R3HV1UCe6f6ZyehpwgAAd3YCAABCVcA== Date: Sun, 19 May 2019 17:48:14 +0000 Message-ID: References: <0BDF4BD8-EF07-4226-A2BA-4ACE476CD6FC@yahoo.com> <2A90CC78-117B-4988-9022-1687872B6C59@yahoo.com> In-Reply-To: <2A90CC78-117B-4988-9022-1687872B6C59@yahoo.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [71.251.5.193] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 5f68e9ad-a225-467a-b7e7-08d6dc822b7a x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(7021145)(8989299)(4534185)(7022145)(4603075)(4627221)(201702281549075)(8990200)(7048125)(7024125)(7027125)(7023125)(5600141)(711020)(4605104)(2017052603328)(7193020); SRVR:BN7PR06MB3810; x-ms-traffictypediagnostic: BN7PR06MB3810: x-ms-exchange-purlcount: 1 x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:3631; x-forefront-prvs: 00429279BA x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(366004)(39830400003)(376002)(346002)(396003)(136003)(199004)(189003)(13464003)(51914003)(38564003)(3846002)(53546011)(71190400001)(6116002)(6436002)(508600001)(6506007)(102836004)(54906003)(7696005)(71200400001)(4326008)(52536014)(76176011)(9686003)(66446008)(5660300002)(316002)(66476007)(76116006)(66066001)(5024004)(73956011)(66946007)(68736007)(6916009)(64756008)(66556008)(14444005)(256004)(6306002)(966005)(55016002)(99286004)(33656002)(186003)(26005)(2906002)(6246003)(11346002)(446003)(14454004)(74316002)(74482002)(8936002)(7736002)(81166006)(305945005)(229853002)(476003)(81156014)(53936002)(25786009)(8676002)(86362001)(486006); DIR:OUT; SFP:1101; SCL:1; SRVR:BN7PR06MB3810; H:BN7PR06MB5187.namprd06.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: opentech.cc does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: ayn2fDNkUIg8xcAtNJY2KNcgxmMLXHksyYathASrlHIRv/KWCDihxlnU469VKEK3WL1It1DQy3BHddK7e418mDTswlGHyCkS5ptuyx5Gue+/7WmSzoCD/hsx8HTypCJTnR7N8TEnVwkUUtad2nEq+PwGrr3epHKEBCxmPDXr2hs5r7ojScW7qyk1gD6oAYCi/+oMo3VmrjRD21PAYDoycsnj4cAbKO/pgpqrDt7gEzje7mKVxPlPTflx7Pv534wZpmpznvCekrTHESv+VaIC0i69OkyExAN4Wr3VLWkKAK4A+2cz/uHlJG+hWrnatXhmgOlgLFO10OoOANidlnnQ4OOcr5SEabv5v7GPuA/lQ1AS7UvdpWyWuIlHN5Cl26hQU1fmN9XIA1NiMlXjc1ngLtFlVTlw+QYL30bjKDZJy+E= Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: opentech.cc X-MS-Exchange-CrossTenant-Network-Message-Id: 5f68e9ad-a225-467a-b7e7-08d6dc822b7a X-MS-Exchange-CrossTenant-originalarrivaltime: 19 May 2019 17:48:15.0876 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 5c5dd5ac-929c-48f6-a3f4-c0c8602c24af X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN7PR06MB3810 X-Rspamd-Queue-Id: 556516DF8A X-Spamd-Bar: - Authentication-Results: mx1.freebsd.org; dkim=pass header.d=opentech.cc header.s=selector1 header.b=V4GoQX6F; spf=pass (mx1.freebsd.org: domain of james@opentech.cc designates 40.107.73.74 as permitted sender) smtp.mailfrom=james@opentech.cc X-Spamd-Result: default: False [-1.97 / 15.00]; ARC_NA(0.00)[]; TO_DN_EQ_ADDR_SOME(0.00)[]; R_DKIM_ALLOW(-0.20)[opentech.cc:s=selector1]; HAS_XOIP(0.00)[]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[4]; R_SPF_ALLOW(-0.20)[+ip4:40.107.0.0/16]; NEURAL_HAM_LONG(-1.00)[-0.996,0]; MIME_GOOD(-0.10)[text/plain]; DMARC_NA(0.00)[opentech.cc]; NEURAL_HAM_MEDIUM(-0.97)[-0.968,0]; TO_DN_SOME(0.00)[]; NEURAL_SPAM_SHORT(0.50)[0.499,0]; RCVD_COUNT_THREE(0.00)[3]; TO_MATCH_ENVRCPT_SOME(0.00)[]; DKIM_TRACE(0.00)[opentech.cc:+]; MX_GOOD(-0.01)[cached: opentech-cc.mail.protection.outlook.com]; RCVD_IN_DNSWL_NONE(0.00)[74.73.107.40.list.dnswl.org : 127.0.3.0]; FREEMAIL_TO(0.00)[yahoo.com]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+]; RCVD_TLS_LAST(0.00)[] X-BeenThere: freebsd-ports@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Porting software to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 19 May 2019 17:48:22 -0000 I have a Raspberry Pi 3 model b. I use the LLVM toolchain to build the syst= em but the GNU toolchain is required to build U-Boot. U-Boot uses global re= gister variables and LLVM doesn't support this. sysutils/u-boot-pine64 does= use aarch64-none-elf-gcc, for the same reason. The family is allwinner64 a= nd that's set to use aarch64-none-elf-gcc. Here is an article explaining th= e feature U-Boot uses that's not in LLVM (the reason GNU is required for bu= ilding it): https://gcc.gnu.org/onlinedocs/gcc/Global-Register-Variables.html Aarch64 is a Tier 2 architecture. The toolchain should have an active maint= ainer (the maintainer is listed as ports@FreeBSD.org). I've opened a bug re= port for the bugs in the Makefile. We should be using a newer toolchain or = separate arm-none-eabi and aarch64-none-elf from powerpc64. I am guessing t= he Makefile bugs occurred because the original designer didn't intend on po= werpc64-gcc being used for targets like arm-none-eabi and aarch64-none-elf.= The patches you pointed out before don't even have any effect on the bare = metal ports. The arm and aarch64 bare metal ports are the oddballs in the g= roup. The difference being: powerpc64-gcc, aarch64-gcc, amd64-gcc, i386-gcc= , mips*-gcc, and sparc64-gcc are all intended for, as you said Mark, altern= ate toolchain work with FreeBSD. These are not the official toolchains for = FreeBSD and I can see why they don't have the same level of care as the off= icial toolchain. But the side effect of this is arm-none-eabi-gcc and aarch= 64-none-elf-gcc receive the same level of support, though they are *require= d* to build most FreeBSD systems on those platforms. - James Shuriff -----Original Message----- From: Mark Millard Sent: Sunday, May 19, 2019 11:46 AM To: James Shuriff Cc: ports-list freebsd ; bapt@FreeBSD.org; jhb@F= reeBSD.org Subject: Re: maintenance of gcc cross ports On 2019-May-19, at 07:40, James Shuriff wrote: > I didn't/don't plan on touching binutils. Binutils is okay. I made new pa= tches as well. What I'm really concerned with bringing up to date is aarch6= 4-none-elf-gcc. > The GNU toolchain is unfortunately required for building an Aarch64 > system Are you specifically referencing contexts that need to build u-boot? (My gu= ess is: yes.) I've done buildworld buildkernel based on system clang and lld many times i= n the past, though not very recently. (I currently do not have access to th= e environment but will again, eventually.) For aarch64 I'd mostly recently built for and used: A) a Pine64+ 2GB (needs: sysutils/u-boot-pine64 ) B) an OverDrive 1000 (no u-boot build needed) I've done amd64->aarch64 cross builds and self hosted ones for/on such. The= OverDrive 1000 builds did not involve devel/aarch64-none-elf-gcc at all as= far as I can remember. > and is a prereq for a bunch of sysutils arm ports. Yep. Are there sysutils/u-boot-* 's that no longer build under gcc 6.4.0? Other things? > At worst we can do something like what's done with the lang ports gcc6, g= cc7, gcc8. I've CC'd the maintainers so hopefully they can give us some inp= ut and we can come up with a solution. > > As for Makefile issues, this is only an issue for the arm-none-eabi-gcc a= nd aarch64-none-elf-gcc ports because they have multiple hyphens. It's most= ly a cosmetic issue. Each port has its own plist because gcc generates diff= erent headers depending on the platform so the PLIST TARGETARCH regex doesn= 't really affect all that much. There are some clang flags dependent on TAR= GETARCH but whoever wrote the aarch64-none-elf-gcc port must have known it = wasn't working in the master because the check is in the bare metal port as= well. The stripping out of all hyphens causes things like "gcc version 6.4= .0 (FreeBSD Ports Collection for aarch64noneelf)". I use ${PKGNAMEPREFIX:C/= -$//} for the comment and version and ${PKGNAMEPREFIX:C/-.*//} for TARGETAR= CH. The original regex for all of those is ${PKGNAMEPREFIX:C/-//g} and I'm = sure you can see how that's a problem when there's multiple hyphens. Thanks for the notes. > - James Shuriff > > -----Original Message----- > From: Mark Millard > Sent: Sunday, May 19, 2019 1:33 AM > To: James Shuriff ; ports-list freebsd > > Subject: Re: maintenance of gcc cross ports > > James Shuriff james at opentech.cc wrote on Sat May 18 12:29:22 UTC 2019 = : > >> The powerpc64-gcc port and all the ports that use it as a master (aarch6= 4-gcc, aarch64-none-elf-gcc, amd64-gcc, arm-none-eabi-gcc, i386-gcc, mips-g= cc, mips64-gcc, and sparc64-gcc) are very old and use buggy makefiles. I wo= uld like to take over maintenance of these ports. Powerpc64-gcc uses an old= version of gcc and the makefile is buggy. Certain variables use bad regula= r expressions thus don't do what they're supposed to do. I've fixed up the = makefiles and made new plists with a newer version of gcc. > > Be aware that: > > /[ports]/head/base/binutils depends on devel/binutils via: > > MASTERDIR=3D${.CURDIR}/../../devel/binutils > > /[ports]/head/base/gcc depends on devel/powerpc64-gcc via: > > EXTRA_PATCHES+=3D > ${.CURDIR}/../../devel/powerpc64-gcc/files/freebsd-format-extensions > EXTRA_PATCHES+=3D > ${.CURDIR}/../../devel/powerpc64-gcc/files/freebsd-libdir > EXTRA_PATCHES+=3D > ${.CURDIR}/../../devel/powerpc64-gcc/files/patch-gcc-freebsd-mips > > The maintainer is listed as: bapt@FreeBSD.org but the activity tends to b= e jhb@FreeBSD.org . There are other, more overall FreeBSD toolchain efforts= that these various ports are tied to. That may constrain what can be done = when. You would probably need to consult with these folks about any changes= . > > I use these ports for doing alternate toolchain buildworld buildkernel ac= tivities, including using, say, devel/powerpc64-gcc on a powerpc64 machine = to self host with more modern tools than gcc 4.2.1 based ones. > As I understand, being in devel/ instead of lang/ for gcc tools is tied t= o being constructed for the system-building activities instead of for gener= al use. > > You might want to show your Makefile updates so that that the problems ar= e fully explicit. > =3D=3D=3D Mark Millard marklmi at yahoo.com ( dsl-only.net went away in early 2018-Mar) ________________________________ DISCLAIMER: This message and any attachments are intended solely for the u= se of the recipient and may contain confidential information. If you have r= eceived this message in error please delete it and promptly notify the send= er, James Shuriff (james@opentech.cc).