From owner-freebsd-ports@freebsd.org Sun May 10 14:55:24 2020 Return-Path: Delivered-To: freebsd-ports@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 D5FDB2E993F; Sun, 10 May 2020 14:55:24 +0000 (UTC) (envelope-from carpeddiem@gmail.com) Received: from mail-il1-f177.google.com (mail-il1-f177.google.com [209.85.166.177]) (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 49KnDW58nWz4HMG; Sun, 10 May 2020 14:55:23 +0000 (UTC) (envelope-from carpeddiem@gmail.com) Received: by mail-il1-f177.google.com with SMTP id x2so6001728ilp.13; Sun, 10 May 2020 07:55:23 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=cvoN9VjTXi4D2Mt2zCUU7BMhhgsVaYhoQxSpmGDoVas=; b=cif8GBHTWYVckEugdqUch9y8lUju83MIqzjBBucnjMv4f3ihvjm31ElSoicf8VWUMF mi9lxZycY0S0I1vG7Q0Rd+bYHyP8hHROF8b0COsDUHGKHZNK23q64SVmfj73nbXLKRp0 WwsegMsaD59yT+LJ+VFq8sxvJOYhoPpJz6WQTRbngTe+SWk04rvV44DElrHSZzm3XXeR lYLujiidC4Mo5XH+Ff20Kd7xs2Tsj82H6okoTy3J1vrBmWJo4OHBfgONiGqqG91W9DC0 paWkrxY5gAuaKLAuQUwRSxrUWiaQLDx8iGPbj6/RxE910oRpCp5s3907j2AEEDYQCtue z1ag== X-Gm-Message-State: AGi0PuYPxNo1KRXIHZlEkkuJcJWBOBcoAtns10pJOQnPiB36yrhaRA91 7pbaRKWs+rsvr/mxyyoY5vlPbX6188OCYhIC5O3nmZXSRgg= X-Google-Smtp-Source: APiQypKcK0215EOluJHdlVCMp0syIfOGyasSk6y+f4ZuzYngHB5JZsWKrFpHp9q0Djqc4WYLIl46eTyIXeiyOw5832o= X-Received: by 2002:a05:6e02:141:: with SMTP id j1mr12622288ilr.100.1589122521378; Sun, 10 May 2020 07:55:21 -0700 (PDT) MIME-Version: 1.0 From: Ed Maste Date: Sun, 10 May 2020 10:55:10 -0400 Message-ID: Subject: HEADS-UP: obsolete GNU as 2.17.50 retirement for FreeBSD 13, expected 2020-05-31 To: FreeBSD Ports , FreeBSD Current Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: 49KnDW58nWz4HMG X-Spamd-Bar: --- Authentication-Results: mx1.freebsd.org; dkim=none; dmarc=none; spf=pass (mx1.freebsd.org: domain of carpeddiem@gmail.com designates 209.85.166.177 as permitted sender) smtp.mailfrom=carpeddiem@gmail.com X-Spamd-Result: default: False [-3.53 / 15.00]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; RCVD_TLS_ALL(0.00)[]; FROM_HAS_DN(0.00)[]; R_SPF_ALLOW(-0.20)[+ip4:209.85.128.0/17]; TO_MATCH_ENVRCPT_ALL(0.00)[]; MIME_GOOD(-0.10)[text/plain]; DMARC_NA(0.00)[freebsd.org]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; IP_SCORE(-1.53)[ip: (-6.78), ipnet: 209.85.128.0/17(-0.39), asn: 15169(-0.43), country: US(-0.05)]; TO_DN_ALL(0.00)[]; RCPT_COUNT_TWO(0.00)[2]; RCVD_IN_DNSWL_NONE(0.00)[177.166.85.209.list.dnswl.org : 127.0.5.0]; FORGED_SENDER(0.30)[emaste@freebsd.org,carpeddiem@gmail.com]; RWL_MAILSPIKE_POSSIBLE(0.00)[177.166.85.209.rep.mailspike.net : 127.0.0.17]; MIME_TRACE(0.00)[0:+]; R_DKIM_NA(0.00)[]; FREEMAIL_ENVFROM(0.00)[gmail.com]; ASN(0.00)[asn:15169, ipnet:209.85.128.0/17, country:US]; FROM_NEQ_ENVFROM(0.00)[emaste@freebsd.org,carpeddiem@gmail.com]; RCVD_COUNT_TWO(0.00)[2] X-BeenThere: freebsd-ports@freebsd.org X-Mailman-Version: 2.1.33 Precedence: list List-Id: Porting software to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 10 May 2020 14:55:24 -0000 All architectures supported by FreeBSD now using Clang and lld, and tools from obsolete GNU binutils 2.17.50 have been retired one by one - most recently objdump, in r360698. There is one binutil tool left: GNU as. I plan to disable it at the end of the month, and then remove all of binutils some weeks later if no additional issues are found. We have two src.conf build knobs for as - WITH_BINUTILS, which determines whether /usr/bin/as exists in the built system, and WITH_BINUTILS_BOOTSTRAP, which controls whether as is built as a bootstrap tool to build the rest of the system. 1. WITH_BINUTILS (default on i386 and amd64) Turning this off means the installed system will not have /usr/bin/as. A ports exp-run without as is in PR 205250. On i386 the most recent run failed in: comms/libfec comms/syncterm devel/plan9port emulators/vmw games/dxx-rebirth graphics/vulkan-loader lang/hla lang/mit-scheme lang/ocaml lang/ocaml-nox11 math/ldouble multimedia/mencoder multimedia/mplayer amd64 has similar failures in an earlier run. There are generally two ways to address a ports need for an assembler: a) Add a dependency on devel/binutils to the port's Makefile: BUILD_DEPENDS+=as:devel/binutils b) Use Clang's integrated assembler, via the compiler driver (cc). This is what we do for all but one file in the base system. Option (b) is the nicer choice, as it doesn't introduce a new dependency, but takes some more work. Option (a) is straightforward, and I have a proposed initial set of patches at https://reviews.freebsd.org/D24739. My hope is that individual maintainers of affected ports can prepare their port for the upcoming as retirement in whichever way they find most suitable; I'll have BUILD_DEPENDS patches ready for whichever ones are not ready at the end of the month. 2. WITH_BINUTILS_BOOTSTRAP GNU as is built only on amd64, and is used to assemble one file, the optimized assembly version of the Skein cryptographic hash - skein_block_asm.s. Unfortunately it makes extensive use of macro features that are not yet supported by Clang's integrated assembler. There are some proposed methods of addressing (for example, committing an assembled .o, or translating the assembly into something that IAS can handle) but none of them are particularly palatable. Right now I expect the most likely path forward is that we revert to the somewhat slower C-language skein implementation. Please let me know if you have any questions or concerns; I'm happy to help maintainers of affected ports find and test a solution.