From owner-freebsd-arch@freebsd.org Mon Jan 6 06:56:06 2020 Return-Path: Delivered-To: freebsd-arch@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 534101FAF2B for ; Mon, 6 Jan 2020 06:56:06 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: from mail-qk1-x732.google.com (mail-qk1-x732.google.com [IPv6:2607:f8b0:4864:20::732]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "GTS CA 1O1" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 47rmW93cHWz4KDd for ; Mon, 6 Jan 2020 06:56:05 +0000 (UTC) (envelope-from wlosh@bsdimp.com) Received: by mail-qk1-x732.google.com with SMTP id d71so30795880qkc.0 for ; Sun, 05 Jan 2020 22:56:05 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to; bh=i/TSFtWM1QLRY/Z0edJ/zmCQaBxlBnAAehxTW/AJ2f4=; b=ka8G3NJbmKJjJ1+16WyQoEKxV/bxkLvoBOhTcXoTV4wo9w85dLulfsthreb/Um1RsR /lWjku9U4PY+4qV2wl7zMCEb6oAEK/shYbhixIbF9HtW3EpFZ6PmbBgjDJHqkA6Aa8pY TQ9j1dLzZCLayxmLMFBZRKl3fDcxaRPpwT26Zf3YaMIbz+I9YGNBAxhAJ8uyw2zil8gz Ujcc7B5spO3M3cAXWn0hAnW6oQRrQBkrFM5BoC99UzjLoIoNzfN/fu+JpswuAxte8yfm 4gPcOv/ajmw/P7ETBO9K5Ou1DzQDMPSPlwm74TLLY2lFS2r5TQTv72jUda0dGnwyOWcw xjXw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=i/TSFtWM1QLRY/Z0edJ/zmCQaBxlBnAAehxTW/AJ2f4=; b=Wbs1hfuS3MgQD9+QelE3HFfbEJQxtFbl+4vgVL2h7mt7UViulE/c32SJEPP6q6rNIw Qqltu3hjCleZevIjaroCU/AOwT9q2M5hJd+m/Vm4wx03iwLUFCsYCzP+6sneG6TTLSY5 uN5nG3JAYTTr8vXpO4oi12MJLdQXJ/aMCxD+FXTtC6eyNgl375H2oBmSYmxvS4G02rBF feE0/+btKirOnzaU5MnC4J/Z30m5V4A6JC/BrzxyRJZuRlgmHxjtBLsuQIq2+aQTEKuw liknSVbUgGHxKtGIHgZ8zc1FWSN5UmFQ3Cou+xUTUloOaUuHix34+P1NiUni+jhdfL9+ AsTg== X-Gm-Message-State: APjAAAX03lqPn3ouR2G1JHGOUeZG8UX+EB+riW0YwWJrsyeuUOlbnftp QCJiiYwLfOSTeOS7gvy9/l1a1KfiqZxXUnAi/DV6pZ8s X-Google-Smtp-Source: APXvYqyp1e1m9g3Tog/yiaWYDE2zsnPNBvHGxxXlK7L5PdjhzqCsXTvoT1aeODbfK4rhC2FY8VLdIJuVVecNtGYGkGQ= X-Received: by 2002:a05:620a:795:: with SMTP id 21mr83071844qka.60.1578293763863; Sun, 05 Jan 2020 22:56:03 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: Warner Losh Date: Sun, 5 Jan 2020 23:55:52 -0700 Message-ID: Subject: Re: Gcc 4.2.1 to be removed before FreeBSD 13, a firm timeline To: "freebsd-arch@freebsd.org" X-Rspamd-Queue-Id: 47rmW93cHWz4KDd X-Spamd-Bar: ---- Authentication-Results: mx1.freebsd.org; dkim=pass header.d=bsdimp-com.20150623.gappssmtp.com header.s=20150623 header.b=ka8G3NJb; dmarc=none; spf=none (mx1.freebsd.org: domain of wlosh@bsdimp.com has no SPF policy when checking 2607:f8b0:4864:20::732) smtp.mailfrom=wlosh@bsdimp.com X-Spamd-Result: default: False [-4.68 / 15.00]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; R_DKIM_ALLOW(-0.20)[bsdimp-com.20150623.gappssmtp.com:s=20150623]; FROM_HAS_DN(0.00)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; MIME_GOOD(-0.10)[multipart/alternative,text/plain]; PREVIOUSLY_DELIVERED(0.00)[freebsd-arch@freebsd.org]; DMARC_NA(0.00)[bsdimp.com]; RCPT_COUNT_ONE(0.00)[1]; DKIM_TRACE(0.00)[bsdimp-com.20150623.gappssmtp.com:+]; RCVD_IN_DNSWL_NONE(0.00)[2.3.7.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.0.4.6.8.4.0.b.8.f.7.0.6.2.list.dnswl.org : 127.0.5.0]; TO_DN_EQ_ADDR_ALL(0.00)[]; R_SPF_NA(0.00)[]; FORGED_SENDER(0.30)[imp@bsdimp.com,wlosh@bsdimp.com]; MIME_TRACE(0.00)[0:+,1:+,2:~]; IP_SCORE(-2.68)[ip: (-9.36), ipnet: 2607:f8b0::/32(-2.13), asn: 15169(-1.86), country: US(-0.05)]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US]; FROM_NEQ_ENVFROM(0.00)[imp@bsdimp.com,wlosh@bsdimp.com]; RCVD_TLS_ALL(0.00)[]; RCVD_COUNT_TWO(0.00)[2] Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: freebsd-arch@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Discussion related to FreeBSD architecture List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Jan 2020 06:56:06 -0000 On Tue, Aug 13, 2019 at 10:00 AM Warner Losh wrote: > Greetings, > > As promised for almost the past decade or so, gcc 4.2.1 will be removed > from the tree before FreeBSD 13 is branched. > > I propose the following timeline for its removal: > > 2019-08-31: disconnect gcc 4.2.1 from CI build > > Turn off -Werror on gcc 4.2.1 platforms > > Turn off all gcc 4.2.1 from universe by default (can be turned on) > > 2019-12-31: Turn off gcc 4.2.1 build by default (can be turned on) > > 2020-03-31: svn rm gcc 4.2.1 and friends > > 2020-05-31: svn rm all non-clang platforms not supported by in-tree LLVM > or converted to ext toolchain. > > 2020-07-31: svn rm all ext toolchain platforms not supported by re@ > release scripts > OK. We're about half way through this and it's a good time to reevaluate the schedule. When we started this, all mips, all powerpc, some arm versions and sparc64 were the problem children that still required gcc 4.2.1 for various reasons. Since then, all the platforms except sparc64 have made excellent progress. Nothing non-trivial has been done for sparc64. None of the platforms, except sparc64, requires gcc 4.2.1 any more. There are issues here and there to sort out, but the list is massively reduced from when we started, and people are actively working on (or have credibly signed up to work on) everything in mips, arm, and powerpc land. We've learned many things we didn't know when we started, and some of those issues are still in flight. well done for all the hard work. sparc64 stands out as an outlier. No non-triival work has been done on it, as I've said. I think that unless there's some massive amount of work done on sparc64, in secret, it's time to just remove the port. It's been getting in the way of forward progress for a long time. It's time to admit there's no maintainer that's actively maintaining and remove it from the tree. In addition to not running on relevant sparc hardware, it's broken and a tax on all forward progress on kernel work that has a MD component to it. The many cries of 'I'll do something' over the past several years have resulted in no actual contributions. in-tree gcc 4.2.1 is also no longer required for forward progress on arm, mips, and powerpc. libunwind from gcc is still used by 32-bit arm, however, since the compiler_rt version is broken. So I'd like to propose we alter the above schedule in light of new information we gleaned from executing the first half of it. First, we schedule the removal of sparc64 for 2020-01-31. Nobody has done anything at all on it to date, making it a significant outlier when measured against the other architectures. It's pointless to wait another 4 months to remove it when there's no evidence to suggest there will be any work done on it. It's hindering some kernel work being done that has MD components, which means we should speed up its removal if truly nobody has the time to do the work needed to keep the port viable. Second, all other platforms still have the original deadlines to sort out the last lingering issues with the external toolchain and/or clang. mips is a bit up in the air right now since both the external toolchain and clang have issues (though different issues). powerpc 32-bit is sorting out issues as well. arm 32-bit still needs libunwind from gcc. An end of May deadline is ample time for works in progress to get to the point where everything boots and runs sufficiently well to show the platforms are still viable. Third, we should move up the removal of gcc 4.2.1 to 2020-02-29 as well, with a deadline of 2020-01-31 for someone to publish a github branch that removes gcc for wide-spread testing. An exception to the gcc rule should be made for libunwind until that can be sorted out. Fourth, we keep the deadline for release integration to external toolchain the same at 202-07-31. As far as I know, no work has begun on this, so we may need to reevaluate it again in 4 months after we've completed the transition on all the other tier 2 platforms. In summary: 2020-01-31: start removing sparc64 support from the tree gcc removal test tree published in github 2020-02-29: remove gcc, assuming no unexpected issues with its removal remain 2020-05-31: deadline for all other architectures to sort out the last remaining issues with external toolchain and/or clang and show multiuser booting 2020-07-31: deadline for the supporters of tier 2 architectures to get any changes in to the re@ release build process for those requiring external toolchain support An informal poll on IRC suggests there will be wide-spread support for these alterations to the schedule. This email casts a wider net to test the validity of that hypothesis. Comments? Warner