From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id D879943B57 for ; Tue, 20 Feb 2024 18:02:03 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id CE66D40685; Tue, 20 Feb 2024 18:02:03 +0100 (CET) Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by mails.dpdk.org (Postfix) with ESMTP id 27A2540289; Tue, 20 Feb 2024 18:02:01 +0100 (CET) Received: by linux.microsoft.com (Postfix, from userid 1086) id 4A93A2083616; Tue, 20 Feb 2024 09:02:00 -0800 (PST) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 4A93A2083616 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1708448520; bh=ar4u2H36IjSkAHz74baG1uynv1CNlJ0DJ30IsBRg0Zc=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=BHcNfsRrA/Pw7FhjH5q9uymgdE5HA1KhGWea8ARFunvlaQ1BJvhwqPtwxBofW0Dj+ c/zMzCsNhgBYYoKU2y90cChhen9v/OvnRyGB0m2/gZIZlUq9La6aW+R2blMpNkJeAX eRTUQ1jlG51a/KWlY5ry1bbYS6sw7PL3k+Z1oR1A= Date: Tue, 20 Feb 2024 09:02:00 -0800 From: Tyler Retzlaff To: Thomas Monjalon Cc: Bruce Richardson , dev@dpdk.org, stable@dpdk.org Subject: Re: [PATCH] build: fix linker warnings about undefined symbols Message-ID: <20240220170200.GA12540@linuxonhyperv3.guj3yctzbm1etfxqx2vob5hsef.xx.internal.cloudapp.net> References: <20240110150103.529080-1-bruce.richardson@intel.com> <20240110165814.GA25069@linuxonhyperv3.guj3yctzbm1etfxqx2vob5hsef.xx.internal.cloudapp.net> <6824308.6fTUFtlzNn@thomas> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <6824308.6fTUFtlzNn@thomas> User-Agent: Mutt/1.5.21 (2010-09-15) X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: stable-bounces@dpdk.org On Sun, Feb 18, 2024 at 06:38:22PM +0100, Thomas Monjalon wrote: > 10/01/2024 17:58, Tyler Retzlaff: > > On Wed, Jan 10, 2024 at 03:01:03PM +0000, Bruce Richardson wrote: > > > The default behaviour of "ld.lld" has changed, so it now prints out > > > warnings about entries in the version.map file which don't exist in > > > the current build. Since we use our version.map file simply to filter > > > out the functions we don't want made public, we include in it all > > > functions across all OS's and builds that we want public if present. > > > This causes these ld warnings to be emitted, e.g. on BSD, which is > > > missing functionality found on Linux. For example: > > > > > > * hpet functions in EAL > > > * regexdev enqueue and dequeue burst > > > * eventdev event_timer functions > > > > > > Easiest solution, without major rework of how we use our version.map > > > files, and without dynamically generating them per-build, is to pass > > > the --undefined-version flag to the linker, to restore the old > > > behaviour. > > > > > > Signed-off-by: Bruce Richardson > > > > Acked-by: Tyler Retzlaff > > +Cc stable > > Applied as easy solution for this linker. > > The discussion about Windows linker and use of macros > deserve to continue, maybe in a new dedicated thread? yes, i will start a new discussion on the topic after clearing other windows / msvc changes as soon as i have time. thanks! > > > i don't know if has ever been discussed but a way to achieve a similar > > outcome would be to introduce a visibility macro allowing the data and > > function symbols to be explicitly made visible while making the build > > default hidden. > > > > https://gcc.gnu.org/wiki/Visibility > > > > on windows symbols are hidden by default (opposite of gnu toolchain) and > > allowing the symbols that are intended to be public be annotated in code > > with a macro instead of a separate map/def file would arguably appear > > more consistent. additionally, the current process of converting a map > > file to a def file for windows has limitations with respect to things > > like marking the type of symbol being exported. > >