Quantcast
Channel: Active questions tagged gcc - Stack Overflow
Viewing all articles
Browse latest Browse all 22310

How to change the option of GCC compiler?

$
0
0

I observe with the following command :

$ gcc -v

That my compiler has by default the generation of PIE (position independant executable).I want to disable this option, because my OS misidentify ELF file when this option is enable.Does anyone know how to do this ?Here is the Makefile from Buildroot 2020.02.01 I use

.SUFFIXES:SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \     else if [ -x /bin/bash ]; then echo /bin/bash; \     else echo sh; fi; fi)ifneq ("$(origin O)", "command line")O := $(CURDIR)/outputendifoverride O := $(patsubst %/,%,$(patsubst %.,%,$(O)))CANONICAL_O := $(shell mkdir -p $(O) >/dev/null 2>&1)$(realpath $(O))ifneq ($(findstring @,$(CANONICAL_O)),)$(error The build directory can not contain a '@')endifCANONICAL_CURDIR = $(realpath $(CURDIR))REQ_UMASK = 0022EXTRAMAKEARGS := O=$(CANONICAL_O)ifneq ($(shell umask):$(CURDIR):$(O),$(REQ_UMASK):$(CANONICAL_CURDIR):$(CANONICAL_O)).PHONY: _all $(MAKECMDGOALS)$(MAKECMDGOALS): _all    @:_all:    @umask $(REQ_UMASK) && \        $(MAKE) -C $(CANONICAL_CURDIR) --no-print-directory \            $(MAKECMDGOALS) $(EXTRAMAKEARGS)elseall:.PHONY: allexport BR2_VERSION := 2020.02.1BR2_VERSION_EPOCH = 1586551000RUNNING_MAKE_VERSION := $(MAKE_VERSION)MIN_MAKE_VERSION = 3.81ifneq ($(firstword $(sort $(RUNNING_MAKE_VERSION) $(MIN_MAKE_VERSION))),$(MIN_MAKE_VERSION))$(error You have make '$(RUNNING_MAKE_VERSION)' installed. GNU make >= $(MIN_MAKE_VERSION) is required)endifTOPDIR := $(CURDIR)CONFIG_CONFIG_IN = Config.inCONFIG = support/kconfigDATE := $(shell date +%Y%m%d)export BR2_VERSION_FULL := $(BR2_VERSION)$(shell $(TOPDIR)/support/scripts/setlocalversion)noconfig_targets := menuconfig nconfig gconfig xconfig config oldconfig randconfig \    defconfig %_defconfig allyesconfig allnoconfig alldefconfig syncconfig release \    randpackageconfig allyespackageconfig allnopackageconfig \    print-version olddefconfig distclean manual manual-% check-packagenobuild_targets := source %-source \    legal-info %-legal-info external-deps _external-deps \    clean distclean help show-targets graph-depends \    %-graph-depends %-show-depends %-show-version \    graph-build graph-size list-defconfigs \    savedefconfig update-defconfig printvarsifeq ($(MAKECMDGOALS),)BR_BUILDING = yelse ifneq ($(filter-out $(nobuild_targets),$(MAKECMDGOALS)),)BR_BUILDING = yendifMAKEOVERRIDES :=include support/misc/utils.mkifeq ($(O),$(CURDIR)/output)CONFIG_DIR := $(CURDIR)NEED_WRAPPER =elseCONFIG_DIR := $(O)NEED_WRAPPER = yendifexport CDPATH :=BASE_DIR := $(CANONICAL_O)$(if $(BASE_DIR),, $(error output directory "$(O)" does not exist))BR2_EXTERNAL_FILE = $(BASE_DIR)/.br2-external.mk-include $(BR2_EXTERNAL_FILE)$(shell support/scripts/br2-external -d '$(BASE_DIR)' $(BR2_EXTERNAL))BR2_EXTERNAL_ERROR =include $(BR2_EXTERNAL_FILE)ifneq ($(BR2_EXTERNAL_ERROR),)$(error $(BR2_EXTERNAL_ERROR))endif$(BASE_DIR)/.br2-external.mk:;ifneq ($(BR2_DL_DIR),)DL_DIR := $(BR2_DL_DIR)endififneq ($(BR2_CCACHE_DIR),)BR_CACHE_DIR := $(BR2_CCACHE_DIR)endifBR_GRAPH_OUT := $(or $(BR2_GRAPH_OUT),pdf)BUILD_DIR := $(BASE_DIR)/buildBINARIES_DIR := $(BASE_DIR)/imagesBASE_TARGET_DIR := $(BASE_DIR)/targetPER_PACKAGE_DIR := $(BASE_DIR)/per-packageHOST_DIR := $(BASE_DIR)/hostGRAPHS_DIR := $(BASE_DIR)/graphsLEGAL_INFO_DIR = $(BASE_DIR)/legal-infoREDIST_SOURCES_DIR_TARGET = $(LEGAL_INFO_DIR)/sourcesREDIST_SOURCES_DIR_HOST = $(LEGAL_INFO_DIR)/host-sourcesLICENSE_FILES_DIR_TARGET = $(LEGAL_INFO_DIR)/licensesLICENSE_FILES_DIR_HOST = $(LEGAL_INFO_DIR)/host-licensesLEGAL_MANIFEST_CSV_TARGET = $(LEGAL_INFO_DIR)/manifest.csvLEGAL_MANIFEST_CSV_HOST = $(LEGAL_INFO_DIR)/host-manifest.csvLEGAL_WARNINGS = $(LEGAL_INFO_DIR)/.warningsLEGAL_REPORT = $(LEGAL_INFO_DIR)/READMECUSTOM_DIR = $(call qstrip,$(BR2_CUSTOM_DIR))BR2_CONFIG = $(CONFIG_DIR)/.configifeq ($(filter $(noconfig_targets),$(MAKECMDGOALS)),)-include $(BR2_CONFIG)endififeq ($(BR2_PER_PACKAGE_DIRECTORIES),).NOTPARALLEL:endififeq ($(BR2_REPRODUCIBLE),y)export TZ = UTCexport LANG = Cexport LC_ALL = Cendififeq ("$(origin V)", "command line")  KBUILD_VERBOSE = $(V)endififndef KBUILD_VERBOSE  KBUILD_VERBOSE = 0endififeq ($(KBUILD_VERBOSE),1)  Q =ifndef VERBOSE  VERBOSE = 1endifexport VERBOSEelse  Q = @endifCONFIG_SHELL := $(SHELL)export SHELL CONFIG_SHELL Q KBUILD_VERBOSEifndef HOSTARHOSTAR := arendififndef HOSTASHOSTAS := asendififndef HOSTCCHOSTCC := gccHOSTCC := $(shell which $(HOSTCC) || type -p $(HOSTCC) || echo gcc)endifHOSTCC_NOCCACHE := $(HOSTCC)ifndef HOSTCXXHOSTCXX := g++HOSTCXX := $(shell which $(HOSTCXX) || type -p $(HOSTCXX) || echo g++)endifHOSTCXX_NOCCACHE := $(HOSTCXX)ifndef HOSTCPPHOSTCPP := cppendififndef HOSTLDHOSTLD := ldendififndef HOSTLNHOSTLN := lnendififndef HOSTNMHOSTNM := nmendififndef HOSTOBJCOPYHOSTOBJCOPY := objcopyendififndef HOSTRANLIBHOSTRANLIB := ranlibendifHOSTAR := $(shell which $(HOSTAR) || type -p $(HOSTAR) || echo ar)HOSTAS := $(shell which $(HOSTAS) || type -p $(HOSTAS) || echo as)HOSTCPP := $(shell which $(HOSTCPP) || type -p $(HOSTCPP) || echo cpp)HOSTLD := $(shell which $(HOSTLD) || type -p $(HOSTLD) || echo ld)HOSTLN := $(shell which $(HOSTLN) || type -p $(HOSTLN) || echo ln)HOSTNM := $(shell which $(HOSTNM) || type -p $(HOSTNM) || echo nm)HOSTOBJCOPY := $(shell which $(HOSTOBJCOPY) || type -p $(HOSTOBJCOPY) || echo objcopy)HOSTRANLIB := $(shell which $(HOSTRANLIB) || type -p $(HOSTRANLIB) || echo ranlib)SED := $(shell which sed || type -p sed) -i -eexport HOSTAR HOSTAS HOSTCC HOSTCXX HOSTLDexport HOSTCC_NOCCACHE HOSTCXX_NOCCACHEexport HOSTARCH := $(shell LC_ALL=C $(HOSTCC_NOCCACHE) -v 2>&1 | \    sed -e '/^Target: \([^-]*\).*/!d' \        -e 's//\1/' \        -e 's/i.86/x86/' \        -e 's/sun4u/sparc64/' \        -e 's/arm.*/arm/' \        -e 's/sa110/arm/' \        -e 's/ppc64/powerpc64/' \        -e 's/ppc/powerpc/' \        -e 's/macppc/powerpc/' \        -e 's/sh.*/sh/' )HOSTCC_MAX_VERSION := 9HOSTCC_VERSION := $(shell V=$$($(HOSTCC_NOCCACHE) --version | \    sed -n -r 's/^.* ([0-9]*)\.([0-9]*)\.([0-9]*)[ ]*.*/\1 \2/p'); \    [ "$${V%% *}" -le $(HOSTCC_MAX_VERSION) ] || V=$(HOSTCC_MAX_VERSION); \    printf "%s""$${V}")ifneq ($(firstword $(HOSTCC_VERSION)),4)HOSTCC_VERSION := $(firstword $(HOSTCC_VERSION))endififeq ($(BR2_NEEDS_HOST_UTF8_LOCALE),y)HOST_UTF8_LOCALE := $(shell \            ( echo $${LC_ALL:-$${LC_MESSAGES:-$${LANG}}}; \              locale -a 2>/dev/null | LC_ALL=C sort \            ) \            | grep -i -E 'utf-?8$$' \            | head -n 1)HOST_UTF8_LOCALE_ENV := LC_ALL=$(HOST_UTF8_LOCALE)endifHOST_PKG_CONFIG_PATH := $(PKG_CONFIG_PATH)unexport PKG_CONFIG_PATHunexport PKG_CONFIG_SYSROOT_DIRunexport PKG_CONFIG_LIBDIRunexport DESTDIRunexport RUBYOPTinclude package/pkg-utils.mkinclude package/doc-asciidoc.mkifeq ($(BR2_HAVE_DOT_CONFIG),y)unexport CROSS_COMPILEunexport ARCHunexport CCunexport LDunexport ARunexport CXXunexport CPPunexport RANLIBunexport CFLAGSunexport CXXFLAGSunexport GREP_OPTIONSunexport TAR_OPTIONSunexport CONFIG_SITEunexport QMAKESPECunexport TERMINFOunexport MACHINEunexport Ounexport GCC_COLORSunexport PLATFORMunexport OSGNU_HOST_NAME := $(shell support/gnuconfig/config.guess)PACKAGES :=PACKAGES_ALL :=QUIET := $(if $(findstring s,$(filter-out --%,$(MAKEFLAGS))),-q)ARCH := $(call qstrip,$(BR2_ARCH))KERNEL_ARCH := $(shell echo "$(ARCH)" | sed -e "s/-.*//" \    -e s/i.86/i386/ -e s/sun4u/sparc64/ \    -e s/arcle/arc/ \    -e s/arceb/arc/ \    -e s/arm.*/arm/ -e s/sa110/arm/ \    -e s/aarch64.*/arm64/ \    -e s/nds32.*/nds32/ \    -e s/or1k/openrisc/ \    -e s/parisc64/parisc/ \    -e s/powerpc64.*/powerpc/ \    -e s/ppc.*/powerpc/ -e s/mips.*/mips/ \    -e s/riscv.*/riscv/ \    -e s/sh.*/sh/ \    -e s/microblazeel/microblaze/)ZCAT := $(call qstrip,$(BR2_ZCAT))BZCAT := $(call qstrip,$(BR2_BZCAT))XZCAT := $(call qstrip,$(BR2_XZCAT))LZCAT := $(call qstrip,$(BR2_LZCAT))TAR_OPTIONS = $(call qstrip,$(BR2_TAR_OPTIONS)) -xfifeq ($(BR2_PER_PACKAGE_DIRECTORIES),y)HOST_DIR = $(if $(PKG),$(PER_PACKAGE_DIR)/$($(PKG)_NAME)/host,$(call qstrip,$(BR2_HOST_DIR)))TARGET_DIR = $(if $(ROOTFS),$(ROOTFS_$(ROOTFS)_TARGET_DIR),$(if $(PKG),$(PER_PACKAGE_DIR)/$($(PKG)_NAME)/target,$(BASE_TARGET_DIR)))elseHOST_DIR := $(call qstrip,$(BR2_HOST_DIR))TARGET_DIR = $(if $(ROOTFS),$(ROOTFS_$(ROOTFS)_TARGET_DIR),$(BASE_TARGET_DIR))endififneq ($(HOST_DIR),$(BASE_DIR)/host)HOST_DIR_SYMLINK = $(BASE_DIR)/host$(HOST_DIR_SYMLINK): $(BASE_DIR)    ln -snf $(HOST_DIR) $(HOST_DIR_SYMLINK)endifSTAGING_DIR_SYMLINK = $(BASE_DIR)/staging$(STAGING_DIR_SYMLINK): $(BASE_DIR)    ln -snf $(STAGING_DIR) $(STAGING_DIR_SYMLINK)BR_PATH = "$(HOST_DIR)/bin:$(HOST_DIR)/sbin:$(PATH)"TARGET_DIR_WARNING_FILE = $(TARGET_DIR)/THIS_IS_NOT_YOUR_ROOT_FILESYSTEMifeq ($(BR2_CCACHE),y)CCACHE = $(HOST_DIR)/bin/ccacheBR_CACHE_DIR ?= $(call qstrip,$(BR2_CCACHE_DIR))export BR_CACHE_DIRHOSTCC = $(CCACHE) $(HOSTCC_NOCCACHE)HOSTCXX = $(CCACHE) $(HOSTCXX_NOCCACHE)elseexport BR_NO_CCACHEendifexport BR2_CONFIGexport BR2_REPRODUCIBLEexport TARGET_DIRexport STAGING_DIRexport HOST_DIRexport BINARIES_DIRexport BASE_DIRall: worldinclude Makefile.legacyinclude system/system.mkinclude package/Makefile.ininclude arch/arch.mkinclude support/dependencies/dependencies.mkinclude $(sort $(wildcard toolchain/*.mk))include $(sort $(wildcard toolchain/*/*.mk))ifeq ($(BR2_REPRODUCIBLE),y)ifeq ($(BR2_REPRODUCIBLE_SOURCE_DATE_EPOCH),"")BR2_VERSION_GIT_EPOCH := $(shell $(GIT) log -1 --format=%at 2> /dev/null)export SOURCE_DATE_EPOCH ?= $(or $(BR2_VERSION_GIT_EPOCH),$(BR2_VERSION_EPOCH))elseexport SOURCE_DATE_EPOCH = $(shell date -d $(BR2_REPRODUCIBLE_SOURCE_DATE_EPOCH) +%s)export BR2_VERSION_FULL := $(BR2_VERSION)-$(shell date -d @$(SOURCE_DATE_EPOCH) +%Y%m%d)endifendifPACKAGE_OVERRIDE_FILE = $(call qstrip,$(BR2_PACKAGE_OVERRIDE_FILE))ifneq ($(PACKAGE_OVERRIDE_FILE),)-include $(PACKAGE_OVERRIDE_FILE)endifinclude $(sort $(wildcard package/*/*.mk))include boot/common.mkinclude linux/linux.mkinclude fs/common.mkinclude $(BR2_EXTERNAL_FILE)include $(BR2_EXTERNAL_MKS)ifeq ($(MAKECMDGOALS),)BR_FORCE_CHECK_DEPENDENCIES = YESendififeq ($(BR_FORCE_CHECK_DEPENDENCIES),YES)define CHECK_ONE_DEPENDENCYifeq ($$($(2)_TYPE),target)ifeq ($$($(2)_IS_VIRTUAL),)ifneq ($$($$($(2)_KCONFIG_VAR)),y)$$(error $$($(2)_NAME) is in the dependency chain of $$($(1)_NAME) that \has added it to its _DEPENDENCIES variable without selecting it or \depending on it from Config.in)endifendifendifendef$(foreach pkg,$(call UPPERCASE,$(PACKAGES)),\    $(foreach dep,$(call UPPERCASE,$($(pkg)_FINAL_ALL_DEPENDENCIES)),\        $(eval $(call CHECK_ONE_DEPENDENCY,$(pkg),$(dep))$(sep))))endif$(BUILD_DIR)/buildroot-config/auto.conf: $(BR2_CONFIG)    $(MAKE1) $(EXTRAMAKEARGS) HOSTCC="$(HOSTCC_NOCCACHE)" HOSTCXX="$(HOSTCXX_NOCCACHE)" syncconfig.PHONY: prepareprepare: $(BUILD_DIR)/buildroot-config/auto.conf.PHONY: worldworld: target-post-image.PHONY: prepare-sdkprepare-sdk: world    @$(call MESSAGE,"Rendering the SDK relocatable")    PER_PACKAGE_DIR=$(PER_PACKAGE_DIR) $(TOPDIR)/support/scripts/fix-rpath host    PER_PACKAGE_DIR=$(PER_PACKAGE_DIR) $(TOPDIR)/support/scripts/fix-rpath staging    $(INSTALL) -m 755 $(TOPDIR)/support/misc/relocate-sdk.sh $(HOST_DIR)/relocate-sdk.sh    mkdir -p $(HOST_DIR)/share/buildroot    echo $(HOST_DIR) > $(HOST_DIR)/share/buildroot/sdk-locationBR2_SDK_PREFIX ?= $(GNU_TARGET_NAME)_sdk-buildroot.PHONY: sdksdk: prepare-sdk $(BR2_TAR_HOST_DEPENDENCY)    @$(call MESSAGE,"Generating SDK tarball")    $(if $(BR2_SDK_PREFIX),,$(error BR2_SDK_PREFIX can not be empty))    $(Q)mkdir -p $(BINARIES_DIR)    $(TAR) czf "$(BINARIES_DIR)/$(BR2_SDK_PREFIX).tar.gz" \        --owner=0 --group=0 --numeric-owner \        --transform='s#^$(patsubst /%,%,$(HOST_DIR))#$(BR2_SDK_PREFIX)#' \        -C / $(patsubst /%,%,$(HOST_DIR))RSYNC_VCS_EXCLUSIONS = \    --exclude .svn --exclude .git --exclude .hg --exclude .bzr \    --exclude CVSSTRIP_FIND_COMMON_CMD = \    find $(TARGET_DIR) \    $(if $(call qstrip,$(BR2_STRIP_EXCLUDE_DIRS)), \        \( $(call finddirclauses,$(TARGET_DIR),$(call qstrip,$(BR2_STRIP_EXCLUDE_DIRS))) \) \        -prune -o \    ) \    $(if $(call qstrip,$(BR2_STRIP_EXCLUDE_FILES)), \        -not \( $(call findfileclauses,$(call qstrip,$(BR2_STRIP_EXCLUDE_FILES))) \) )STRIP_FIND_CMD = \    $(STRIP_FIND_COMMON_CMD) \    -type f \( -perm /111 -o -name '*.so*' \) \    -not \( $(call findfileclauses,libpthread*.so* ld-*.so* *.ko) \) \    -print0STRIP_FIND_SPECIAL_LIBS_CMD = \    $(STRIP_FIND_COMMON_CMD) \    \( -name 'ld-*.so*' -o -name 'libpthread*.so*' \) \    -print0ifeq ($(BR2_ECLIPSE_REGISTER),y)define TOOLCHAIN_ECLIPSE_REGISTER    ./support/scripts/eclipse-register-toolchain `readlink -f $(O)` \        $(notdir $(TARGET_CROSS)) $(BR2_ARCH)endefTARGET_FINALIZE_HOOKS += TOOLCHAIN_ECLIPSE_REGISTERendifGLIBC_GENERATE_LOCALES = $(call qstrip,$(BR2_GENERATE_LOCALE))ifneq ($(GLIBC_GENERATE_LOCALES),)PACKAGES += host-localedefdefine GENERATE_GLIBC_LOCALES    $(Q)mkdir -p $(TARGET_DIR)/usr/lib/locale/    $(Q)for locale in $(GLIBC_GENERATE_LOCALES) ; do \        inputfile=`echo $${locale} | cut -f1 -d'.'` ; \        charmap=`echo $${locale} | cut -f2 -d'.' -s` ; \        if test -z "$${charmap}" ; then \            charmap="UTF-8" ; \        fi ; \        echo "Generating locale $${inputfile}.$${charmap}" ; \        I18NPATH=$(STAGING_DIR)/usr/share/i18n:/usr/share/i18n \        $(HOST_DIR)/bin/localedef \            --prefix=$(TARGET_DIR) \            --$(call LOWERCASE,$(BR2_ENDIAN))-endian \            -i $${inputfile} -f $${charmap} \            $${locale} ; \    doneendefTARGET_FINALIZE_HOOKS += GENERATE_GLIBC_LOCALESendifendififeq ($(BR2_ENABLE_LOCALE_PURGE),y)LOCALE_WHITELIST = $(BUILD_DIR)/locales.nopurgeLOCALE_NOPURGE = $(call qstrip,$(BR2_ENABLE_LOCALE_WHITELIST))define PURGE_LOCALES    rm -f $(LOCALE_WHITELIST)    for i in $(LOCALE_NOPURGE) locale-archive; do echo $$i >> $(LOCALE_WHITELIST); done    for dir in $(addprefix $(TARGET_DIR),/usr/share/locale /usr/share/X11/locale /usr/lib/locale); \    do \        if [ ! -d $$dir ]; then continue; fi; \        for langdir in $$dir/*; \        do \            if [ -e "$${langdir}" ]; \            then \                grep -qx "$${langdir##*/}" $(LOCALE_WHITELIST) || rm -rf $$langdir; \            fi \        done; \    done    if [ -d $(TARGET_DIR)/usr/share/X11/locale ]; \    then \        for lang in $(LOCALE_NOPURGE); \        do \            if [ -f $(TARGET_DIR)/usr/share/X11/locale/$$lang/XLC_LOCALE ]; \            then \                echo "$$lang/XLC_LOCALE: $$lang"; \            fi \        done > $(TARGET_DIR)/usr/share/X11/locale/locale.dir; \    fiendefTARGET_FINALIZE_HOOKS += PURGE_LOCALESendif$(TARGETS_ROOTFS): target-finalizetarget-finalize: ROOTFS=TARGET_DIR_FILES_LISTS = $(sort $(wildcard $(BUILD_DIR)/*/.files-list.txt))HOST_DIR_FILES_LISTS = $(sort $(wildcard $(BUILD_DIR)/*/.files-list-host.txt))STAGING_DIR_FILES_LISTS = $(sort $(wildcard $(BUILD_DIR)/*/.files-list-staging.txt)).PHONY: host-finalizehost-finalize: $(PACKAGES) $(HOST_DIR) $(HOST_DIR_SYMLINK)    @$(call MESSAGE,"Finalizing host directory")    $(call per-package-rsync,$(sort $(PACKAGES)),host,$(HOST_DIR)).PHONY: staging-finalizestaging-finalize: $(STAGING_DIR_SYMLINK).PHONY: target-finalizetarget-finalize: $(PACKAGES) $(TARGET_DIR) host-finalize    @$(call MESSAGE,"Finalizing target directory")    $(call per-package-rsync,$(sort $(PACKAGES)),target,$(TARGET_DIR))    $(foreach hook,$(TARGET_FINALIZE_HOOKS),$($(hook))$(sep))    rm -rf $(TARGET_DIR)/usr/include $(TARGET_DIR)/usr/share/aclocal \        $(TARGET_DIR)/usr/lib/pkgconfig $(TARGET_DIR)/usr/share/pkgconfig \        $(TARGET_DIR)/usr/lib/cmake $(TARGET_DIR)/usr/share/cmake    find $(TARGET_DIR)/usr/{lib,share}/ -name '*.cmake' -print0 | xargs -0 rm -f    find $(TARGET_DIR)/lib/ $(TARGET_DIR)/usr/lib/ $(TARGET_DIR)/usr/libexec/ \        \( -name '*.a' -o -name '*.la' \) -print0 | xargs -0 rm -fifneq ($(BR2_PACKAGE_GDB),y)    rm -rf $(TARGET_DIR)/usr/share/gdbendififneq ($(BR2_PACKAGE_BASH),y)    rm -rf $(TARGET_DIR)/usr/share/bash-completionendififneq ($(BR2_PACKAGE_ZSH),y)    rm -rf $(TARGET_DIR)/usr/share/zshendif    rm -rf $(TARGET_DIR)/usr/man $(TARGET_DIR)/usr/share/man    rm -rf $(TARGET_DIR)/usr/info $(TARGET_DIR)/usr/share/info    rm -rf $(TARGET_DIR)/usr/doc $(TARGET_DIR)/usr/share/doc    rm -rf $(TARGET_DIR)/usr/share/gtk-doc    rmdir $(TARGET_DIR)/usr/share 2>/dev/null || true    $(STRIP_FIND_CMD) | xargs -0 $(STRIPCMD) 2>/dev/null || true    $(STRIP_FIND_SPECIAL_LIBS_CMD) | xargs -0 -r $(STRIPCMD) $(STRIP_STRIP_DEBUG) 2>/dev/null || true    find $(TARGET_DIR) -type f -name '*.ko' -print0 | xargs -0 -r $(KSTRIPCMD) || true    test -f $(TARGET_DIR)/etc/ld.so.conf && \        { echo "ERROR: we shouldn't have a /etc/ld.so.conf file"; exit 1; } || true    test -d $(TARGET_DIR)/etc/ld.so.conf.d && \        { echo "ERROR: we shouldn't have a /etc/ld.so.conf.d directory"; exit 1; } || true    mkdir -p $(TARGET_DIR)/etc    ( \        echo "NAME=Buildroot"; \        echo "VERSION=$(BR2_VERSION_FULL)"; \        echo "ID=buildroot"; \        echo "VERSION_ID=$(BR2_VERSION)"; \        echo "PRETTY_NAME=\"Buildroot $(BR2_VERSION)\"" \    ) >  $(TARGET_DIR)/usr/lib/os-release    ln -sf ../usr/lib/os-release $(TARGET_DIR)/etc    @$(call MESSAGE,"Sanitizing RPATH in target tree")    PER_PACKAGE_DIR=$(PER_PACKAGE_DIR) $(TOPDIR)/support/scripts/fix-rpath targetifeq ($(BR2_ROOTFS_MERGED_USR),y)    @$(foreach d, $(call qstrip,$(BR2_ROOTFS_OVERLAY)), \        $(call MESSAGE,"Sanity check in overlay $(d)"); \        not_merged_dirs="$$(support/scripts/check-merged-usr.sh $(d))"; \        test -n "$$not_merged_dirs"&& { \            echo "ERROR: The overlay in $(d) is not" \"using a merged /usr for the following directories:" \                $$not_merged_dirs; \            exit 1; \        } || true$(sep))endif    @$(foreach d, $(call qstrip,$(BR2_ROOTFS_OVERLAY)), \        $(call MESSAGE,"Copying overlay $(d)"); \        $(call SYSTEM_RSYNC,$(d),$(TARGET_DIR))$(sep))    $(if $(TARGET_DIR_FILES_LISTS), \        cat $(TARGET_DIR_FILES_LISTS)) > $(BUILD_DIR)/packages-file-list.txt    $(if $(HOST_DIR_FILES_LISTS), \        cat $(HOST_DIR_FILES_LISTS)) > $(BUILD_DIR)/packages-file-list-host.txt    $(if $(STAGING_DIR_FILES_LISTS), \        cat $(STAGING_DIR_FILES_LISTS)) > $(BUILD_DIR)/packages-file-list-staging.txt    @$(foreach s, $(call qstrip,$(BR2_ROOTFS_POST_BUILD_SCRIPT)), \        $(call MESSAGE,"Executing post-build script $(s)"); \        $(EXTRA_ENV) $(s) $(TARGET_DIR) $(call qstrip,$(BR2_ROOTFS_POST_SCRIPT_ARGS))$(sep))    touch $(TARGET_DIR)/usr.PHONY: target-post-imagetarget-post-image: $(TARGETS_ROOTFS) target-finalize staging-finalize    @rm -f $(ROOTFS_COMMON_TAR)    $(Q)mkdir -p $(BINARIES_DIR)    @$(foreach s, $(call qstrip,$(BR2_ROOTFS_POST_IMAGE_SCRIPT)), \        $(call MESSAGE,"Executing post-image script $(s)"); \        $(EXTRA_ENV) $(s) $(BINARIES_DIR) $(call qstrip,$(BR2_ROOTFS_POST_SCRIPT_ARGS))$(sep)).PHONY: sourcesource: $(foreach p,$(PACKAGES),$(p)-all-source).PHONY: _external-deps external-deps_external-deps: $(foreach p,$(PACKAGES),$(p)-all-external-deps)external-deps:    @$(MAKE1) -Bs $(EXTRAMAKEARGS) _external-deps | sort -u.PHONY: legal-info-cleanlegal-info-clean:    @rm -fr $(LEGAL_INFO_DIR).PHONY: legal-info-preparelegal-info-prepare: $(LEGAL_INFO_DIR)    @$(call MESSAGE,"Buildroot $(BR2_VERSION_FULL) Collecting legal info")    @$(call legal-license-file,buildroot,buildroot,support/legal-info/buildroot.hash,COPYING,COPYING,HOST)    @$(call legal-manifest,TARGET,PACKAGE,VERSION,LICENSE,LICENSE FILES,SOURCE ARCHIVE,SOURCE SITE,DEPENDENCIES WITH LICENSES)    @$(call legal-manifest,HOST,PACKAGE,VERSION,LICENSE,LICENSE FILES,SOURCE ARCHIVE,SOURCE SITE,DEPENDENCIES WITH LICENSES)    @$(call legal-manifest,HOST,buildroot,$(BR2_VERSION_FULL),GPL-2.0+,COPYING,not saved,not saved)    @$(call legal-warning,the Buildroot source code has not been saved)    @cp $(BR2_CONFIG) $(LEGAL_INFO_DIR)/buildroot.config.PHONY: legal-infolegal-info: legal-info-clean legal-info-prepare $(foreach p,$(PACKAGES),$(p)-all-legal-info) \        $(REDIST_SOURCES_DIR_TARGET) $(REDIST_SOURCES_DIR_HOST)    @cat support/legal-info/README.header >>$(LEGAL_REPORT)    @if [ -r $(LEGAL_WARNINGS) ]; then \        cat support/legal-info/README.warnings-header \            $(LEGAL_WARNINGS) >>$(LEGAL_REPORT); \        cat $(LEGAL_WARNINGS); fi    @rm -f $(LEGAL_WARNINGS)    @(cd $(LEGAL_INFO_DIR); \        find * -type f -exec sha256sum {} + | LC_ALL=C sort -k2 \>.legal-info.sha256; \        mv .legal-info.sha256 legal-info.sha256)    @echo "Legal info produced in $(LEGAL_INFO_DIR)".PHONY: show-targetsshow-targets:    @echo $(sort $(PACKAGES)) $(sort $(TARGETS_ROOTFS)).PHONY: show-build-ordershow-build-order: $(patsubst %,%-show-build-order,$(PACKAGES)).PHONY: graph-buildgraph-build: $(O)/build/build-time.log    @install -d $(GRAPHS_DIR)    $(foreach o,name build duration,./support/scripts/graph-build-time \                    --type=histogram --order=$(o) --input=$(<) \                    --output=$(GRAPHS_DIR)/build.hist-$(o).$(BR_GRAPH_OUT) \                    $(if $(BR2_GRAPH_ALT),--alternate-colors)$(sep))    $(foreach t,packages steps,./support/scripts/graph-build-time \                   --type=pie-$(t) --input=$(<) \                   --output=$(GRAPHS_DIR)/build.pie-$(t).$(BR_GRAPH_OUT) \                   $(if $(BR2_GRAPH_ALT),--alternate-colors)$(sep)).PHONY: graph-depends-requirementsgraph-depends-requirements:    @dot -? >/dev/null 2>&1 || \        { echo "ERROR: The 'dot' program from Graphviz is needed for graph-depends">&2; exit 1; }.PHONY: graph-dependsgraph-depends: graph-depends-requirements    @$(INSTALL) -d $(GRAPHS_DIR)    @cd "$(CONFIG_DIR)"; \    $(TOPDIR)/support/scripts/graph-depends $(BR2_GRAPH_DEPS_OPTS) \        --direct -o $(GRAPHS_DIR)/$(@).dot    dot $(BR2_GRAPH_DOT_OPTS) -T$(BR_GRAPH_OUT) \        -o $(GRAPHS_DIR)/$(@).$(BR_GRAPH_OUT) \        $(GRAPHS_DIR)/$(@).dot.PHONY: graph-sizegraph-size:    $(Q)mkdir -p $(GRAPHS_DIR)    $(Q)$(TOPDIR)/support/scripts/size-stats --builddir $(BASE_DIR) \        --graph $(GRAPHS_DIR)/graph-size.$(BR_GRAPH_OUT) \        --file-size-csv $(GRAPHS_DIR)/file-size-stats.csv \        --package-size-csv $(GRAPHS_DIR)/package-size-stats.csv \        $(BR2_GRAPH_SIZE_OPTS).PHONY: check-dependenciescheck-dependencies:    @cd "$(CONFIG_DIR)"; \    $(TOPDIR)/support/scripts/graph-depends -C.PHONY: show-infoshow-info:    @:    $(info $(call clean-json, \            { $(foreach p, \                $(sort $(foreach i,$(PACKAGES) $(TARGETS_ROOTFS), \                        $(i) \                        $($(call UPPERCASE,$(i))_FINAL_RECURSIVE_DEPENDENCIES) \                    ) \                ), \                $(call json-info,$(call UPPERCASE,$(p)))$(comma) \            ) } \        ) \    )else .PHONY: linux toolchainlinux toolchain all: outputmakefile    $(error Please configure Buildroot first (e.g. "make menuconfig"))    @exit 1endif HOSTCFLAGS = $(CFLAGS_FOR_BUILD)export HOSTCFLAGS$(BUILD_DIR)/buildroot-config/%onf:    mkdir -p $(@D)/lxdialog    PKG_CONFIG_PATH="$(HOST_PKG_CONFIG_PATH)" $(MAKE) CC="$(HOSTCC_NOCCACHE)" HOSTCC="$(HOSTCC_NOCCACHE)" \        obj=$(@D) -C $(CONFIG) -f Makefile.br $(@F)DEFCONFIG = $(call qstrip,$(BR2_DEFCONFIG))COMMON_CONFIG_ENV = \    BR2_DEFCONFIG='$(call qstrip,$(value BR2_DEFCONFIG))' \    KCONFIG_AUTOCONFIG=$(BUILD_DIR)/buildroot-config/auto.conf \    KCONFIG_AUTOHEADER=$(BUILD_DIR)/buildroot-config/autoconf.h \    KCONFIG_TRISTATE=$(BUILD_DIR)/buildroot-config/tristate.config \    BR2_CONFIG=$(BR2_CONFIG) \    HOST_GCC_VERSION="$(HOSTCC_VERSION)" \    BASE_DIR=$(BASE_DIR) \    SKIP_LEGACY=xconfig: $(BUILD_DIR)/buildroot-config/qconf outputmakefile    @$(COMMON_CONFIG_ENV) $< $(CONFIG_CONFIG_IN)gconfig: $(BUILD_DIR)/buildroot-config/gconf outputmakefile    @$(COMMON_CONFIG_ENV) srctree=$(TOPDIR) $< $(CONFIG_CONFIG_IN)menuconfig: $(BUILD_DIR)/buildroot-config/mconf outputmakefile    @$(COMMON_CONFIG_ENV) $< $(CONFIG_CONFIG_IN)nconfig: $(BUILD_DIR)/buildroot-config/nconf outputmakefile    @$(COMMON_CONFIG_ENV) $< $(CONFIG_CONFIG_IN)config: $(BUILD_DIR)/buildroot-config/conf outputmakefile    @$(COMMON_CONFIG_ENV) $< $(CONFIG_CONFIG_IN)randconfig allyesconfig alldefconfig allnoconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile    @$(COMMON_CONFIG_ENV) SKIP_LEGACY=y $< --$@ $(CONFIG_CONFIG_IN)    @$(COMMON_CONFIG_ENV) $< --olddefconfig $(CONFIG_CONFIG_IN) >/dev/nullrandpackageconfig allyespackageconfig allnopackageconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile    @grep -v BR2_PACKAGE_ $(BR2_CONFIG) > $(CONFIG_DIR)/.config.nopkg    @$(COMMON_CONFIG_ENV) SKIP_LEGACY=y \        KCONFIG_ALLCONFIG=$(CONFIG_DIR)/.config.nopkg \        $< --$(subst package,,$@) $(CONFIG_CONFIG_IN)    @rm -f $(CONFIG_DIR)/.config.nopkg    @$(COMMON_CONFIG_ENV) $< --olddefconfig $(CONFIG_CONFIG_IN) >/dev/nulloldconfig syncconfig olddefconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile    @$(COMMON_CONFIG_ENV) $< --$@ $(CONFIG_CONFIG_IN)defconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile    @$(COMMON_CONFIG_ENV) $< --defconfig$(if $(DEFCONFIG),=$(DEFCONFIG)) $(CONFIG_CONFIG_IN)define percent_defconfig%_defconfig: $(BUILD_DIR)/buildroot-config/conf $(1)/configs/%_defconfig outputmakefile    @$$(COMMON_CONFIG_ENV) BR2_DEFCONFIG=$(1)/configs/$$@ \        $$< --defconfig=$(1)/configs/$$@ $$(CONFIG_CONFIG_IN)endef$(eval $(foreach d,$(call reverse,$(TOPDIR) $(BR2_EXTERNAL_DIRS)),$(call percent_defconfig,$(d))$(sep)))%_defconfig: $(BUILD_DIR)/buildroot-config/conf $(TOPDIR)/configs/%_defconfig.merge outputmakefile    cd $(TOPDIR)/configs && xargs -a $@.merge -x -P 1 $(TOPDIR)/support/kconfig/merge_config.sh -m -O $(TOPDIR)    $(COMMON_CONFIG_ENV) BR2_DEFCONFIG=$(TOPDIR)/.config \        $< --defconfig=$(TOPDIR)/.config $(CONFIG_CONFIG_IN)%_defconfig: $(BUILD_DIR)/buildroot-config/conf $(BR2_EXTERNAL)/configs/%_defconfig.merge outputmakefile    cd $(BR2_EXTERNAL)/configs && xargs -a $@.merge -x -P 1 $(TOPDIR)/support/kconfig/merge_config.sh -m -O $(TOPDIR)    $(COMMON_CONFIG_ENV) BR2_DEFCONFIG=$(TOPDIR)/.config \        $< --defconfig=$(TOPDIR)/.config $(CONFIG_CONFIG_IN)agv_%: $(BUILD_DIR)/buildroot-config/conf $(TOPDIR)/configs/agv_%_defconfig.merge outputmakefile    cd $(TOPDIR)/configs && xargs -a $@_defconfig.merge -x -P 1 $(TOPDIR)/support/kconfig/merge_config.sh -m -O $(TOPDIR)    $(COMMON_CONFIG_ENV) BR2_DEFCONFIG=$(TOPDIR)/.config \        $< --defconfig=$(TOPDIR)/.config $(CONFIG_CONFIG_IN)update-defconfig: savedefconfigsavedefconfig: $(BUILD_DIR)/buildroot-config/conf outputmakefile    @$(COMMON_CONFIG_ENV) $< \        --savedefconfig=$(if $(DEFCONFIG),$(DEFCONFIG),$(CONFIG_DIR)/defconfig) \        $(CONFIG_CONFIG_IN)    @$(SED) '/BR2_DEFCONFIG=/d' $(if $(DEFCONFIG),$(DEFCONFIG),$(CONFIG_DIR)/defconfig).PHONY: defconfig savedefconfig update-defconfig$(BUILD_DIR) $(BASE_TARGET_DIR) $(HOST_DIR) $(BINARIES_DIR) $(LEGAL_INFO_DIR) $(REDIST_SOURCES_DIR_TARGET) $(REDIST_SOURCES_DIR_HOST) $(PER_PACKAGE_DIR):    @mkdir -p $@.PHONY: outputmakefileoutputmakefile:ifeq ($(NEED_WRAPPER),y)    $(Q)$(TOPDIR)/support/scripts/mkmakefile $(TOPDIR) $(O)endif.PHONY: printvarsprintvars:    @:    $(foreach V, \        $(sort $(filter $(VARS),$(.VARIABLES))), \        $(if $(filter-out environment% default automatic, \                $(origin $V)), \        $(if $(QUOTED_VARS),\            $(info $V='$(subst ','\'',$(if $(RAW_VARS),$(value $V),$($V)))'), \            $(info $V=$(if $(RAW_VARS),$(value $V),$($V)))))).PHONY: cleanclean:    rm -rf $(BASE_TARGET_DIR) $(BINARIES_DIR) $(HOST_DIR) $(HOST_DIR_SYMLINK) \        $(BUILD_DIR) $(BASE_DIR)/staging \        $(LEGAL_INFO_DIR) $(GRAPHS_DIR) $(PER_PACKAGE_DIR).PHONY: distcleandistclean: cleanifeq ($(O),$(CURDIR)/output)    rm -rf $(O)endif    rm -rf $(TOPDIR)/dl $(BR2_CONFIG) $(CONFIG_DIR)/.config.old $(CONFIG_DIR)/..config.tmp \        $(CONFIG_DIR)/.auto.deps $(BASE_DIR)/.br2-external.*define list-defconfigs    @first=true; \    for defconfig in $(1)/configs/*_defconfig; do \        [ -f "$${defconfig}" ] || continue; \        if $${first}; then \            if [ "$(2)" ]; then \                printf 'External configs in "$(call qstrip,$(2))":\n'; \            else \                printf "Built-in configs:\n"; \            fi; \            first=false; \        fi; \        defconfig="$${defconfig##*/}"; \        printf "  %-35s - Build for %s\n""$${defconfig}""$${defconfig%_defconfig}"; \    done; \    $${first} || printf "\n"endef.PHONY: list-defconfigslist-defconfigs:    $(call list-defconfigs,$(TOPDIR))    $(foreach name,$(BR2_EXTERNAL_NAMES),\        $(call list-defconfigs,$(BR2_EXTERNAL_$(name)_PATH),\            $(BR2_EXTERNAL_$(name)_DESC))$(sep))release: OUT = buildroot-$(BR2_VERSION)release:    git archive --format=tar --prefix=$(OUT)/ HEAD > $(OUT).tar    $(MAKE) O=$(OUT) manual-html manual-text manual-pdf    $(MAKE) O=$(OUT) clean    tar rf $(OUT).tar $(OUT)    gzip -9 -c < $(OUT).tar > $(OUT).tar.gz    bzip2 -9 -c < $(OUT).tar > $(OUT).tar.bz2    rm -rf $(OUT) $(OUT).tarprint-version:    @echo $(BR2_VERSION_FULL)check-package:    find $(TOPDIR) -type f \( -name '*.mk' -o -name '*.hash' -o -name 'Config.*' \) \        -exec ./utils/check-package {} +.PHONY: .gitlab-ci.yml.gitlab-ci.yml: .gitlab-ci.yml.in    ./support/scripts/generate-gitlab-ci-yml $< > $@include docs/manual/manual.mk-include $(foreach dir,$(BR2_EXTERNAL_DIRS),$(sort $(wildcard $(dir)/docs/*/*.mk))).PHONY: $(noconfig_targets)endif 

Viewing all articles
Browse latest Browse all 22310

Latest Images

Trending Articles



Latest Images