From owner-freebsd-current@freebsd.org Fri Aug 16 09:10:33 2019 Return-Path: Delivered-To: freebsd-current@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 DF8A8C5A51 for ; Fri, 16 Aug 2019 09:10:33 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from kib.kiev.ua (kib.kiev.ua [IPv6:2001:470:d5e7:1::1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 468yGK4jM9z40Ml; Fri, 16 Aug 2019 09:10:33 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from tom.home (kib@localhost [127.0.0.1]) by kib.kiev.ua (8.15.2/8.15.2) with ESMTPS id x7G9APPj049395 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO); Fri, 16 Aug 2019 12:10:28 +0300 (EEST) (envelope-from kostikbel@gmail.com) DKIM-Filter: OpenDKIM Filter v2.10.3 kib.kiev.ua x7G9APPj049395 Received: (from kostik@localhost) by tom.home (8.15.2/8.15.2/Submit) id x7G9APP2049393; Fri, 16 Aug 2019 12:10:25 +0300 (EEST) (envelope-from kostikbel@gmail.com) X-Authentication-Warning: tom.home: kostik set sender to kostikbel@gmail.com using -f Date: Fri, 16 Aug 2019 12:10:25 +0300 From: Konstantin Belousov To: David Chisnall Cc: freebsd-current@freebsd.org Subject: Re: Stop installing /usr/bin/clang Message-ID: <20190816091025.GO2738@kib.kiev.ua> References: <20190815164815.GK2738@kib.kiev.ua> <03b695ff-afdb-85db-d1d3-b62111c346a9@FreeBSD.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <03b695ff-afdb-85db-d1d3-b62111c346a9@FreeBSD.org> User-Agent: Mutt/1.12.1 (2019-06-15) X-Spam-Status: No, score=-1.0 required=5.0 tests=ALL_TRUSTED,BAYES_00, DKIM_ADSP_CUSTOM_MED,FORGED_GMAIL_RCVD,FREEMAIL_FROM, NML_ADSP_CUSTOM_MED autolearn=no autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on tom.home X-Rspamd-Queue-Id: 468yGK4jM9z40Ml X-Spamd-Bar: ------ Authentication-Results: mx1.freebsd.org; none X-Spamd-Result: default: False [-6.94 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; NEURAL_HAM_SHORT(-0.94)[-0.939,0]; REPLY(-4.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000,0] X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 Aug 2019 09:10:34 -0000 On Fri, Aug 16, 2019 at 09:47:41AM +0100, David Chisnall wrote: > On 15/08/2019 17:48, Konstantin Belousov wrote: > > Please look at https://reviews.freebsd.org/D21060 > > I propose to stop installing /usr/bin/clang, clang++, clang-cpp. > > > > It probably does not matter when all your software comes from ports or > > packages, but is actually very annoying when developing on FreeBSD. > > In particular, you never know which `clang' is called in the user > > environment, because it depends on the $PATH elements ordering. > > What is the confusion here? Between /usr/bin/clang and /usr/local/bin/clang. > The binary that is invoked as clang is from the base system. Not necessary. > The binary that is invoked as clang{version number} is from ports. This is irrelevant. > If the user has built clang from source and has set up > their path to put that first, then they will get a different clang, but > there's no way we can stop that kind of behaviour. This is irrelevant as well. You did not read neither review summary nor followups. clang also comes from devel/llvm. Users that want clang do install it, esp. when version in base is different. > > For reference, on my machine, I have: > > clang <- this one is from the base system > clang60 <- this one if from ports > clang70 <- this one if from ports > clang80 <- this one if from ports > clang-devel <- this one if from ports > > Nothing in my PATH order affects this. > > The only source of confusion that I regularly encounter comes from the > fact that FreeBSD packages install clang80, when every other system > installs clang-8, so I end up having to have a special case in CMake > logic for finding specific versions of tools like clang-format on FreeBSD. > > That said, I don't know what the impact would be on configure scripts if > we didn't have a clang binary. CMake seems to run ${CC} -v and parse > the output, so it's quite happy finding that cc is clang (and the > specific version). How do most autoconf things handle this? Apple > shipped a gcc symlink to clang for years because, in the absence of a > gcc binary, a load of programs detected /usr/bin/cc and decided not to > enable any GNU extensions. We've managed to avoid having to do that, > but how many things look for clang, gcc, and cc in the path and enable > features based on which one they find? I plan to ask for exp run with the patch after some more time to gather feedback.