From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wi0-f175.google.com (mail-wi0-f175.google.com [209.85.212.175]) by dpdk.org (Postfix) with ESMTP id 6BBF4C6E4 for ; Tue, 5 May 2015 09:33:40 +0200 (CEST) Received: by wizk4 with SMTP id k4so148682916wiz.1 for ; Tue, 05 May 2015 00:33:40 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:message-id:date:from:user-agent:mime-version:to :cc:subject:references:in-reply-to:content-type :content-transfer-encoding; bh=KJ83/o0cQ3DvWA+dxH3cLhTCk3i1bhXVqa40mqIO98E=; b=i+FbjB5LyKWBKNB0ZY3E3GOPFBPlrJFS0h8v0/2jad4lZ4dQJXEayGxsrsGxlfx52f GyY7i6iSvKf+pVgyS/3bvoaPH0mxCov7+AARshFpyv86vEraYN0Qn8ne0VfV2xjyrMy+ 6LptZcS8OXuzqSDwSbm6GrR4WV1DZLd2MVDpnZz/etNhp/CpSq/WKmSREwlDGHwhHvuA e2tkpJPKkn9wslaHgbccCrA2Ohja84tf4aXMw5hUv97+swQ0WFXtNkEQithwcMGRuVCM 2k1CbMe7fdwFja0CA/ec7FdhVvd+BBVXfu29TK1K2rPAV1P0UYTV4Kjdny2sLhvBWYoW 6eMw== X-Gm-Message-State: ALoCoQkM/IFGK9R0cFjzzwqhtZWpZK0D+qdiA07ARYD8Keyn2h6TyP5kXgQryQC+OHHrcJ2CEtx4 X-Received: by 10.180.87.105 with SMTP id w9mr1432093wiz.32.1430811220219; Tue, 05 May 2015 00:33:40 -0700 (PDT) Received: from [10.16.0.195] (6wind.net2.nerim.net. [213.41.180.237]) by mx.google.com with ESMTPSA id ch2sm14700682wib.18.2015.05.05.00.33.38 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 05 May 2015 00:33:39 -0700 (PDT) Message-ID: <5548724F.3020604@6wind.com> Date: Tue, 05 May 2015 09:33:35 +0200 From: Olivier MATZ User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Icedove/31.6.0 MIME-Version: 1.0 To: "Wiles, Keith" References: <1430490152-973-1-git-send-email-keith.wiles@intel.com> <5547394E.4020609@6wind.com> , <55478FB9.8000301@6wind.com> In-Reply-To: Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit Cc: "dev@dpdk.org" Subject: Re: [dpdk-dev] [PATCH v6 1/2] Simplify the ifdefs in rte.app.mk. X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 05 May 2015 07:33:40 -0000 Hi Keith, On 05/04/2015 06:50 PM, Wiles, Keith wrote: > > > Sent from my iPhone > >> On May 4, 2015, at 8:27 AM, Olivier MATZ wrote: >> >> >> >>> On 05/04/2015 04:36 PM, Wiles, Keith wrote: >>> >>> >>>> On 5/4/15, 2:18 AM, "Olivier MATZ" wrote: >>>> >>>> Hi Keith, >>>> >>>>> On 05/01/2015 04:22 PM, Keith Wiles wrote: >>>>> Trying to simplify the ifdefs in rte.app.mk to make the code >>>>> more readable and maintainable by moving LDLIBS variable to use >>>>> the same style as LDLIBS-y being used in the rest of the code. >>>>> >>>>> Added a new variable called EXTRA_LDLIBS to be used by example apps >>>>> instead of using LDLIBS directly. The new internal variable _LDLIBS >>>>> should not be used outside of the rte.app.mk file. The makefiles >>>>> can still use LDLIBS, but I would suggest using EXTRA_LDLIBS instead. >>>> >>>> Why are you suggesting to change LIBS to EXTRA_LIBS? >>> >>> Hi Olivier, >>> >>> I do not change LIBS to EXTRA_LIBS as I did not touch those variables. >>> >>> I did add EXTRA_LDLIBS and let LDLIBS as it was in the patch. I also >>> created LDLIBS-y as an internal variable. Did I miss your point here? >> >> In your previous mail, you say "The makefiles can still use LDLIBS, >> but I would suggest using EXTRA_LDLIBS instead." >> >> The question is: why are you suggesting that? >> >> And in the patch you are submitting, you are replacing LDLIBS >> by EXTRA_LDLIBS in examples/dpdk_qat/Makefile and >> examples/vm_power_manager/Makefile. >> > > I thought use the extra variable was the right way in those make files. Could have left them using LDLIBS but does it make any difference? Why are you feeling changing to EXTRA_* is the right way? Are you seeing a problem with the current use of LDLIBS? Like I said previously (and Bruce agreed on that), using EXTRA_* should be avoided in Makefiles because it prevents to append something to the variable from the command line. Regards, Olivier > >> Regards, >> Olivier >> >> >> >>> >>> ++Keith >>> >>>> We discussed in a previous thread that EXTRA_* variables should >>>> (as much as possible) be kept empty in Makefiles as it allows a >>>> user to append things in them. >>>> >>>> By the way, it would be easier to follow the different versions >>>> of your patches if you add "--in-reply-to " in your >>>> git-send-email command, as described in http://dpdk.org/dev >>>> >>>> Regards, >>>> Olivier >>>> >>>> >>>>> >>>>> Signed-off-by: Keith Wiles >>>>> --- >>>>> examples/dpdk_qat/Makefile | 4 +- >>>>> examples/vm_power_manager/Makefile | 2 +- >>>>> mk/rte.app.mk | 242 >>>>> +++++++++---------------------------- >>>>> 3 files changed, 63 insertions(+), 185 deletions(-) >>>>> >>>>> diff --git a/examples/dpdk_qat/Makefile b/examples/dpdk_qat/Makefile >>>>> index f1e06a1..90ca1d3 100644 >>>>> --- a/examples/dpdk_qat/Makefile >>>>> +++ b/examples/dpdk_qat/Makefile >>>>> @@ -77,8 +77,8 @@ else >>>>> ICP_LIBRARY_PATH = $(ICP_ROOT)/build/libicp_qa_al.a >>>>> endif >>>>> >>>>> -LDLIBS += -L$(ICP_ROOT)/build >>>>> -LDLIBS += $(ICP_LIBRARY_PATH) \ >>>>> +EXTRA_LDLIBS += -L$(ICP_ROOT)/build >>>>> +EXTRA_LDLIBS += $(ICP_LIBRARY_PATH) \ >>>>> -lz \ >>>>> -losal \ >>>>> -ladf_proxy \ >>>>> diff --git a/examples/vm_power_manager/Makefile >>>>> b/examples/vm_power_manager/Makefile >>>>> index 113dbc4..8fb78d4 100644 >>>>> --- a/examples/vm_power_manager/Makefile >>>>> +++ b/examples/vm_power_manager/Makefile >>>>> @@ -48,7 +48,7 @@ SRCS-y += channel_monitor.c >>>>> CFLAGS += -O3 -I$(RTE_SDK)/lib/librte_power/ >>>>> CFLAGS += $(WERROR_FLAGS) >>>>> >>>>> -LDLIBS += -lvirt >>>>> +EXTRA_LDLIBS += -lvirt >>>>> >>>>> # workaround for a gcc bug with noreturn attribute >>>>> # http://gcc.gnu.org/bugzilla/show_bug.cgi?id=12603 >>>>> diff --git a/mk/rte.app.mk b/mk/rte.app.mk >>>>> index 62a76ae..b8030d2 100644 >>>>> --- a/mk/rte.app.mk >>>>> +++ b/mk/rte.app.mk >>>>> @@ -1,7 +1,7 @@ >>>>> # BSD LICENSE >>>>> # >>>>> -# Copyright(c) 2010-2014 Intel Corporation. All rights reserved. >>>>> -# Copyright(c) 2014 6WIND S.A. >>>>> +# Copyright(c) 2010-2015 Intel Corporation. All rights reserved. >>>>> +# Copyright(c) 2014-2015 6WIND S.A. >>>>> # All rights reserved. >>>>> # >>>>> # Redistribution and use in source and binary forms, with or without >>>>> @@ -51,7 +51,7 @@ LDSCRIPT = $(RTE_LDSCRIPT) >>>>> endif >>>>> >>>>> # default path for libs >>>>> -LDLIBS += -L$(RTE_SDK_BIN)/lib >>>>> +_LDLIBS-y += -L$(RTE_SDK_BIN)/lib >>>>> >>>>> # >>>>> # Include libraries depending on config if NO_AUTOLIBS is not set >>>>> @@ -59,215 +59,93 @@ LDLIBS += -L$(RTE_SDK_BIN)/lib >>>>> # >>>>> ifeq ($(NO_AUTOLIBS),) >>>>> >>>>> -LDLIBS += --whole-archive >>>>> +_LDLIBS-y += --whole-archive >>>>> >>>>> -ifeq ($(CONFIG_RTE_BUILD_COMBINE_LIBS),y) >>>>> -LDLIBS += -l$(RTE_LIBNAME) >>>>> -endif >>>>> +_LDLIBS-$(CONFIG_RTE_BUILD_COMBINE_LIBS) += -l$(RTE_LIBNAME) >>>>> >>>>> ifeq ($(CONFIG_RTE_BUILD_COMBINE_LIBS),n) >>>>> >>>>> -ifeq ($(CONFIG_RTE_LIBRTE_DISTRIBUTOR),y) >>>>> -LDLIBS += -lrte_distributor >>>>> -endif >>>>> - >>>>> -ifeq ($(CONFIG_RTE_LIBRTE_REORDER),y) >>>>> -LDLIBS += -lrte_reorder >>>>> -endif >>>>> +_LDLIBS-$(CONFIG_RTE_LIBRTE_DISTRIBUTOR) += -lrte_distributor >>>>> +_LDLIBS-$(CONFIG_RTE_LIBRTE_REORDER) += -lrte_reorder >>>>> >>>>> -ifeq ($(CONFIG_RTE_LIBRTE_KNI),y) >>>>> ifeq ($(CONFIG_RTE_EXEC_ENV_LINUXAPP),y) >>>>> -LDLIBS += -lrte_kni >>>>> -endif >>>>> +_LDLIBS-$(CONFIG_RTE_LIBRTE_KNI) += -lrte_kni >>>>> +_LDLIBS-$(CONFIG_RTE_LIBRTE_IVSHMEM) += -lrte_ivshmem >>>>> endif >>>>> >>>>> -ifeq ($(CONFIG_RTE_LIBRTE_IVSHMEM),y) >>>>> -ifeq ($(CONFIG_RTE_EXEC_ENV_LINUXAPP),y) >>>>> -LDLIBS += -lrte_ivshmem >>>>> -endif >>>>> -endif >>>>> +_LDLIBS-$(CONFIG_RTE_LIBRTE_PIPELINE) += -lrte_pipeline >>>>> +_LDLIBS-$(CONFIG_RTE_LIBRTE_TABLE) += -lrte_table >>>>> +_LDLIBS-$(CONFIG_RTE_LIBRTE_PORT) += -lrte_port >>>>> +_LDLIBS-$(CONFIG_RTE_LIBRTE_TIMER) += -lrte_timer >>>>> +_LDLIBS-$(CONFIG_RTE_LIBRTE_HASH) += -lrte_hash >>>>> +_LDLIBS-$(CONFIG_RTE_LIBRTE_JOBSTATS) += -lrte_jobstats >>>>> +_LDLIBS-$(CONFIG_RTE_LIBRTE_LPM) += -lrte_lpm >>>>> +_LDLIBS-$(CONFIG_RTE_LIBRTE_POWER) += -lrte_power >>>>> +_LDLIBS-$(CONFIG_RTE_LIBRTE_ACL) += -lrte_acl >>>>> +_LDLIBS-$(CONFIG_RTE_LIBRTE_METER) += -lrte_meter >>>>> >>>>> -ifeq ($(CONFIG_RTE_LIBRTE_PIPELINE),y) >>>>> -LDLIBS += -lrte_pipeline >>>>> -endif >>>>> +_LDLIBS-$(CONFIG_RTE_LIBRTE_SCHED) += -lrte_sched >>>>> +_LDLIBS-$(CONFIG_RTE_LIBRTE_SCHED) += -lm >>>>> +_LDLIBS-$(CONFIG_RTE_LIBRTE_SCHED) += -lrt >>>>> >>>>> -ifeq ($(CONFIG_RTE_LIBRTE_TABLE),y) >>>>> -LDLIBS += -lrte_table >>>>> -endif >>>>> - >>>>> -ifeq ($(CONFIG_RTE_LIBRTE_PORT),y) >>>>> -LDLIBS += -lrte_port >>>>> -endif >>>>> - >>>>> -ifeq ($(CONFIG_RTE_LIBRTE_TIMER),y) >>>>> -LDLIBS += -lrte_timer >>>>> -endif >>>>> - >>>>> -ifeq ($(CONFIG_RTE_LIBRTE_HASH),y) >>>>> -LDLIBS += -lrte_hash >>>>> -endif >>>>> - >>>>> -ifeq ($(CONFIG_RTE_LIBRTE_JOBSTATS),y) >>>>> -LDLIBS += -lrte_jobstats >>>>> -endif >>>>> - >>>>> -ifeq ($(CONFIG_RTE_LIBRTE_LPM),y) >>>>> -LDLIBS += -lrte_lpm >>>>> -endif >>>>> - >>>>> -ifeq ($(CONFIG_RTE_LIBRTE_POWER),y) >>>>> -LDLIBS += -lrte_power >>>>> -endif >>>>> - >>>>> -ifeq ($(CONFIG_RTE_LIBRTE_ACL),y) >>>>> -LDLIBS += -lrte_acl >>>>> -endif >>>>> - >>>>> -ifeq ($(CONFIG_RTE_LIBRTE_METER),y) >>>>> -LDLIBS += -lrte_meter >>>>> -endif >>>>> - >>>>> -ifeq ($(CONFIG_RTE_LIBRTE_SCHED),y) >>>>> -LDLIBS += -lrte_sched >>>>> -LDLIBS += -lm >>>>> -LDLIBS += -lrt >>>>> -endif >>>>> - >>>>> -ifeq ($(CONFIG_RTE_LIBRTE_VHOST), y) >>>>> -LDLIBS += -lrte_vhost >>>>> -endif >>>>> +_LDLIBS-$(CONFIG_RTE_LIBRTE_VHOST) += -lrte_vhost >>>>> >>>>> endif # ! CONFIG_RTE_BUILD_COMBINE_LIBS >>>>> >>>>> -ifeq ($(CONFIG_RTE_LIBRTE_PMD_PCAP),y) >>>>> -LDLIBS += -lpcap >>>>> -endif >>>>> +_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_PCAP) += -lpcap >>>>> >>>>> -ifeq ($(CONFIG_RTE_LIBRTE_VHOST)$(CONFIG_RTE_LIBRTE_VHOST_USER),yn) >>>>> -LDLIBS += -lfuse >>>>> +ifeq ($(CONFIG_RTE_LIBRTE_VHOST_USER),n) >>>>> +_LDLIBS-$(CONFIG_RTE_LIBRTE_VHOST) += -lfuse >>>>> endif >>>>> >>>>> -ifeq ($(CONFIG_RTE_LIBRTE_MLX4_PMD),y) >>>>> -LDLIBS += -libverbs >>>>> -endif >>>>> +_LDLIBS-$(CONFIG_RTE_LIBRTE_MLX4_PMD) += -libverbs >>>>> >>>>> -LDLIBS += --start-group >>>>> +_LDLIBS-y += --start-group >>>>> >>>>> ifeq ($(CONFIG_RTE_BUILD_COMBINE_LIBS),n) >>>>> >>>>> -ifeq ($(CONFIG_RTE_LIBRTE_KVARGS),y) >>>>> -LDLIBS += -lrte_kvargs >>>>> -endif >>>>> - >>>>> -ifeq ($(CONFIG_RTE_LIBRTE_MBUF),y) >>>>> -LDLIBS += -lrte_mbuf >>>>> -endif >>>>> - >>>>> -ifeq ($(CONFIG_RTE_LIBRTE_IP_FRAG),y) >>>>> -LDLIBS += -lrte_ip_frag >>>>> -endif >>>>> - >>>>> -ifeq ($(CONFIG_RTE_LIBRTE_ETHER),y) >>>>> -LDLIBS += -lethdev >>>>> -endif >>>>> - >>>>> -ifeq ($(CONFIG_RTE_LIBRTE_MALLOC),y) >>>>> -LDLIBS += -lrte_malloc >>>>> -endif >>>>> - >>>>> -ifeq ($(CONFIG_RTE_LIBRTE_MEMPOOL),y) >>>>> -LDLIBS += -lrte_mempool >>>>> -endif >>>>> - >>>>> -ifeq ($(CONFIG_RTE_LIBRTE_RING),y) >>>>> -LDLIBS += -lrte_ring >>>>> -endif >>>>> - >>>>> -ifeq ($(CONFIG_RTE_LIBRTE_EAL),y) >>>>> -LDLIBS += -lrte_eal >>>>> -endif >>>>> - >>>>> -ifeq ($(CONFIG_RTE_LIBRTE_CMDLINE),y) >>>>> -LDLIBS += -lrte_cmdline >>>>> -endif >>>>> - >>>>> -ifeq ($(CONFIG_RTE_LIBRTE_CFGFILE),y) >>>>> -LDLIBS += -lrte_cfgfile >>>>> -endif >>>>> - >>>>> -ifeq ($(CONFIG_RTE_LIBRTE_PMD_BOND),y) >>>>> -LDLIBS += -lrte_pmd_bond >>>>> -endif >>>>> - >>>>> -ifeq ($(CONFIG_RTE_LIBRTE_PMD_XENVIRT),y) >>>>> -LDLIBS += -lrte_pmd_xenvirt >>>>> -LDLIBS += -lxenstore >>>>> -endif >>>>> +_LDLIBS-$(CONFIG_RTE_LIBRTE_KVARGS) += -lrte_kvargs >>>>> +_LDLIBS-$(CONFIG_RTE_LIBRTE_MBUF) += -lrte_mbuf >>>>> +_LDLIBS-$(CONFIG_RTE_LIBRTE_IP_FRAG) += -lrte_ip_frag >>>>> +_LDLIBS-$(CONFIG_RTE_LIBRTE_ETHER) += -lethdev >>>>> +_LDLIBS-$(CONFIG_RTE_LIBRTE_MALLOC) += -lrte_malloc >>>>> +_LDLIBS-$(CONFIG_RTE_LIBRTE_MEMPOOL) += -lrte_mempool >>>>> +_LDLIBS-$(CONFIG_RTE_LIBRTE_RING) += -lrte_ring >>>>> +_LDLIBS-$(CONFIG_RTE_LIBRTE_EAL) += -lrte_eal >>>>> +_LDLIBS-$(CONFIG_RTE_LIBRTE_CMDLINE) += -lrte_cmdline >>>>> +_LDLIBS-$(CONFIG_RTE_LIBRTE_CFGFILE) += -lrte_cfgfile >>>>> +_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_BOND) += -lrte_pmd_bond >>>>> + >>>>> +_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_XENVIRT) += -lrte_pmd_xenvirt >>>>> +_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_XENVIRT) += -lxenstore >>>>> >>>>> ifeq ($(CONFIG_RTE_BUILD_SHARED_LIB),n) >>>>> # plugins (link only if static libraries) >>>>> >>>>> -ifeq ($(CONFIG_RTE_LIBRTE_VMXNET3_PMD),y) >>>>> -LDLIBS += -lrte_pmd_vmxnet3_uio >>>>> -endif >>>>> - >>>>> -ifeq ($(CONFIG_RTE_LIBRTE_VIRTIO_PMD),y) >>>>> -LDLIBS += -lrte_pmd_virtio >>>>> -endif >>>>> - >>>>> -ifeq ($(CONFIG_RTE_LIBRTE_ENIC_PMD),y) >>>>> -LDLIBS += -lrte_pmd_enic >>>>> -endif >>>>> - >>>>> -ifeq ($(CONFIG_RTE_LIBRTE_I40E_PMD),y) >>>>> -LDLIBS += -lrte_pmd_i40e >>>>> -endif >>>>> - >>>>> -ifeq ($(CONFIG_RTE_LIBRTE_FM10K_PMD),y) >>>>> -LDLIBS += -lrte_pmd_fm10k >>>>> -endif >>>>> - >>>>> -ifeq ($(CONFIG_RTE_LIBRTE_IXGBE_PMD),y) >>>>> -LDLIBS += -lrte_pmd_ixgbe >>>>> -endif >>>>> - >>>>> -ifeq ($(CONFIG_RTE_LIBRTE_E1000_PMD),y) >>>>> -LDLIBS += -lrte_pmd_e1000 >>>>> -endif >>>>> - >>>>> -ifeq ($(CONFIG_RTE_LIBRTE_MLX4_PMD),y) >>>>> -LDLIBS += -lrte_pmd_mlx4 >>>>> -endif >>>>> - >>>>> -ifeq ($(CONFIG_RTE_LIBRTE_PMD_RING),y) >>>>> -LDLIBS += -lrte_pmd_ring >>>>> -endif >>>>> - >>>>> -ifeq ($(CONFIG_RTE_LIBRTE_PMD_PCAP),y) >>>>> -LDLIBS += -lrte_pmd_pcap >>>>> -endif >>>>> - >>>>> -ifeq ($(CONFIG_RTE_LIBRTE_PMD_AF_PACKET),y) >>>>> -LDLIBS += -lrte_pmd_af_packet >>>>> -endif >>>>> - >>>>> -ifeq ($(CONFIG_RTE_LIBRTE_PMD_NULL),y) >>>>> -LDLIBS += -lrte_pmd_null >>>>> -endif >>>>> - >>>>> -endif # plugins >>>>> +_LDLIBS-$(CONFIG_RTE_LIBRTE_VMXNET3_PMD) += -lrte_pmd_vmxnet3_uio >>>>> +_LDLIBS-$(CONFIG_RTE_LIBRTE_VIRTIO_PMD) += -lrte_pmd_virtio >>>>> +_LDLIBS-$(CONFIG_RTE_LIBRTE_ENIC_PMD) += -lrte_pmd_enic >>>>> +_LDLIBS-$(CONFIG_RTE_LIBRTE_I40E_PMD) += -lrte_pmd_i40e >>>>> +_LDLIBS-$(CONFIG_RTE_LIBRTE_FM10K_PMD) += -lrte_pmd_fm10k >>>>> +_LDLIBS-$(CONFIG_RTE_LIBRTE_IXGBE_PMD) += -lrte_pmd_ixgbe >>>>> +_LDLIBS-$(CONFIG_RTE_LIBRTE_E1000_PMD) += -lrte_pmd_e1000 >>>>> +_LDLIBS-$(CONFIG_RTE_LIBRTE_MLX4_PMD) += -lrte_pmd_mlx4 >>>>> +_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_RING) += -lrte_pmd_ring >>>>> +_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_PCAP) += -lrte_pmd_pcap >>>>> +_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_AF_PACKET) += -lrte_pmd_af_packet >>>>> +_LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_NULL) += -lrte_pmd_null >>>>> + >>>>> +endif # ! $(CONFIG_RTE_BUILD_SHARED_LIB) >>>>> >>>>> endif # ! CONFIG_RTE_BUILD_COMBINE_LIBS >>>>> >>>>> -LDLIBS += $(EXECENV_LDLIBS) >>>>> - >>>>> -LDLIBS += --end-group >>>>> - >>>>> -LDLIBS += --no-whole-archive >>>>> +_LDLIBS-y += $(EXECENV_LDLIBS) >>>>> +_LDLIBS-y += --end-group >>>>> +_LDLIBS-y += --no-whole-archive >>>>> >>>>> endif # ifeq ($(NO_AUTOLIBS),) >>>>> >>>>> -LDLIBS += $(CPU_LDLIBS) >>>>> +LDLIBS += $(_LDLIBS-y) $(EXTRA_LDLIBS) >>>>> >>>>> .PHONY: all >>>>> all: install >>>