cross-tools stage: Don't build unused linker (i.e. gold)
authorJohn Marino <draco@marino.st>
Tue, 31 Mar 2015 18:56:50 +0000 (20:56 +0200)
committerJohn Marino <draco@marino.st>
Tue, 31 Mar 2015 20:06:44 +0000 (22:06 +0200)
Only one linker is used to build the world, but each version of binutils
normally installs two linkers.  Update the build infrastructure to skip
building one linker for the cross-tools version of binutils.  This is
normally the gold linker, which builds very slowly due to being written
in c++.

This change could be backported to binutils 2.24, but right now it only
applies to binutils 2.25, the version normally used to build world.

Makefile.inc1
gnu/usr.bin/binutils225/Makefile
gnu/usr.bin/binutils225/block2/Makefile

index f279d20..5ad8947 100644 (file)
@@ -291,6 +291,7 @@ XMAKEENV=   MAKEOBJDIRPREFIX=${CTOOLSDEST} \
                INSTALL="sh ${.CURDIR}/tools/install.sh" \
                TOOLS_PREFIX=${CTOOLSDEST} \
                USRDATA_PREFIX=${WORLDDEST} \
+               SELECT_LINKER=${WORLD_LDVER} \
                M4=${BTOOLSDEST}/usr/bin/m4 \
                PATH=${BTOOLSPATH}:${PATH}
 
index 56e1beb..5346065 100644 (file)
@@ -1,5 +1,12 @@
 # Binutils 2.25 builds 3 blocks in series
-SUBDIR=        block1 block2 block3
+SUBDIR=        block1 block2
+
+# Don't build gold linker during stage 3 cross-tools unless
+# WORLD_LDVER has been set to ld.gold.  This same check must be included
+# in block 2 where libgold and ld.bfd are built.
+.if !defined(SELECT_LINKER) || ${SELECT_LINKER:Mld.gold}
+SUBDIR+=       block3
+.endif
 
 SUBDIR_ORDERED= ${SUBDIR}
 
index 28637b6..22c44e9 100644 (file)
@@ -5,8 +5,6 @@ SUBDIR= addr2line \
        elfedit \
        gas \
        gprof \
-       libgold \
-       ld \
        nm \
        objcopy \
        objdump \
@@ -16,6 +14,18 @@ SUBDIR=      addr2line \
        strings \
        strip
 
+# Don't build gold linker during stage 3 cross-tools unless
+# WORLD_LDVER has been set to ld.gold (and then don't build ld.bfd)
+.if defined(SELECT_LINKER)
+. if ${SELECT_LINKER:Mld.gold}
+SUBDIR+=       libgold
+. else
+SUBDIR+=       ld
+. endif
+.else
+SUBDIR+=       ld libgold
+.endif
+
 SUBDIR_ORDERED=
 
 .include <bsd.subdir.mk>