Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 28 Jul 2019 20:56:31 +0200 (CEST)
From:      Gerald Pfeifer <gerald@pfeifer.com>
To:        Kevin Oberman <rkoberman@gmail.com>
Cc:        Stefan Esser <se@freebsd.org>,  FreeBSD Ports ML <freebsd-ports@freebsd.org>
Subject:   Re: Massive PORTS_REVISION bump after making gcc-9.1 default
Message-ID:  <alpine.LSU.2.21.1907282034060.4100@anthias.pfeifer.com>
In-Reply-To: <CAN6yY1sR=iynjqacu1ctAJ6Y64ZHnQKeO-GJ5BzcBCcicm6WSg@mail.gmail.com>
References:  <CAN6yY1sT1-gt6qW=9mWBbN02Kbsu=N5=Mt7qVexJSDo1d3C4rA@mail.gmail.com> <8cf76d79-3a08-7703-d2a8-f6605438dd8a@freebsd.org> <CAN6yY1sR=iynjqacu1ctAJ6Y64ZHnQKeO-GJ5BzcBCcicm6WSg@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, 28 Jul 2019, Kevin Oberman wrote:
> The description of the commit states:
> 
> This includes ports
>  - with USE_GCC=yes or USE_GCC=any,
>  - with USES=fortran,
>  - using Mk/bsd.octave.mk which in turn features USES=fortran, and
>  - with USES=compiler specifying openmp, nestedfct, c11, c++0x, c++11-lang,
>    c++11-lib, c++14-lang, c++17-lang, or gcc-c++11-lib
> plus, everything INDEX-11 shows with a dependency on lang/gcc9 now.
> 
> This would appear to me like it did catch a great many ports which are 
> not build with or any anything to do will gcc, though I am not sure. 

These ports may not use GCC on your system, or even the majority of 
systems, but there are systems and situations where they do, and bumping 
PORTREVISION is a global binary decision for each port considered.

> E.g. I thought that USES=compiler:c11 and similar were asking for 
> c11 semantics from whatever compiler was used but

Let's look at your example.  ports/Mk/Uses/compiler.mk has the following
on USES=compiler:c11:

  .if ${_COMPILER_ARGS:Mc11}
  .if !${COMPILER_FEATURES:Mc11}
  .if (defined(FAVORITE_COMPILER) && ${FAVORITE_COMPILER} == gcc) || 
    (${ARCH} != amd64 && ${ARCH} != i386) # clang not always supported on Tier-2
  USE_GCC=        yes
  CHOSEN_COMPILER_TYPE=   gcc
  .elif ${COMPILER_TYPE} == gcc

That is, if a user has set a preference for GCC or for non x86/x86-64
platforms, GCC is used.

And if there is one legitimate configuration on the planet where a 
PORTREVISION bump is required, we have to perform it in our repository.

(This is not saying I may not have made a mistake somewhere, but in
general those bumps do appear necessary.)

Gerald



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?alpine.LSU.2.21.1907282034060.4100>