From owner-svn-ports-all@freebsd.org Thu Jul 4 22:23:45 2019 Return-Path: Delivered-To: svn-ports-all@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 129CB15DF844; Thu, 4 Jul 2019 22:23:45 +0000 (UTC) (envelope-from gerald@pfeifer.com) Received: from hamza.pair.com (hamza.pair.com [209.68.5.143]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id A7DBD745DB; Thu, 4 Jul 2019 22:23:44 +0000 (UTC) (envelope-from gerald@pfeifer.com) Received: from hamza.pair.com (localhost [127.0.0.1]) by hamza.pair.com (Postfix) with ESMTP id A025833DE0; Thu, 4 Jul 2019 18:23:42 -0400 (EDT) Received: from anthias (unknown [46.57.85.156]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by hamza.pair.com (Postfix) with ESMTPSA id 521F233DDE; Thu, 4 Jul 2019 18:23:41 -0400 (EDT) Date: Fri, 5 Jul 2019 00:23:33 +0200 (CEST) From: Gerald Pfeifer To: Mark Linimon cc: Piotr Kubaj , Alexey Dokuchaev , Cy Schubert , "Jason W. Bacon" , ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: USES=compiler prefers old GCC on powerpc64 and should not (was: svn commit: r504198 - head/Mk) In-Reply-To: <20190704203112.GA6138@lonesome.com> Message-ID: References: <201906141610.x5EGAdnN049103@repo.freebsd.org> <20190614165425.GA42674@FreeBSD.org> <8BDC3B40-7FEA-46EA-AE7C-A3C266F6978F@cschubert.com> <20190614175822.GA3336@FreeBSD.org> <20190615061345.GA20346@lonesome.com> <20190615084354.GA33091@ThinkPad-X200.g.anongoth.pl> <20190704203112.GA6138@lonesome.com> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII X-Rspamd-Queue-Id: A7DBD745DB X-Spamd-Bar: ------ Authentication-Results: mx1.freebsd.org X-Spamd-Result: default: False [-6.99 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; REPLY(-4.00)[]; NEURAL_HAM_SHORT(-0.99)[-0.991,0] X-BeenThere: svn-ports-all@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: SVN commit messages for the ports tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 04 Jul 2019 22:23:45 -0000 On Thu, 4 Jul 2019, Mark Linimon wrote: > Different topic. Here's a special case: > >> For example, Mk/Uses/compiler.mk has >> >> .if ${_COMPILER_ARGS:Mopenmp} >> .if ${COMPILER_TYPE} == clang >> USE_GCC= yes >> CHOSEN_COMPILER_TYPE= gcc >> .endif >> .endif >> >> which means that anyone asking for compiler:openmp gets GCC 4.2, >> unless I'm missing something. > Yes, openmp is a special case IIUC. openmp and several others. What the above code from Uses/compiler.mk de facto does is this: if systemcompiler == clang then USE_GCC=yes else USE_GCC=4.2 fi In other words, powerpc64 users are exposed to the use of GCC 4.2 over GCC 8 which is used on amd64 and i386. Which, especially in case of something like OpenMP is exposing them to something *very* different, and very inferior. > fwiw, there are a number of other special cases (around 50 in all) that > are mostly disjoint with the "=any" cases. All of these are going to > have to be examined carefully, and have test-runs in multiple environments. I am not proposing to touch individual ports. I am proposing to fix our infrastructure to treat powerpc64 similarly to amd64/i386 when it comes to special requirements. That is avoid touching individual ports. We can do so by aligning what the infrastructure does as opposed to having volunteers fix things port by port via the likes of +# Force newer GCC on platforms using GCC 4.2 as base +.if ${CHOSEN_COMPILER_TYPE} == gcc +USE_GCC= yes +.endif This will reduce the amount of code under Mk/ *and* individual ports. Gerald