From 9436a026e2e23d207fbdcb9e8bc9b076e3573700 Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb Date: Sat, 22 Jan 2011 22:37:50 +0100 Subject: activate GCC cflags check, cleanup FLAGS stuff in OpenADK. * remove TCFLAGS/TLDFLAGS/TCPPFLAGS and only use TARGET_CFLAGS/TARGET_LDFLAGS/TARGET_CPPFLAGS, ... * activate GCC_HONOUR_COPTS and fix all packages to honour CFLAGS * use CC_FOR_BUILD, CFLAGS_FOR_BUILD, ... for all build compilation, remove HOST* variants * introduce KERNEL_MODULE_FLAGS for external kernel modules * mark rpm package as broken, mark syslinux for native builds only, mark libhugetlb for eglibc/glibc only usage --- mk/vars.mk | 94 +++++++++++++++++++++++++++++++++++++++++++------------------- 1 file changed, 65 insertions(+), 29 deletions(-) (limited to 'mk/vars.mk') diff --git a/mk/vars.mk b/mk/vars.mk index ab247901f..1bc167e52 100644 --- a/mk/vars.mk +++ b/mk/vars.mk @@ -10,24 +10,6 @@ MAKEFLAGS= $(EXTRA_MAKEFLAGS) BUILD_USER= $(shell id -un) BUILD_GROUP= $(shell id -gn) -# target compiler settings -TARGET_CPPFLAGS+= -I${STAGING_TARGET_DIR}/usr/include -TARGET_LDFLAGS+= -Wl,-O2 -ifneq ($(ADK_DEBUG),) -TARGET_DEBUGGING:= -g3 -fno-omit-frame-pointer -else -TARGET_DEBUGGING:= $(TARGET_OPTIMIZATION) -fomit-frame-pointer -endif -TARGET_CFLAGS:= $(TARGET_CFLAGS_ARCH) $(TARGET_DEBUGGING) -fwrapv -ifneq ($(ADK_TOOLCHAIN_GCC_USE_SSP),) -TARGET_CFLAGS+= -fstack-protector -TARGET_CXXFLAGS+= -fstack-protector -TARGET_LDFLAGS+= -fstack-protector -endif -ifneq ($(ADK_TOOLCHAIN_GCC_USE_LTO),) -TARGET_CFLAGS+= -flto -TARGET_LDFLAGS+= -flto -endif BASE_DIR:= $(TOPDIR) DISTDIR?= ${BASE_DIR}/dl @@ -56,35 +38,89 @@ TARGET_PATH= ${SCRIPT_DIR}:${TOOLS_DIR}:${STAGING_HOST_DIR}/bin:${STAGING_HOST_ REAL_GNU_TARGET_NAME= $(CPU_ARCH)-$(ADK_VENDOR)-linux-$(ADK_TARGET_SUFFIX) GNU_TARGET_NAME= $(CPU_ARCH)-$(ADK_VENDOR)-linux ifeq ($(ADK_NATIVE),y) -TARGET_CROSS:= +TARGET_CROSS:= TARGET_COMPILER_PREFIX?= else TARGET_CROSS:= $(STAGING_HOST_DIR)/bin/$(REAL_GNU_TARGET_NAME)- TARGET_COMPILER_PREFIX?=${TARGET_CROSS} endif + +# target compiler flags TARGET_CC:= ${TARGET_COMPILER_PREFIX}gcc TARGET_CXX:= ${TARGET_COMPILER_PREFIX}g++ TARGET_LD:= ${TARGET_COMPILER_PREFIX}ld + +TARGET_CPPFLAGS:= -I${STAGING_TARGET_DIR}/usr/include +TARGET_CFLAGS:= $(TARGET_CFLAGS_ARCH) -fwrapv -fno-ident -fhonour-copts +TARGET_CXXFLAGS:= +TARGET_LDFLAGS:= -Wl,-O2 -Wl,-rpath -Wl,/usr/lib \ + -Wl,-rpath-link -Wl,${STAGING_TARGET_DIR}/usr/lib \ + -L${STAGING_TARGET_DIR}/lib -L${STAGING_TARGET_DIR}/usr/lib + +ifneq ($(ADK_STATIC),) +TARGET_CFLAGS+= -static +TARGET_CXXFLAGS+= -static +TARGET_LDFLAGS+= -static +endif + +ifneq ($(ADK_TOOLCHAIN_GCC_USE_SSP),) +TARGET_CFLAGS+= -fstack-protector +TARGET_CXXFLAGS+= -fstack-protector +TARGET_LDFLAGS+= -fstack-protector +endif + +ifneq ($(ADK_TOOLCHAIN_GCC_USE_LTO),) +TARGET_CFLAGS+= -flto +TARGET_LDFLAGS+= -flto +endif + +ifneq ($(ADK_DEBUG),) +TARGET_CPPFLAGS+= -DNDEBUG +TARGET_CFLAGS+= -g3 -fno-omit-frame-pointer +else +TARGET_CFLAGS+= -fomit-frame-pointer $(TARGET_OPTIMIZATION) +endif + +ifneq ($(ADK_NATIVE),) +TARGET_CPPFLAGS:= +TARGET_CFLAGS:= $(TARGET_OPTIMIZATION) $(TARGET_CFLAGS_ARCH) -fwrapv -fno-ident -fhonour-copts +TARGET_LDFLAGS:= +endif + +# host compiler flags +CPPFLAGS_FOR_BUILD?= +CFLAGS_FOR_BUILD?= -O2 -Wall +CXXFLAGS_FOR_BUILD?= -O2 -Wall +LDFLAGS_FOR_BUILD?= +FLAGS_FOR_BUILD:= ${CPPFLAGS_FOR_BUILD} ${CFLAGS_FOR_BUILD} ${LDFLAGS_FOR_BUILD} + PATCH= ${BASH} $(SCRIPT_DIR)/patch.sh SED:= sed -i -e LINUX_DIR:= $(BUILD_DIR)/linux LINUX_HEADER_DIR:= $(STAGING_TARGET_DIR)/linux-header +KERNEL_MODULE_FLAGS:= ARCH=${ARCH} KERNELVERSION="2.6" \ + KERNEL_PATH=${LINUX_DIR} KERNELDIR=${LINUX_DIR} KERNEL_DIR=${LINUX_DIR} \ + PREFIX=/usr CROSS_COMPILE="${TARGET_CROSS}" \ + CFLAGS_MODULE="-fhonour-copts" V=1 + TARGET_CONFIGURE_OPTS= PATH='${TARGET_PATH}' \ - AR=$(TARGET_CROSS)ar \ - AS=$(TARGET_CROSS)as \ - LD=$(TARGET_CROSS)ld \ - NM=$(TARGET_CROSS)nm \ - RANLIB=$(TARGET_CROSS)ranlib \ + AR='$(TARGET_CROSS)ar' \ + AS='$(TARGET_CROSS)as' \ + LD='$(TARGET_CROSS)ld' \ + NM='$(TARGET_CROSS)nm' \ + RANLIB='$(TARGET_CROSS)ranlib' \ + STRIP='${TARGET_CROSS}strip' \ + OBJCOPY='${TARGET_CROSS}objcopy' \ CC='$(TARGET_CC)' \ GCC='$(TARGET_CC)' \ CXX='$(TARGET_CXX)' \ CROSS='$(TARGET_CROSS)' -HOST_CONFIGURE_OPTS= CC_FOR_BUILD='${HOSTCC}' \ - BUILD_CC='${HOSTCC}' \ - CFLAGS_FOR_BUILD='${HOSTCFLAGS}' \ - CPPFLAGS_FOR_BUILD='${HOSTCPPFLAGS}' \ - LDFLAGS_FOR_BUILD='${HOSTLDFLAGS}' + +HOST_CONFIGURE_OPTS= CC_FOR_BUILD='${CC_FOR_BUILD}' \ + CPPFLAGS_FOR_BUILD='${CPPFLAGS_FOR_BUILD}' \ + CFLAGS_FOR_BUILD='${CFLAGS_FOR_BUILD}' \ + LDFLAGS_FOR_BUILD='${LDFLAGS_FOR_BUILD}' PKG_SUFFIX:= $(strip $(subst ",, $(ADK_PACKAGE_SUFFIX))) -- cgit v1.2.3