From owner-freebsd-arch@freebsd.org Tue Aug 13 20:49:25 2019 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 A560FBC3C4 for ; Tue, 13 Aug 2019 20:49:25 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from mailman.nyi.freebsd.org (unknown [127.0.1.3]) by mx1.freebsd.org (Postfix) with ESMTP id 467Pw53t5mz4MYp for ; Tue, 13 Aug 2019 20:49:25 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: by mailman.nyi.freebsd.org (Postfix) id 82FD2BC3C2; Tue, 13 Aug 2019 20:49:25 +0000 (UTC) Delivered-To: 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 82BD7BC3C1 for ; Tue, 13 Aug 2019 20:49:25 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from smtp.freebsd.org (smtp.freebsd.org [IPv6:2610:1c1:1:606c::24b:4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 467Pw52tKsz4MYn; Tue, 13 Aug 2019 20:49:25 +0000 (UTC) (envelope-from pfg@FreeBSD.org) Received: from [192.168.0.5] (unknown [181.52.72.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) (Authenticated sender: pfg) by smtp.freebsd.org (Postfix) with ESMTPSA id E8C1E1089C; Tue, 13 Aug 2019 20:49:24 +0000 (UTC) (envelope-from pfg@FreeBSD.org) To: Warner Losh Cc: "freebsd-arch@freebsd.org" From: Pedro Giffuni Subject: Re: Gcc 4.2.1 to be removed before FreeBSD 13, a firm timeline Organization: FreeBSD Message-ID: <542de336-f030-04f9-27d4-bebc96ab20fd@FreeBSD.org> Date: Tue, 13 Aug 2019 15:49:22 -0500 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:60.0) Gecko/20100101 Thunderbird/60.8.0 MIME-Version: 1.0 Content-Language: en-US Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit 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: Tue, 13 Aug 2019 20:49:25 -0000 > 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. Yes !! > 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 > > The basic notion is that it=E2=80=99s long past time to have a firm plan fo= > r EOL > gcc 4.2.1 in the tree. There is ample external toolchain support today for > platforms that need it to build images, though that integration with > buildworld could use some more polish. It=E2=80=99s now completely sufficie= > nt to > move to the next phase of removing gcc 4.2.1 from the tree. > snip ... all fine stuff ... > > Comments? I/we have a problem with libssp (part of gcclibs). Short story: I have tried to get rid of libssp twice, but I failed and would appreciate someone with more compiler foo looking at it: https://reviews.freebsd.org/D15687 Also PR 229348 Longer story: libssp was brought along with the stack-protector after similar code from NetBSD, however the stack protector code lives in our libc already (libc/secure/stack_protector.c). libssp is used to support FORTIFY_SOURCE, a feature which we never ported to FreeBSD and remains unused. FWIW, I mentored the implementation of FORTIFY_SOURCE in GSoC2015 but we only got it working fully with GCC 4.2.1: it is largely unsupported by clang and obsoleted by stack-protector-strong. NetBSD doesn't use the libssp included with GCC, they have their own BSD licensed version, however, given that we don't use it at all it doesn't make sense to import it. We should just get rid of it but the libary seems to have grown roots in the compiler toolchain and even when I am able to build world without it, and exp-run thinks the compiler is broken. Pedro.