Browse Source

allow static building of toolchain

Waldemar Brodkorb 9 years ago
parent
commit
b75624a495
4 changed files with 17 additions and 3 deletions
  1. 8 0
      mk/vars.mk
  2. 2 2
      toolchain/Makefile
  3. 6 1
      toolchain/binutils/Makefile
  4. 1 0
      toolchain/gcc/Makefile

+ 8 - 0
mk/vars.mk

@@ -181,6 +181,14 @@ HOST_LDFLAGS:=		-L$(STAGING_HOST_DIR)/usr/lib -Wl,-rpath -Wl,${STAGING_HOST_DIR}
 
 PATCH=			PATH=${HOST_PATH} ${BASH} $(SCRIPT_DIR)/patch.sh
 PATCHP0=		PATH=${HOST_PATH} patch -p0
+
+ifeq ($(ADK_STATIC_TOOLCHAIN),y)
+HOST_STATIC_CFLAGS:=   -static -Wl,-static
+HOST_STATIC_CXXFLAGS:= -static -Wl,-static
+HOST_STATIC_LDFLAGS:=  -Wl,-static
+HOST_STATIC_LLDFLAGS:= -all-static
+endif
+
 SED:=			PATH=${HOST_PATH} sed -i -e
 LINUX_DIR:=		$(BUILD_DIR)/linux
 KERNEL_MODULE_FLAGS:=	ARCH=${ADK_TARGET_ARCH} \

+ 2 - 2
toolchain/Makefile

@@ -81,7 +81,7 @@ $(CLIB)-fixup: gcc-install gdb-install
 		    $(MAKE_TRACE); \
 	else \
 		$(MAKE) -C $(patsubst %-compile,%,$@) compile \
-		    CC='$(HOST_CC)' CFLAGS='$(HOST_CFLAGS)' $(MAKE_TRACE); \
+		    CC='$(HOST_CC)' CFLAGS='$(HOST_CFLAGS)' CXXFLAGS='$(HOST_STATIC_CXXFLAGS)' $(MAKE_TRACE); \
 	fi
 
 %-install: %-compile
@@ -91,7 +91,7 @@ $(CLIB)-fixup: gcc-install gdb-install
 		    $(MAKE_TRACE); \
 	else \
 		$(MAKE) -C $(patsubst %-install,%,$@) install \
-		    CC='$(HOST_CC)' CFLAGS='$(HOST_CFLAGS)' $(MAKE_TRACE); \
+		    CC='$(HOST_CC)' CFLAGS='$(HOST_CFLAGS)' CXXFLAGS='$(HOST_STATIC_CXXFLAGS)' $(MAKE_TRACE); \
 	fi
 
 %-fixup: %-install

+ 6 - 1
toolchain/binutils/Makefile

@@ -38,6 +38,10 @@ ifeq (${ADK_MAKE_PARALLEL},y)
 BINUTILS_MAKEOPTS+=	-j${ADK_MAKE_JOBS}
 endif
 
+ifeq (${ADK_STATIC_TOOLCHAIN},y)
+BINUTILS_STATIC_MAKEOPTS+=LDFLAGS='$(HOST_STATIC_LLDFLAGS)'
+endif
+
 $(WRKBUILD)/.headers:
 $(WRKBUILD)/.configured:
 ifeq ($(ADK_LINUX_XTENSA),y)
@@ -56,10 +60,11 @@ endif
 		--disable-install-libiberty \
 		${CONFOPTS} \
 	);
+	$(MAKE) ${BINUTILS_MAKEOPTS} -C $(WRKBUILD) configure-host
 	touch $@
 
 $(WRKBUILD)/.compiled: $(WRKBUILD)/.configured
-	$(MAKE) ${BINUTILS_MAKEOPTS} -C $(WRKBUILD) all
+	$(MAKE) ${BINUTILS_MAKEOPTS} ${BINUTILS_STATIC_MAKEOPTS} -C $(WRKBUILD) all
 	touch $@
 
 $(WRKBUILD)/.installed: $(WRKBUILD)/.compiled

+ 1 - 0
toolchain/gcc/Makefile

@@ -231,6 +231,7 @@ $(GCC_BUILD_DIR_FINAL)/.configured:
 			--enable-languages=$(LANGUAGES) \
 			--with-build-sysroot='$${prefix}/${STAGING_HOST2TARGET}' \
 			--with-sysroot='$${prefix}/${STAGING_HOST2TARGET}'
+	$(MAKE) -C $(GCC_BUILD_DIR_FINAL) configure-host
 	touch $@
 
 $(WRKBUILD)/.compiled: $(GCC_BUILD_DIR_FINAL)/.configured