pkgsrc-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

CVS commit: pkgsrc/mk/compiler



Module Name:    pkgsrc
Committed By:   dkazankov
Date:           Tue Jul  1 19:54:34 UTC 2025

Modified Files:
        pkgsrc/mk/compiler: gcc.mk

Log Message:
mk/compiler/gcc.mk: refactor ada support code

* Determining the reqired version based on USE_ADA_FEATURES
  has been moved to GCC_REQD section
* Set USE_NATIVE_GCC to "no" in addition to USE_PKGSRC_GCC to "yes"
* Fix order of code determining version based on GCC_REQD and
  code based on USE_LANGUAGES
* Eliminate unnecessary code
* Remove unnecessary increase of the used version of GNAT.
* Add support for gcc*-gnat-libs packages.


To generate a diff of this commit:
cvs rdiff -u -r1.291 -r1.292 pkgsrc/mk/compiler/gcc.mk

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: pkgsrc/mk/compiler/gcc.mk
diff -u pkgsrc/mk/compiler/gcc.mk:1.291 pkgsrc/mk/compiler/gcc.mk:1.292
--- pkgsrc/mk/compiler/gcc.mk:1.291     Thu May  1 15:40:41 2025
+++ pkgsrc/mk/compiler/gcc.mk   Tue Jul  1 19:54:34 2025
@@ -1,4 +1,4 @@
-# $NetBSD: gcc.mk,v 1.291 2025/05/01 15:40:41 tnn Exp $
+# $NetBSD: gcc.mk,v 1.292 2025/07/01 19:54:34 dkazankov Exp $
 #
 # This is the compiler definition for the GNU Compiler Collection.
 #
@@ -283,6 +283,23 @@ GCC_REQD+= 8
 _NEED_GCC_AUX?=no
 .if !empty(USE_LANGUAGES:Mada)
 _NEED_GCC_AUX=yes
+
+.  if !empty(USE_ADA_FEATURES:Mgnat2020)
+# Undocumented GNAT PRO's -gnat2020 switch
+GCC_REQD+=     10
+.  endif
+
+.  if !empty(USE_ADA_FEATURES:Mgnat2022)
+# First appearance in GNAT 12
+GCC_REQD+=     13
+.  endif
+
+.  if !empty(USE_ADA_FEATURES:Mada2022)
+# GNAT (as of version 14) really doesn't implement all Ada 2022's features
+# (gnat2022 /= ada2022), so we'll just set the latest available version here
+# until that happens.
+GCC_REQD+=     14
+.  endif
 .endif
 
 # _GCC_DIST_VERSION is the highest version of GCC installed by the pkgsrc
@@ -490,7 +507,7 @@ PKG_FAIL_REASON+=   "Package requires at l
 _NEED_GCC7?=   no
 .for _pattern_ in ${_GCC7_PATTERNS}
 .  if !empty(_GCC_REQD:M${_pattern_})
-.    if ${OPSYS} == "NetBSD" && ${OPSYS_VERSION} < 089937
+.    if ${OPSYS} == "NetBSD" && ${OPSYS_VERSION} < 089937 && ${_NEED_GCC_AUX:tl} != "yes"
 USE_PKGSRC_GCC=                yes
 USE_PKGSRC_GCC_RUNTIME=        yes
 .    endif
@@ -503,7 +520,7 @@ _NEED_GCC7= yes
 _NEED_GCC8?=   no
 .for _pattern_ in ${_GCC8_PATTERNS}
 .  if !empty(_GCC_REQD:M${_pattern_})
-.    if ${OPSYS} == "NetBSD" && ${OPSYS_VERSION} < 099917
+.    if ${OPSYS} == "NetBSD" && ${OPSYS_VERSION} < 099917 && ${_NEED_GCC_AUX:tl} != "yes"
 USE_PKGSRC_GCC=                yes
 USE_PKGSRC_GCC_RUNTIME=        yes
 .    endif
@@ -516,7 +533,7 @@ _NEED_GCC8= yes
 _NEED_GCC9?=   no
 .for _pattern_ in ${_GCC9_PATTERNS}
 .  if !empty(_GCC_REQD:M${_pattern_})
-.    if ${OPSYS} == "NetBSD" && ${OPSYS_VERSION} < 099976
+.    if ${OPSYS} == "NetBSD" && ${OPSYS_VERSION} < 099976 && ${_NEED_GCC_AUX:tl} != "yes"
 USE_PKGSRC_GCC=                yes
 USE_PKGSRC_GCC_RUNTIME=        yes
 .    endif
@@ -529,7 +546,7 @@ _NEED_GCC9= yes
 _NEED_GCC10?=  no
 .for _pattern_ in ${_GCC10_PATTERNS}
 .  if !empty(_GCC_REQD:M${_pattern_})
-.    if ${OPSYS} == "NetBSD" && ${OPSYS_VERSION} < 099982
+.    if ${OPSYS} == "NetBSD" && ${OPSYS_VERSION} < 099982 && ${_NEED_GCC_AUX:tl} != "yes"
 USE_PKGSRC_GCC=                yes
 USE_PKGSRC_GCC_RUNTIME=        yes
 .    endif
@@ -542,7 +559,7 @@ _NEED_GCC10=        yes
 _NEED_GCC12?=  no
 .for _pattern_ in ${_GCC12_PATTERNS}
 .  if !empty(_GCC_REQD:M${_pattern_})
-.    if ${OPSYS} == "NetBSD" && ${OPSYS_VERSION} < 109911
+.    if ${OPSYS} == "NetBSD" && ${OPSYS_VERSION} < 109911 && ${_NEED_GCC_AUX:tl} != "yes"
 USE_PKGSRC_GCC=                yes
 USE_PKGSRC_GCC_RUNTIME=        yes
 .    endif
@@ -556,7 +573,7 @@ _NEED_GCC13?=       no
 .for _pattern_ in ${_GCC13_PATTERNS}
 .  if !empty(_GCC_REQD:M${_pattern_})
 # XXX: pin to a version when NetBSD switches to gcc13
-.    if ${OPSYS} == "NetBSD"
+.    if ${OPSYS} == "NetBSD" && ${_NEED_GCC_AUX:tl} != "yes"
 USE_PKGSRC_GCC=                yes
 USE_PKGSRC_GCC_RUNTIME=        yes
 .    endif
@@ -570,7 +587,7 @@ _NEED_GCC14?=       no
 .for _pattern_ in ${_GCC14_PATTERNS}
 .  if !empty(_GCC_REQD:M${_pattern_})
 # XXX: pin to a version when NetBSD switches to gcc14
-.    if ${OPSYS} == "NetBSD"
+.    if ${OPSYS} == "NetBSD" && ${_NEED_GCC_AUX:tl} != "yes"
 USE_PKGSRC_GCC=                yes
 USE_PKGSRC_GCC_RUNTIME=        yes
 .    endif
@@ -610,23 +627,31 @@ _NEED_GCC13=      yes
 _NEED_GCC14=   yes
 .endif
 
-# We have fixed set of Ada compilers and languages them provided. So we try to find best possible variant
 _NEED_GCC6_AUX?=no
 _NEED_GCC10_AUX?=no
 _NEED_GCC13_GNAT?=no
 _NEED_GCC14_GNAT?=     no
 .if ${_NEED_GCC_AUX:tl} == "yes"
-USE_PKGSRC_GCC=yes
-USE_PKGSRC_GCC_RUNTIME=no
-.  if ${ALLOW_NEWER_COMPILER:tl} != "yes"
-PKG_FAIL_REASON+=      "Package requires at least gnat 13 to build"
+# Ada compilers are always only from pkgsrc
+USE_NATIVE_GCC=                no
+USE_PKGSRC_GCC=                yes
+
+# Switch on GNAT variables based on already determined by GCC_REQD values
+.  if ${_NEED_GCC6:tl} == "yes"
+_NEED_GCC6_AUX=                yes
+.  endif
+.  if ${_NEED_GCC7:tl} == "yes" || ${_NEED_GCC8:tl} == "yes" || \
+      ${_NEED_GCC9:tl} == "yes" || ${_NEED_GCC10:tl} == "yes"
+_NEED_GCC10_AUX=       yes
+.  endif
+.  if ${_NEED_GCC12:tl} == "yes" || ${_NEED_GCC13:tl} == "yes"
+_NEED_GCC13_GNAT=      yes
 .  endif
-_NEED_GCC13_GNAT=yes
+.  if ${_NEED_GCC14:tl} == "yes"
 _NEED_GCC14_GNAT=      yes
-.  if empty(USE_ADA_FEATURES:Mada2022)
-_NEED_GCC10_AUX=yes
-_NEED_GCC6_AUX=yes
 .  endif
+
+# We have fixed set of Ada compilers and languages them provided. So we try to find best possible variant
 .  if !empty(USE_LANGUAGES:Mfortran) || !empty(USE_LANGUAGES:Mfortran77)
 .     if ${_NEED_GCC10_AUX:tl} == "yes"
 _NEED_GCC6_AUX=no
@@ -636,46 +661,19 @@ _NEED_GCC14_GNAT= no
 PKG_FAIL_REASON+=      "Package requires fortran compiler"
 .     endif
 .  endif
-.  if ${_NEED_GCC6_AUX:tl} == "yes" && ${_NEED_GCC6:tl} != "yes"
-_NEED_GCC6_AUX=no
-.  endif
-.  if ${_NEED_GCC10_AUX:tl} == "yes" && ${_NEED_GCC10:tl} != "yes"
-_NEED_GCC10_AUX=no
-.  endif
-.  if ${_NEED_GCC13_GNAT:tl} == "yes" && ${_NEED_GCC13:tl} != "yes"
-_NEED_GCC13_GNAT=no
-.  endif
-.  if ${_NEED_GCC14_GNAT:tl} == "yes" && ${_NEED_GCC14:tl} != "yes"
-_NEED_GCC14_GNAT=      no
-.  endif
 .  if !empty(USE_LANGUAGES:Mobjc)
-_NEED_GCC6_AUX=no
-_NEED_GCC10_AUX=no
-_NEED_GCC13_GNAT=no
-_NEED_GCC14_GNAT=      no
 PKG_FAIL_REASON+=      "Package requires objc compiler"
 .  endif
 .  if !empty(USE_LANGUAGES:Mobj-c++)
-_NEED_GCC6_AUX=no
-_NEED_GCC10_AUX=no
-_NEED_GCC13_GNAT=no
-_NEED_GCC14_GNAT=      no
 PKG_FAIL_REASON+=      "Package requires obj-c++ compiler"
 .  endif
 .  if !empty(USE_LANGUAGES:Mgo)
-_NEED_GCC6_AUX=no
-_NEED_GCC10_AUX=no
-_NEED_GCC13_GNAT=no
-_NEED_GCC14_GNAT=      no
 PKG_FAIL_REASON+=      "Package requires go compiler"
 .  endif
 .  if !empty(USE_LANGUAGES:Mjava)
-_NEED_GCC6_AUX=no
-_NEED_GCC10_AUX=no
-_NEED_GCC13_GNAT=no
-_NEED_GCC14_GNAT=      no
 PKG_FAIL_REASON+=      "Package requires java compiler"
 .  endif
+# It is necessary to turn off all _NEED_GCC[6-14] variables
 _NEED_GCC6=no
 _NEED_GCC7=no
 _NEED_GCC8=no
@@ -684,16 +682,6 @@ _NEED_GCC10=no
 _NEED_GCC12=no
 _NEED_GCC13=no
 _NEED_GCC14=   no
-.  if ${_NEED_GCC14_GNAT:tl} == "yes"
-_NEED_GCC6_AUX=                no
-_NEED_GCC10_AUX=       no
-_NEED_GCC13_GNAT=      no
-.  elif ${_NEED_GCC13_GNAT:tl} == "yes"
-_NEED_GCC6_AUX=no
-_NEED_GCC10_AUX=no
-.  elif ${_NEED_GCC10_AUX:tl} == "yes"
-_NEED_GCC6_AUX=no
-.  endif
 .endif
 
 # Assume by default that GCC will only provide a C compiler.
@@ -939,10 +927,7 @@ MAKEFLAGS+=                _IGNORE_GCC=yes
 .  if !defined(_IGNORE_GCC) && !empty(_LANGUAGES.gcc)
 _GCC_PKGSRCDIR=                ../../lang/gcc6-aux
 _GCC_DEPENDENCY=       gcc6-aux>=${_GCC_REQD}:../../lang/gcc6-aux
-.    if !empty(_LANGUAGES.gcc:Mc++) || \
-        !empty(_LANGUAGES.gcc:Mada)
-_USE_GCC_SHLIB?=       no
-.    endif
+# gcc6-aux doesn't have a separate package for shared libraries
 .  endif
 .elif !empty(_NEED_GCC10_AUX:M[yY][eE][sS])
 #
@@ -956,12 +941,7 @@ MAKEFLAGS+=                _IGNORE_GCC=yes
 .  if !defined(_IGNORE_GCC) && !empty(_LANGUAGES.gcc)
 _GCC_PKGSRCDIR=                ../../lang/gcc10-aux
 _GCC_DEPENDENCY=       gcc10-aux>=${_GCC_REQD}:../../lang/gcc10-aux
-.    if !empty(_LANGUAGES.gcc:Mc++) || \
-        !empty(_LANGUAGES.gcc:Mfortran) || \
-        !empty(_LANGUAGES.gcc:Mfortran77) || \
-        !empty(_LANGUAGES.gcc:Mada)
-_USE_GCC_SHLIB?=       no
-.    endif
+# gcc10-aux doesn't have a separate package for shared libraries
 .  endif
 .elif !empty(_NEED_GCC13_GNAT:M[yY][eE][sS])
 #
@@ -975,7 +955,9 @@ MAKEFLAGS+=         _IGNORE_GCC=yes
 .  if !defined(_IGNORE_GCC) && !empty(_LANGUAGES.gcc)
 _GCC_PKGSRCDIR=                ../../lang/gcc13-gnat
 _GCC_DEPENDENCY=       gcc13-gnat>=${_GCC_REQD}:../../lang/gcc13-gnat
-_USE_GCC_SHLIB?=       no
+.    if defined(USE_GCC_RUNTIME)
+_USE_GCC_SHLIB?=       yes
+.    endif
 .  endif
 .elif !empty(_NEED_GCC14_GNAT:M[yY][eE][sS])
 #
@@ -989,7 +971,9 @@ MAKEFLAGS+=         _IGNORE_GCC=yes
 .  if !defined(_IGNORE_GCC) && !empty(_LANGUAGES.gcc)
 _GCC_PKGSRCDIR=                ../../lang/gcc14-gnat
 _GCC_DEPENDENCY=       gcc14-gnat>=${_GCC_REQD}:../../lang/gcc14-gnat
-_USE_GCC_SHLIB?=       no
+.    if defined(USE_GCC_RUNTIME)
+_USE_GCC_SHLIB?=       yes
+.    endif
 .  endif
 .endif
 _GCC_DEPENDS=          ${_GCC_PKGBASE}>=${_GCC_REQD}
@@ -1004,10 +988,12 @@ _GCC_DEPENDS=            ${_GCC_PKGBASE}>=${_GCC_R
 # USE_GCC_RUNTIME for packages which create shared libraries but do not use
 # libtool to do so.
 #
+.if ${_NEED_GCC_AUX:tl} != "yes"
 .if (${OPSYS} == "Darwin" || ${OPSYS} == "SunOS") && \
     (defined(USE_LIBTOOL) || defined(USE_GCC_RUNTIME))
 _USE_GCC_SHLIB= yes
 .endif
+.endif
 
 .if !empty(USE_NATIVE_GCC:M[yY][eE][sS]) && !empty(_IS_BUILTIN_GCC:M[yY][eE][sS])
 _USE_PKGSRC_GCC=       no
@@ -1265,10 +1251,15 @@ PREPEND_PATH+=  ${_GCC_DIR}/bin
 .if (defined(_USE_GCC_SHLIB) && !empty(_USE_GCC_SHLIB:M[Yy][Ee][Ss])) && !empty(USE_PKGSRC_GCC_RUNTIME:M[Yy][Ee][Ss])
 #  Special case packages which are themselves a dependency of gcc runtime.
 .  if ${PKGPATH} != devel/libtool-base && ${PKGPATH} != devel/binutils && \
+      empty(PKGPATH:Mlang/gcc*-aux) && empty(PKGPATH:Mlang/gcc*-gnat) && \
       empty(PKGPATH:Mlang/gcc4?) && empty(PKGPATH:Mlang/gcc[5-9]) && \
       empty(PKGPATH:Mlang/gcc10) && empty(PKGPATH:Mlang/gcc12) && \
       empty(PKGPATH:Mlang/gcc13) && empty(PKGPATH:Mlang/gcc14)
-.    if !empty(_GCC_PKGBASE:Mgcc6)
+.    if !empty(_GCC_PKGBASE:Mgcc13-gnat)
+.      include "../../lang/gcc13-gnat-libs/buildlink3.mk"
+.    elif !empty(_GCC_PKGBASE:Mgcc14-gnat)
+.      include "../../lang/gcc14-gnat-libs/buildlink3.mk"
+.    elif !empty(_GCC_PKGBASE:Mgcc6)
 .      include "../../lang/gcc6-libs/buildlink3.mk"
 .    elif !empty(_GCC_PKGBASE:Mgcc7)
 .      include "../../lang/gcc7-libs/buildlink3.mk"



Home | Main Index | Thread Index | Old Index