Set gcc50 as the primary compiler, gcc47 as secondary
authorJohn Marino <draco@marino.st>
Sun, 19 Apr 2015 06:14:37 +0000 (08:14 +0200)
committerJohn Marino <draco@marino.st>
Wed, 22 Apr 2015 19:43:43 +0000 (21:43 +0200)
Per request, rather than define NO_GCC47 to prevent the building of the
secondary compiler, the new variable is called NO_ALTCOMPILER.  This
will avoid some disruption in the future where the actual version is not
important, only the desire to avoid the secondary compiler.

13 files changed:
Makefile.inc1
UPDATING
etc/defaults/compilers.conf
etc/defaults/make.conf
gnu/lib/Makefile
gnu/usr.bin/Makefile
gnu/usr.bin/Makefile.cco
libexec/customcc/cc.sh
share/man/man5/make.conf.5
share/mk/bsd.cpu.mk
sys/sys/param.h
test/x86_64/Makefile
usr.bin/objformat/objformat.c

index 4f4a42a..19bb3fc 100644 (file)
@@ -123,7 +123,7 @@ DESTDIRBASE:=               ${OBJTREE}${.CURDIR}
 .MAKEFLAGS:=   ${.MAKEFLAGS:NDESTDIR=*}
 
 # This section sets the tools used to build the world/kernel
-WORLD_CCVER?=          gcc47
+WORLD_CCVER?=          gcc50
 WORLD_LDVER?=          ld.bfd
 WORLD_BINUTILSVER?=    binutils225
 
@@ -915,12 +915,12 @@ _share=   share/syscons/scrnmaps
 .endif
 
 _gcc_common_cross= lib/libz gnu/usr.bin/gmp gnu/usr.bin/mpfr gnu/usr.bin/mpc
-.if !defined(NO_GCC50)
 _gcc50_cross= gnu/usr.bin/cc50
 _gcc50_tools= gnu/usr.bin/cc50/cc_prep gnu/usr.bin/cc50/cc_tools
-.endif
+.if !defined(NO_ALTCOMPILER)
 _gcc47_cross= gnu/usr.bin/cc47
 _gcc47_tools= gnu/usr.bin/cc47/cc_prep gnu/usr.bin/cc47/cc_tools
+.endif
 _custom_cross= libexec/customcc
 _binutils= gnu/usr.bin/${WORLD_BINUTILSVER}
 
@@ -988,13 +988,13 @@ hierarchy:
 # to specify the correct CCVER or 'cc' will not exec the correct compiler.
 #
 libraries:
-       cd ${.CURDIR}; \
-           HOST_CCVER=${HOST_CCVER} CCVER=gcc47 \
-               make -f Makefile.inc1 _startup_libs47 -DSYSBUILD;
-.if !defined(NO_GCC50)
        cd ${.CURDIR}; \
            HOST_CCVER=${HOST_CCVER} CCVER=gcc50 \
                make -f Makefile.inc1 _startup_libs50 -DSYSBUILD;
+.if !defined(NO_ALTCOMPILER)
+       cd ${.CURDIR}; \
+           HOST_CCVER=${HOST_CCVER} CCVER=gcc47 \
+               make -f Makefile.inc1 _startup_libs47 -DSYSBUILD;
 .endif
        cd ${.CURDIR}; \
            make -f Makefile.inc1 _startup_libs -DSYSBUILD; \
index 63bfa04..6bb93c2 100644 (file)
--- a/UPDATING
+++ b/UPDATING
@@ -103,29 +103,26 @@ unknown:
 
 They should be removed or commented out in such custom kernel configs.
 
-GCC 5.0
--------
+GCC 5
+-----
 
-The GCC 4.4 compiler has been retired.  It has been replaced by a
-[prerelease] version of GCC 5.0.  The following make.conf variables no
-longer work: NO_GCC44, NO_OBJC, and NO_CXX.  The latter was never
-documented and the latest versions of GCC are partially written in C++
-so a C++ compiler is no longer optional.  In practical terms it has not
-been optional for many years as other base components are also written in
-C++.  The resource savings by avoiding building Objective-C compiler is
-so small, the complexity added by NO_OBJC internally was deemed a bad
-tradeoff so that is the reason for its removal.  Also note that no "info"
-pages are installed with GCC 5.0.  This is intentional; they are available
-via the internet if desired over the installed man pages.
-
-Currently, GCC 4.7 is still designated as the primary compiler.  After
-GCC 5.0 is released, this may change and these update notes will be
-revised accordingly.  DPorts will use GCC 5.0 on this release regardless.
-If GCC 5.0 is unwanted, the make.conf variable NO_GCC50 will block its
-building and installation.
-
-To use GCC 5.0 to build world and kernel, set WORLD_CCVER=gcc50 in
-make.conf before building those targets.
+The GCC 4.4 compiler has been retired.  It has been replaced by a GCC 5.1.
+The following make.conf variables no longer work: NO_GCC44, NO_OBJC, and
+NO_CXX.  The latter was never documented and the latest versions of GCC are
+partially written in C++ so a C++ compiler is no longer optional.  In
+practical terms it has not been optional for many years as other base
+components are also written in C++.  The resource savings by avoiding
+building Objective-C compiler is so small, the complexity added by NO_OBJC
+internally was deemed a bad tradeoff so that is the reason for its removal.
+Also note that no "info" pages are installed with GCC 5.  After this entry
+was originally written, all info pages were removed from DragonFly.
+
+GCC 5.1 has been designated as the primary compiler.  As such, there is a
+new make.conf variable, NO_ALTCOMPILER.  It will block the rebuilding of
+the designated secondary compiler, GCC 4.7.  However, while DPorts
+primarily uses GCC 5 to build ports now, it still uses GCC 4.7 as well, so
+if building ports from source is desired, don't block building of the
+secondary compiler.
 
 +-----------------------------------------------------------------------+
 +         UPGRADING DRAGONFLY FROM 3.8 TO LATER VERSIONS                +
index a885c4e..fb6ec47 100644 (file)
@@ -33,7 +33,7 @@
 STD_INCOPT="-nostdinc -iprefix ${INCPREFIX} -iwithprefixbefore /usr/include"
 DPORT_GCC_STD_INCOPTXX="-isystem /usr/local/lib/${CCVER}/include/c++ \
        -isystem /usr/local/lib/${CCVER}/include/c++/${MACHARCH}-portbld-${MACHREL}"
-DPORT_CLANG_STD_INCOPTXX="-isystem /usr/include/c++/4.7"
+DPORT_CLANG_STD_INCOPTXX="-isystem /usr/include/c++/5.0"
 
 
 # For each custom compiler definition, it is mandatory to define the
@@ -48,7 +48,7 @@ DPORT_CLANG_STD_INCOPTXX="-isystem /usr/include/c++/4.7"
 #     <CCVER>_CFLAGS     (extra CFLAGS)
 #     <CCVER>_CXXFLAGS   (extra CXXFLAGS)
 #     <CCVER>_CPPFLAGS   (extra CPPFLAGS)
-#     <CCVER>_GCOV       (path to gcov, /usr/libexec/gcc47/gcov is default)
+#     <CCVER>_GCOV       (path to gcov, /usr/libexec/gcc50/gcov is default)
 #
 # The following commands call the base compilers by default:
 #     gcc, g++, clang, clang++, clang-cpp
index 3fde1c8..e0cba76 100644 (file)
@@ -40,7 +40,7 @@
 # an experimental compiler might be broken at any time.  We currently
 # recommend that an override NOT be set in /etc/make.conf.
 #
-#CCVER?=gcc47  # (use GCC 4.7, default)
+#CCVER?=gcc50  # (use GCC 5, default)
 #
 # CFLAGS controls the compiler settings used when compiling C code.
 # Note that optimization settings above -O (-O2, ...) are not recommended
@@ -102,10 +102,10 @@ THREAD_LIB?=      thread_xu
 #
 # To avoid building various parts of the base system:
 #NO_ALTBINUTILS=true   # do not build the alternative set of binutils
+#NO_ALTCOMPILER=true   # do not build GCC 4.7
 #NO_CRYPT=     true    # do not build crypto code
 #NO_CVS=       true    # do not build CVS
 #NO_GAMES=     true    # do not enter the games subdirectory
-#NO_GCC50=     true    # do not build GCC 5.0
 #NO_GDB=       true    # do not build GDB
 #NO_LIBC_R=    true    # do not build libc_r (re-entrant version of libc)
 #NO_LPR=       true    # do not build lpr and related programs
index 1bd50e9..f107780 100644 (file)
@@ -1,11 +1,11 @@
 # The libobjc header conflict between base compilers has been resolved
 # Maximum parallelism can be restored by setting SUBDIR_ORDERED to null
 
-.if !defined(NO_GCC50)
 SUBDIR= gcc50
-.endif
 
+.if !defined(NO_ALTCOMPILER)
 SUBDIR+= gcc47
+.endif
 
 SUBDIR+= libcryptsetup
 SUBDIR+= libdevmapper
index fa78712..3cfc8ca 100644 (file)
@@ -20,13 +20,13 @@ SUBDIR+= ${BU_BACKUP}
 SUBDIR+= gmp
 SUBDIR+= mpfr
 SUBDIR+= mpc
-SUBDIR+= cc47
+SUBDIR+= cc50
 
-.if defined(NO_GCC50)
-.ORDER: ${BU_PRIMARY} gmp mpfr mpc cc47
+.if defined(NO_ALTCOMPILER)
+.ORDER: ${BU_PRIMARY} gmp mpfr mpc cc50
 .else
-SUBDIR+= cc50
-.ORDER: ${BU_PRIMARY} gmp mpfr mpc cc47 cc50
+SUBDIR+= cc47
+.ORDER: ${BU_PRIMARY} gmp mpfr mpc cc50 cc47
 .endif
 
 # maximum parallelism
index f7c4e14..7b4e96d 100644 (file)
@@ -4,14 +4,14 @@
 # to name the man pages and if it should hardlink a generic man page to it.
 # The same approach is used for the two sets of binutils
 
-CC_PRIMARY=    gcc47
-CC_BACKUP=     gcc50
+CC_PRIMARY=    gcc50
+CC_BACKUP=     gcc47
 
 .if defined(COMPVERSION)
 .if (${COMPVERSION} == ${CC_PRIMARY})
 IS_PRIMARY=    1
-MANPAGEVER=    47
-.elif (${COMPVERSION} == ${CC_BACKUP})
 MANPAGEVER=    50
+.elif (${COMPVERSION} == ${CC_BACKUP})
+MANPAGEVER=    47
 .endif
 .endif
index ceaada8..10ccbb0 100644 (file)
@@ -48,7 +48,7 @@ case ${CNAME} in
                        COMPILER=${CUSTOM_GCC}
                        INCOPT=`eval echo \$\{${CCVER}_INCOPT\}`
                else
-                       COMPILER=/usr/libexec/gcc47/gcc
+                       COMPILER=/usr/libexec/gcc50/gcc
                        INCOPT=${STD_INCOPT}
                fi
                ;;
@@ -59,7 +59,7 @@ case ${CNAME} in
                        INCOPT=`eval echo \$\{${CCVER}_INCOPT\}`
                        INCOPTCXX=`eval echo \$\{${CCVER}_INCOPTCXX\}`
                else
-                       COMPILER=/usr/libexec/gcc47/g++
+                       COMPILER=/usr/libexec/gcc50/g++
                        INCOPT=${GCC_INCOPT}
                        INCOPTCXX="-isystem /usr/include/c++/4.7"
                fi
@@ -132,7 +132,7 @@ case ${CNAME} in
                if [ -n  "${CUSTOM_GCOV}" ]; then
                        exec ${CUSTOM_GCOV} "$@"
                else
-                       exec /usr/libexec/gcc47/gcov "$@"
+                       exec /usr/libexec/gcc50/gcov "$@"
                fi
                ;;
        *)
index 2f8402b..1cfa5e1 100644 (file)
@@ -118,9 +118,9 @@ We currently recommend that an override NOT be set in
 Currently accepted values for compilers which are part of
 .Dx
 are
-.Dq gcc50
-and
 .Dq gcc47
+and
+.Dq gcc50
 (default).
 All other values will handled according to the settings in
 .Xr compilers.conf 5 .
@@ -383,6 +383,9 @@ Set to build modules with the system instead of the kernel.
 .It Va NO_ALTBINUTILS
 .Pq Vt bool
 Set to not build the alternative (non-default) set of binutils.
+.It Va NO_ALTCOMPILER
+.Pq Vt bool
+Set to not build the designated secondary compiler (GCC 4.7).
 .It Va NO_CRYPT
 .Pq Vt bool
 Set to not build crypto code.
@@ -392,9 +395,6 @@ Set to not build CVS.
 .It Va NO_GAMES
 .Pq Vt bool
 Set to not build games.
-.It Va NO_GCC50
-.Pq Vt bool
-Set to not build the alternative version of GCC (5.0).
 .It Va NO_GDB
 .Pq Vt bool
 Set to not build
index 0bfac07..651c69c 100644 (file)
@@ -14,7 +14,7 @@
 # If the host system does not have the desired compiler for HOST_CCVER
 # we back off to something it probably does have.
 
-_DEFAULT_CCVER=                gcc47
+_DEFAULT_CCVER=                gcc50
 _DEFAULT_BINUTILSVER=  binutils225
 
 CCVER ?= ${_DEFAULT_CCVER}
index f48ebef..9331fd8 100644 (file)
  * 400102 - Sound system update from FreeBSD
  * 400103 - Milestone - availability of gcc50 in base
  * 400104 - struct lwp_params (a public struct) members renaming
+ * 400105 - Switch to gcc50 as the primary compiler
  */
 #undef __DragonFly_version
-#define __DragonFly_version 400104     /* propagated to newvers */
+#define __DragonFly_version 400105     /* propagated to newvers */
 
 #include <sys/_null.h>
 
index b451ec2..9038160 100644 (file)
@@ -122,7 +122,7 @@ world32: checkq
 
 world64: checkq
        cd ${SRCDIR} && \
-           make -j 4 TARGET_ARCH=x86_64 TARGET_PLATFORM=pc64 NO_GCC50=1 \
+           make -j 4 TARGET_ARCH=x86_64 TARGET_PLATFORM=pc64 NO_ALTCOMPILER=1 \
            buildworld
 
 kernel64: checkq
@@ -135,7 +135,7 @@ kernel64: checkq
 #
 quickworld64: checkq
        cd ${SRCDIR} && \
-           make -j 4 TARGET_ARCH=x86_64 TARGET_PLATFORM=pc64 NO_GCC50=1 \
+           make -j 4 TARGET_ARCH=x86_64 TARGET_PLATFORM=pc64 NO_ALTCOMPILER=1 \
            quickworld
 
 quickkernel64: checkq
@@ -176,7 +176,7 @@ umount: check
 install64: mount
        cd ${SRCDIR} && \
            make -j 4 TARGET_ARCH=x86_64 TARGET_PLATFORM=pc64 \
-                DESTDIR=${QEMUDIR}/root NO_GCC50=1 installworld
+                DESTDIR=${QEMUDIR}/root NO_ALTCOMPILER=1 installworld
        cd ${SRCDIR}/etc && \
            make -j 4 TARGET_ARCH=x86_64 TARGET_PLATFORM=pc64 \
                 DESTDIR=${QEMUDIR}/root distribution
@@ -201,7 +201,7 @@ reinstall64: mount
        @echo "      64 bit kernel"
        cd ${SRCDIR} && \
            make -j 4 TARGET_ARCH=x86_64 TARGET_PLATFORM=pc64 \
-                DESTDIR=${QEMUDIR}/root NO_GCC50=1 installworld
+                DESTDIR=${QEMUDIR}/root NO_ALTCOMPILER=1 installworld
 
 reinstallkernel64: mount
        cd ${SRCDIR} && \
index 33e2b7f..4de25d9 100644 (file)
@@ -37,7 +37,7 @@
 #include <unistd.h>
 
 #ifndef CCVER_DEFAULT
-#define CCVER_DEFAULT "gcc47"
+#define CCVER_DEFAULT "gcc50"
 #endif
 
 #ifndef BINUTILSVER_DEFAULT