From a81c14cdffd24266eb9678a04e0965d464927bc3 Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb Date: Fri, 1 Aug 2014 18:29:15 +0200 Subject: when using OpenADK for toolchain building, a musl system have to use -static-libgcc --- adk/config/Makefile | 4 ++-- mk/build.mk | 8 ++++---- mk/vars.mk | 4 ++-- scripts/bulk-toolchain.sh | 30 ++++++++++++++++++++++++++++++ scripts/scan-tools.sh | 2 +- 5 files changed, 39 insertions(+), 9 deletions(-) create mode 100755 scripts/bulk-toolchain.sh diff --git a/adk/config/Makefile b/adk/config/Makefile index d1d8ac73a..1c17f800c 100644 --- a/adk/config/Makefile +++ b/adk/config/Makefile @@ -6,11 +6,11 @@ include ${ADK_TOPDIR}/rules.mk endif CP=cp -fpR -HOST_CFLAGS:=-DKBUILD_NO_NLS -O0 -g0 -w +HOST_CFLAGS:=-DKBUILD_NO_NLS -O0 -g0 -w -static-libgcc all: ncurses conf mconf -LIBS= -lncurses +LIBS= -lncurses -ltinfo ifeq (/usr/include/ncurses/ncurses.h, $(wildcard /usr/include/ncurses/ncurses.h)) HOST_CFLAGS+= -I/usr/include/ncurses -DCURSES_LOC="" else diff --git a/mk/build.mk b/mk/build.mk index 72652c144..dcaf643ab 100644 --- a/mk/build.mk +++ b/mk/build.mk @@ -305,7 +305,7 @@ ifeq ($(filter-out distclean,${MAKECMDGOALS}),) include ${ADK_TOPDIR}/mk/vars.mk else include $(ADK_TOPDIR)/prereq.mk -export HOST_CC BASH MAKE LANGUAGE LC_ALL OStype PATH QEMU SHELL +export HOST_CC HOST_CXX BASH MAKE LANGUAGE LC_ALL OStype PATH QEMU SHELL endif all: menuconfig @@ -509,13 +509,13 @@ buildall: $(GMAKE) VERBOSE=1 all 2>&1 | tee firmware/buildall.log $(ADK_TOPDIR)/adk/tools/pkgmaker: $(ADK_TOPDIR)/adk/tools/pkgmaker.c $(ADK_TOPDIR)/adk/tools/sortfile.c $(ADK_TOPDIR)/adk/tools/strmap.c - @$(HOST_CC) $(HOST_CFLAGS) -o $@ adk/tools/pkgmaker.c adk/tools/sortfile.c adk/tools/strmap.c + @$(HOST_CC) -O0 -g0 -static-libgcc -o $@ adk/tools/pkgmaker.c adk/tools/sortfile.c adk/tools/strmap.c $(ADK_TOPDIR)/adk/tools/pkgrebuild: $(ADK_TOPDIR)/adk/tools/pkgrebuild.c $(ADK_TOPDIR)/adk/tools/strmap.c - @$(HOST_CC) $(HOST_CFLAGS) -o $@ adk/tools/pkgrebuild.c adk/tools/strmap.c + @$(HOST_CC) -O0 -g0 -static-libgcc -o $@ adk/tools/pkgrebuild.c adk/tools/strmap.c $(ADK_TOPDIR)/adk/tools/depmaker: $(ADK_TOPDIR)/adk/tools/depmaker.c - @$(HOST_CC) $(HOST_CFLAGS) -o $@ $(ADK_TOPDIR)/adk/tools/depmaker.c + @$(HOST_CC) -O0 -g0 -static-libgcc -o $@ $(ADK_TOPDIR)/adk/tools/depmaker.c menu .menu: $(wildcard package/*/Makefile) $(wildcard target/*/systems) $(wildcard target/*/systems/*) $(ADK_TOPDIR)/adk/tools/pkgmaker $(ADK_TOPDIR)/adk/tools/pkgrebuild $(wildcard target/*/collections) @echo "Generating menu structure ..." diff --git a/mk/vars.mk b/mk/vars.mk index 128164da0..da79804a5 100644 --- a/mk/vars.mk +++ b/mk/vars.mk @@ -185,8 +185,8 @@ endif # host compiler and linker flags HOST_CPPFLAGS:= -I$(STAGING_HOST_DIR)/usr/include -HOST_CFLAGS:= -O0 -g0 -HOST_CXXFLAGS:= -O0 -g0 +HOST_CFLAGS:= -O0 -g0 -static-libgcc +HOST_CXXFLAGS:= -O0 -g0 -static-libgcc HOST_LDFLAGS:= -L$(STAGING_HOST_DIR)/usr/lib -Wl,-rpath -Wl,${STAGING_HOST_DIR}/usr/lib PATCH= PATH=${HOST_PATH} ${BASH} $(SCRIPT_DIR)/patch.sh diff --git a/scripts/bulk-toolchain.sh b/scripts/bulk-toolchain.sh new file mode 100755 index 000000000..ba087c24f --- /dev/null +++ b/scripts/bulk-toolchain.sh @@ -0,0 +1,30 @@ +#!/bin/sh + +if [ ! -z $1 ];then + c=$1 +else + c="uclibc-ng glibc musl uclibc" +fi + +for libc in $c; do + for arch in $(cat toolchain/$libc/arch.lst);do + echo "Cleaning old stuff" + make cleandir + echo "Building $libc for $arch" + DEFAULT="VERBOSE=1 ADK_TARGET_ARCH=$arch ADK_TARGET_SYSTEM=toolchain-$arch ADK_TARGET_LIBC=$libc" + case $arch in + mips|microblaze|sh) + for endian in little big;do + make $DEFAULT ADK_TARGET_ENDIAN=$endian defconfig all + done + ;; + *) + make $DEFAULT defconfig all + ;; + esac + if [ $? -ne 0 ];then + echo "build failed" + exit 1 + fi + done +done diff --git a/scripts/scan-tools.sh b/scripts/scan-tools.sh index 03d5c845f..988c9cceb 100644 --- a/scripts/scan-tools.sh +++ b/scripts/scan-tools.sh @@ -82,7 +82,7 @@ include ${ADK_TOPDIR}/prereq.mk all: run-test test: test.c - ${HOST_CC} -o $@ $^ ${LDADD} + ${HOST_CC} -static-libgcc -o $@ $^ ${LDADD} run-test: test ./test -- cgit v1.2.3