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 3DFBF41E93; Tue, 14 Mar 2023 19:04:22 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 065FA40F18; Tue, 14 Mar 2023 19:04:22 +0100 (CET) Received: from mail.lysator.liu.se (mail.lysator.liu.se [130.236.254.3]) by mails.dpdk.org (Postfix) with ESMTP id 14CC040A7E for ; Tue, 14 Mar 2023 19:04:21 +0100 (CET) Received: from mail.lysator.liu.se (localhost [127.0.0.1]) by mail.lysator.liu.se (Postfix) with ESMTP id C433DE5CE for ; Tue, 14 Mar 2023 19:04:20 +0100 (CET) Received: by mail.lysator.liu.se (Postfix, from userid 1004) id C2EBEE4FA; Tue, 14 Mar 2023 19:04:20 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on hermod.lysator.liu.se X-Spam-Level: X-Spam-Status: No, score=-1.4 required=5.0 tests=ALL_TRUSTED, AWL, NICE_REPLY_A autolearn=disabled version=3.4.6 X-Spam-Score: -1.4 Received: from [192.168.1.59] (h-62-63-215-114.A163.priv.bahnhof.se [62.63.215.114]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mail.lysator.liu.se (Postfix) with ESMTPSA id 298F6E5CD; Tue, 14 Mar 2023 19:04:20 +0100 (CET) Message-ID: <075645fc-f40d-82c6-52d5-ce8b23f3cdeb@lysator.liu.se> Date: Tue, 14 Mar 2023 19:04:19 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.7.1 Subject: Re: PIE static library builds To: Bruce Richardson Cc: "dev@dpdk.org" , =?UTF-8?Q?Mattias_R=c3=b6nnblom?= References: Content-Language: en-US From: =?UTF-8?Q?Mattias_R=c3=b6nnblom?= In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Virus-Scanned: ClamAV using ClamSMTP X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org On 2023-03-14 17:29, Bruce Richardson wrote: > On Tue, Mar 14, 2023 at 05:22:02PM +0100, Mattias Rönnblom wrote: >> Hi. >> >> Is the "b_staticpic" meson build option supposed to work with DPDK? >> >> Setting it to "false" (default is "true") causes link failures on Ubuntu >> 22.04, with GCC 9 and 11, on v23.03rc1 and v22.11: >> >> /usr/bin/ld: lib/librte_eal.a.p/eal_common_eal_common_errno.c.o: relocation >> R_X86_64_TPOFF32 against `per_lcore_retval.1' can not be used when making a >> shared object; recompile with -fPIC >> /usr/bin/ld: failed to set dynamic section sizes: bad value >> collect2: error: ld returned 1 exit status >> >> Does something per-lcore/TLS-related require PIC builds, even for static >> libraries? >> > I don't think that is the issue. The "issue" is that DPDK always does both > static and shared builds from the same object files, so without -fPIC the > shared library parts of the build fails. To support not using staticpic, > we'd have to disable building the .so's in those cases, or each C file > built twice. > With "default_library" set to "static", shouldn't the shared objects be skipped? I can see now, they are not. From what I recall, PIC adds a significant overhead compared to PIE, especially with default symbol visibility (e.g., no -fhidden).