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:   gdt
Date:           Fri Jun  7 11:05:31 UTC 2024

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

Log Message:
gcc.mk: Add upstream claims about c++ versions

For each USE_CXX_FEATURES, add a comment summarizing gcc's claims.
When that is significantly off from the code, add a \todo to fix or
justify.

Drop comments that are now historical when they justify picking a
version that is <= what upstream says should be picked; the beginnings
of c++nn support is not germane to knowing when a variant is
essentially-fully supported.

Note that we only choose versions in pkgsrc at top, and drop a comment
justifying a higher version on this basis, when it is still less than
what upstream documents.

This is a comment-only change.


To generate a diff of this commit:
cvs rdiff -u -r1.276 -r1.277 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.276 pkgsrc/mk/compiler/gcc.mk:1.277
--- pkgsrc/mk/compiler/gcc.mk:1.276     Fri Jun  7 10:49:54 2024
+++ pkgsrc/mk/compiler/gcc.mk   Fri Jun  7 11:05:31 2024
@@ -1,4 +1,4 @@
-# $NetBSD: gcc.mk,v 1.276 2024/06/07 10:49:54 gdt Exp $
+# $NetBSD: gcc.mk,v 1.277 2024/06/07 11:05:31 gdt Exp $
 #
 # This is the compiler definition for the GNU Compiler Collection.
 #
@@ -157,10 +157,12 @@ GCC_REQD+=        2.8.0
 # Most of the time, GCC adds support for features of new C and C++
 # standards incrementally; we define USE_CXX_FEATURES=c++XX as
 # intending to require a compiler that fully supports the standard.
-# We tend towards a gcc version included in a NetBSD release, because
-# those are known to work well, and because it is simpler to limit
-# selection to fewer versions.  This tendency is much stronger for C++
-# versions, and less so for c11.
+#
+# We of course only choose versions in pkgsrc, and tend towards a gcc
+# version included in a NetBSD release, because those are known to
+# work well, and because it is simpler to limit selection to fewer
+# versions.  This tendency is much stronger for C++ versions, and less
+# so for c11.
 #
 # Thus we tend to:
 #   - gcc 4.8, in NetBSD 7 
@@ -179,40 +181,48 @@ GCC_REQD+=        2.8.0
 #
 
 .if !empty(USE_CXX_FEATURES:Mc++23)
-# GCC 11 is the first version to support -std=c++23,
-# but it was never packaged for pkgsrc, so use GCC 12 instead.
+# gcc documents that 14 is required.
+
+# \todo Change to 14 or justify.
 GCC_REQD+=     12
 .endif
 
 .if !empty(USE_CXX_FEATURES:Mc++20)
+# gcc documents that 11 is required, with a few perhaps-obscure
+# features requiring 12.
+
 # GCC 10 is chosen because it is in NetBSD 10,
 # so is fairly battle-hardened with pkgsrc.
 #
 # We hope that it remains OK for most C++20 in the future...
+# \todo Change to 11 or justify.
 GCC_REQD+=     10
 .endif
 
 .if !empty(USE_CXX_FEATURES:Mc++17)
+# gcc documents that 7 is required, except for a perhaps-obscure
+# template feature.  However, <charconv> is part of c++17 and that
+# requires gcc 8.
+
 # GCC 7 is chosen because it is in NetBSD 9, so is fairly
 # battle-hardened with pkgsrc.
 GCC_REQD+=     7
+# \todo Change to 8 (<charconv> is not so odd) or justify.
 .endif
 
 .if !empty(USE_CXX_FEATURES:Mc++14)
+# gcc documents that 5 is required.
 # GCC 5 is chosen because it is in NetBSD 8, so is fairly
 # battle-hardened with pkgsrc.
 GCC_REQD+=     5
 .endif
 
 .if !empty(USE_CXX_FEATURES:Mc++11)
-# While gcc "technically" added experimental C++11 support earlier
-# (and there was previously a lot of cargo-culted GCC_REQD in pkgsrc
-# as a result), earlier compiler versions are not so well-tested any more.
-#
+# gcc documents that 4.8.1 is required.  (In addition, versions before
+# 4.7 do not accept -std=c++11 and are thus not acceptable.)
+
 # GCC 4.8 was the version in NetBSD 7 and CentOS 7, so is fairly
 # battle-hardened with pkgsrc.
-#
-# Versions before GCC 4.7 do not accept -std=c++11.
 GCC_REQD+=     4.8
 .endif
 



Home | Main Index | Thread Index | Old Index