From 4301c4661ede91d6007dca80e14b1e74fb50db15 Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb Date: Thu, 20 Feb 2014 07:30:19 +0100 Subject: use special case, do not put CFLAGS always into LDFLAGS --- mk/vars.mk | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'mk') diff --git a/mk/vars.mk b/mk/vars.mk index 540d0e03b..ae290e9a4 100644 --- a/mk/vars.mk +++ b/mk/vars.mk @@ -93,9 +93,15 @@ TARGET_CXXFLAGS:= $(TARGET_CFLAGS_ARCH) -fwrapv -fno-ident $(MODE_FLAGS) TARGET_LDFLAGS:= -L$(STAGING_TARGET_DIR)/lib -L$(STAGING_TARGET_DIR)/usr/lib \ -Wl,-O1 -Wl,-rpath -Wl,/usr/lib \ -Wl,-rpath-link -Wl,${STAGING_TARGET_DIR}/usr/lib \ - $(ADK_TARGET_ABI_LDFLAGS) $(TARGET_CFLAGS_ARCH) + $(ADK_TARGET_ABI_LDFLAGS) # security optimization, see http://www.akkadia.org/drepper/dsohowto.pdf TARGET_LDFLAGS+= -Wl,-z,relro,-z,now +# needed for musl ppc +ifeq ($(ADK_LINUX_PPC),y) +ifeq ($(ADK_TARGET_LIB_MUSL),y) +TARGET_LDFLAGS+= -Wl,--secure-plt +endif +endif ifneq ($(ADK_NATIVE),) TARGET_CPPFLAGS:= -- cgit v1.2.3 From d85027a122a5cfee28bc5b718bf354f2934fec91 Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb Date: Thu, 20 Feb 2014 07:51:04 +0100 Subject: use firmware dir for logs --- mk/build.mk | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) (limited to 'mk') diff --git a/mk/build.mk b/mk/build.mk index 101a5aa05..08d3d01e1 100644 --- a/mk/build.mk +++ b/mk/build.mk @@ -529,7 +529,7 @@ endif # ! ifeq ($(strip $(ADK_HAVE_DOT_CONFIG)),y) bulktoolchain: for libc in uclibc eglibc glibc musl;do \ while read arch; do \ - mkdir -p $(TOPDIR)/bin/toolchain_$${arch}_$$libc; \ + mkdir -p $(TOPDIR)/firmware/toolchain_$${arch}_$$libc; \ ( \ echo === building $$arch $$libc toolchain-$$arch on $$(date); \ tarch=$$(echo $$arch|sed -e "s#el##" -e "s#eb##"); \ @@ -537,7 +537,7 @@ bulktoolchain: $(GMAKE) ARCH=$$tarch SYSTEM=toolchain-$$arch LIBC=$$libc defconfig; \ $(GMAKE) VERBOSE=1 all; if [ $$? -ne 0 ]; then touch .exit;fi; \ rm .config; \ - ) 2>&1 | tee $(TOPDIR)/bin/toolchain_$${arch}_$${libc}/build.log; \ + ) 2>&1 | tee $(TOPDIR)/firmware/toolchain_$${arch}_$${libc}/build.log; \ if [ -f .exit ];then break;fi \ done <${TOPDIR}/target/tarch.lst ;\ if [ -f .exit ];then echo "Bulk build failed!"; rm .exit; exit 1;fi \ @@ -545,14 +545,14 @@ bulktoolchain: release: for libc in uclibc eglibc glibc musl;do \ - mkdir -p $(TOPDIR)/bin/$(SYSTEM)_$(ARCH)_$$libc; \ + mkdir -p $(TOPDIR)/firmware/$(SYSTEM)_$(ARCH)_$$libc; \ ( \ echo === building $$libc on $$(date); \ $(GMAKE) prereq && \ $(GMAKE) ARCH=$(ARCH) SYSTEM=$(SYSTEM) LIBC=$$libc FS=archive allmodconfig; \ $(GMAKE) VERBOSE=1 all; if [ $$? -ne 0 ]; then touch .exit; exit 1;fi; \ rm .config; \ - ) 2>&1 | tee $(TOPDIR)/bin/$(SYSTEM)_$(ARCH)_$$libc/build.log; \ + ) 2>&1 | tee $(TOPDIR)/firmware/$(SYSTEM)_$(ARCH)_$$libc/build.log; \ if [ -f .exit ];then echo "Bulk build failed!"; break;fi \ done if [ -f .exit ];then rm .exit;exit 1;fi @@ -563,14 +563,14 @@ bulk: while read arch; do \ systems=$$(./scripts/getsystems $$arch|grep -v toolchain); \ for system in $$systems;do \ - mkdir -p $(TOPDIR)/bin/$${system}_$${arch}_$$libc; \ + mkdir -p $(TOPDIR)/firmware/$${system}_$${arch}_$$libc; \ ( \ echo === building $$arch $$system $$libc on $$(date); \ $(GMAKE) prereq && \ $(GMAKE) ARCH=$$arch SYSTEM=$$system LIBC=$$libc FS=archive defconfig; \ $(GMAKE) VERBOSE=1 all; if [ $$? -ne 0 ]; then touch .exit; exit 1;fi; \ rm .config; \ - ) 2>&1 | tee $(TOPDIR)/bin/$${system}_$${arch}_$$libc/build.log; \ + ) 2>&1 | tee $(TOPDIR)/firmware/$${system}_$${arch}_$$libc/build.log; \ if [ -f .exit ]; then break;fi \ done; \ if [ -f .exit ]; then break;fi \ @@ -583,14 +583,14 @@ bulkall: while read arch; do \ systems=$$(./scripts/getsystems $$arch| grep -v toolchain); \ for system in $$systems;do \ - mkdir -p $(TOPDIR)/bin/$${system}_$${arch}_$$libc; \ + mkdir -p $(TOPDIR)/firmware/$${system}_$${arch}_$$libc; \ ( \ echo === building $$arch $$system $$libc on $$(date); \ $(GMAKE) prereq && \ $(GMAKE) ARCH=$$arch SYSTEM=$$system LIBC=$$libc FS=archive allconfig; \ $(GMAKE) VERBOSE=1 all; if [ $$? -ne 0 ]; then touch .exit; exit 1;fi; \ rm .config; \ - ) 2>&1 | tee $(TOPDIR)/bin/$${system}_$${arch}_$$libc/build.log; \ + ) 2>&1 | tee $(TOPDIR)/firmware/$${system}_$${arch}_$$libc/build.log; \ if [ -f .exit ]; then break;fi \ done; \ if [ -f .exit ]; then break;fi \ @@ -603,7 +603,7 @@ bulkallmod: while read arch; do \ systems=$$(./scripts/getsystems $$arch| grep -v toolchain); \ for system in $$systems;do \ - mkdir -p $(TOPDIR)/bin/$${system}_$${arch}_$$libc; \ + mkdir -p $(TOPDIR)/firmware/$${system}_$${arch}_$$libc; \ ( \ echo === building $$arch $$system $$libc on $$(date); \ $(GMAKE) prereq && \ @@ -611,7 +611,7 @@ bulkallmod: $(GMAKE) VERBOSE=1 all; if [ $$? -ne 0 ]; then echo $$system-$$libc >.exit; exit 1;fi; \ $(GMAKE) cleantarget; \ rm .config; \ - ) 2>&1 | tee $(TOPDIR)/bin/$${system}_$${arch}_$$libc/build.log; \ + ) 2>&1 | tee $(TOPDIR)/firmware/$${system}_$${arch}_$$libc/build.log; \ if [ -f .exit ]; then break;fi \ done; \ if [ -f .exit ]; then break;fi \ @@ -620,7 +620,7 @@ bulkallmod: done ${TOPDIR}/bin/pkgmaker: $(TOPDIR)/tools/adk/pkgmaker.c $(TOPDIR)/tools/adk/sortfile.c $(TOPDIR)/tools/adk/strmap.c - mkdir -p ${TOPDIR}/bin + @mkdir -p ${TOPDIR}/bin @$(CC_FOR_BUILD) -g -o $@ tools/adk/pkgmaker.c tools/adk/sortfile.c tools/adk/strmap.c ${TOPDIR}/bin/pkgrebuild: $(TOPDIR)/tools/adk/pkgrebuild.c $(TOPDIR)/tools/adk/strmap.c @@ -634,7 +634,7 @@ package/Config.in.auto menu .menu: $(wildcard ${TOPDIR}/package/*/Makefile) ${TO ${TOPDIR}/bin/depmaker: $(TOPDIR)/tools/adk/depmaker.c $(CC_FOR_BUILD) -g -o $(TOPDIR)/bin/depmaker $(TOPDIR)/tools/adk/depmaker.c -dep: $(BIN_DIR)/depmaker +dep: $(TOPDIR)/bin/depmaker @echo "Generating dependencies ..." @$(TOPDIR)/bin/depmaker > ${TOPDIR}/package/Depends.mk -- cgit v1.2.3 From 6c79680171b28dc40d24e0d2fe17117164e97495 Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb Date: Thu, 20 Feb 2014 07:53:01 +0100 Subject: need to use gcc mode thumb, to compile glibc, CFLAGS is not enough --- mk/build.mk | 3 +++ mk/vars.mk | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) (limited to 'mk') diff --git a/mk/build.mk b/mk/build.mk index 101a5aa05..68e63783b 100644 --- a/mk/build.mk +++ b/mk/build.mk @@ -122,6 +122,9 @@ POSTCONFIG= -@\ if [ "$$(grep ^ADK_KERNEL_VERSION_ .config|md5sum)" != "$$(grep ^ADK_KERNEL_VERSION_ .config.old|md5sum)" ];then \ make kernelclean;\ fi; \ + if [ "$$(grep ^ADK_LINUX_ARM_WITH_THUMB .config|md5sum)" != "$$(grep ^ADK_LINUX_ARM_WITH_THUMB .config.old|md5sum)" ];then \ + echo "You should make cleantarget, after changing thumb mode";\ + fi; \ if [ $$rebuild -eq 1 ];then \ cp .config .config.old;\ fi; \ diff --git a/mk/vars.mk b/mk/vars.mk index 540d0e03b..8ee67809f 100644 --- a/mk/vars.mk +++ b/mk/vars.mk @@ -87,7 +87,7 @@ TARGET_CFLAGS:= $(TARGET_CFLAGS_ARCH) -fwrapv -fno-ident $(ADK_TARGET_ABI_CFLAG TARGET_CFLAGS_LIBC:= $(TARGET_CFLAGS_ARCH) -fwrapv -fno-ident $(TARGET_OPTIMIZATION) else TARGET_CFLAGS:= $(TARGET_CFLAGS_ARCH) -fwrapv -fno-ident -fhonour-copts $(ADK_TARGET_ABI_CFLAGS) $(MODE_FLAGS) -TARGET_CFLAGS_LIBC:= $(TARGET_CFLAGS_ARCH) -fwrapv -fno-ident -fhonour-copts $(TARGET_OPTIMIZATION) +TARGET_CFLAGS_LIBC:= $(TARGET_CFLAGS_ARCH) -fwrapv -fno-ident -fhonour-copts $(TARGET_OPTIMIZATION) $(MODE_FLAGS) endif TARGET_CXXFLAGS:= $(TARGET_CFLAGS_ARCH) -fwrapv -fno-ident $(MODE_FLAGS) TARGET_LDFLAGS:= -L$(STAGING_TARGET_DIR)/lib -L$(STAGING_TARGET_DIR)/usr/lib \ -- cgit v1.2.3