From patchwork Mon Jul 11 09:18:50 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Martin_Storsj=C3=B6?= X-Patchwork-Id: 36735 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a21:6da0:b0:8b:e47:9dbf with SMTP id wl32csp1240497pzb; Mon, 11 Jul 2022 02:19:12 -0700 (PDT) X-Google-Smtp-Source: AGRyM1t+MDpDelB1aP1LHwgxNmmNnHfZiVlTSOhHx5MmL+2AlqlfycryhDjgQJDtwu42QnKR6ati X-Received: by 2002:a05:6402:2497:b0:437:a341:9286 with SMTP id q23-20020a056402249700b00437a3419286mr23442974eda.156.1657531152579; Mon, 11 Jul 2022 02:19:12 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1657531152; cv=none; d=google.com; s=arc-20160816; b=mpaQnwOYqPI1F22M/OW+Ipdf9LcG4LAsQ22hbUd4x6ljCVQ7VWXcY+rtdQCzEv85Hb dwDX6jf6n4bFmpaSm0WhJr26QxhGVyt1SW0rcIOE7n0PB5G9bZ3LqNJI0UyPdQgnQvMV Bs5Nt+XA4rqhm6UaadS/c/xwUEixwQRRpsPG4Q2TpyHdZmVWW7/WL5P2htryMiRaKuGa kSGka/TrWNUmzpCoYe7ygA6SK1aBbW7QUu4uhFL4I3oKgFCFAkoP2oCK85hAtvowY/jP K95+2CeLIYRRF06N1iDH9LvCobDYEbVfS9Ab7Ru8HOyGfFV+Qbbg4nRMKFffjzk/a0uf jXIg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:references:in-reply-to :message-id:date:to:from:dkim-signature:delivered-to; bh=Wauy7N/IapgLTdxr5qy1lKYXGAb2lmkix3koVM+eY7Q=; b=0NKkNEWMnlsuE4uCsCwh1khE9yVT1sjJqTo5NUfzai/KqVlI0MNvWb2W9PECf6TsL4 6zYAbCliC5z2bGMCLeXu87gtCgjXjrutLsfsvs2WKngWxZtiqKvRKLLPi1k7auRe2NKE /K4wkcACY1BjgDVult2DpS9jGF0YI8tbyXRMLPxK0H4kVbcXmzydyA9p5awSiSRRNx0y SXLuVsAeQpiwgYWyWKlSOB3ZAIta/uDZ3Oads4RUHu281WOkO1YAeq6OSZi24SbdiKJQ Gic+lnagqUA8R+okp9R2hdirbW4jRvIRHOs0sCG7Wj3w88YOU+Q7K9D2a8Ybdls1HSWs clFw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@martin-st.20210112.gappssmtp.com header.s=20210112 header.b=bHBzWzKN; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id m14-20020a056402430e00b0043ad5b0e08esi4032757edc.246.2022.07.11.02.19.12; Mon, 11 Jul 2022 02:19:12 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@martin-st.20210112.gappssmtp.com header.s=20210112 header.b=bHBzWzKN; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 13FE468B761; Mon, 11 Jul 2022 12:19:01 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-lj1-f175.google.com (mail-lj1-f175.google.com [209.85.208.175]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 3FACF68B70E for ; Mon, 11 Jul 2022 12:18:53 +0300 (EEST) Received: by mail-lj1-f175.google.com with SMTP id o12so2859875ljc.3 for ; Mon, 11 Jul 2022 02:18:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=martin-st.20210112.gappssmtp.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=hyRfWl50+fEJJwSdeTYBGmsGUXk+jPxmeZMRryrCxYU=; b=bHBzWzKN1O96ncyckLFzH1NNiyDM9h14vAqiTqDqCWPM8OEZvgxr54KVu9VlVtrOfR ELx22NuEfVQ0PTnu45pgRJcYoFxT2eYUvxNcCIhTisD2tWN5b6Qg9Q+2iFXjxll/lCnh IhbinIjfYxpwaur0fkTe5MYgyKVBAcrkTnWRguKxRQLDTyLylV3bhfR/HcLOdLgYQPAQ 5nTpDaTepxIo9BdKhPWe2UKzkRhvSnc3Vy//cunDbsqiyVl8HC/kCoa7F2QF6MSePSm2 n+8GlkDBXo/QrHwMkpCnHGtkgWjX1tb5mNTO9WcYSfpLEgxcykOJYtI74GzZQ24ltprV qkGg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=hyRfWl50+fEJJwSdeTYBGmsGUXk+jPxmeZMRryrCxYU=; b=GNMX+c1rBMrxYJTmvJd6L2w2/gy8dozz0h98AtT3Z7GGtJwoHptsMeCwAdwi79sr1y 0CFMTElYkbrTfEwg5r7D31/BZg9YSoGtBtruZO2dSkTFBIkSIFwlVyfyB307YyZxKJGy HE1H7a0cZHtsIpVwaqmNVmC1nwJ+jmlWzTW+c8G4oARwVv0i9jIa4zU5TzE+bfT2OHP+ LjhxfNaxXiRrhuK6vg7H+JyffgYdwoquJ5YDtRWsy9vFYyN1VO5fbxmWvE8TfYsmjpA9 40Ij0+pAYrAR0vx7LcQwNdCCJikgYT73z/2Q3l/3BghrrjdOxkvCVXq4Pk3uKFQZreZq /nmA== X-Gm-Message-State: AJIora81lGmH1ehyHbRgP4QKwbbBEKBRfGmm/18eKwwOf0KgBfcUFE5B HuCI6QEz/MRqbJBFNzgD3U3DRy0KAxYk1ENC X-Received: by 2002:a2e:964c:0:b0:25d:6910:134b with SMTP id z12-20020a2e964c000000b0025d6910134bmr3357406ljh.299.1657531132534; Mon, 11 Jul 2022 02:18:52 -0700 (PDT) Received: from localhost.localdomain (dsl-tkubng21-58c01c-243.dhcp.inet.fi. [88.192.28.243]) by smtp.gmail.com with ESMTPSA id p3-20020ac24ec3000000b0047255d210d6sm1441587lfr.5.2022.07.11.02.18.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 11 Jul 2022 02:18:52 -0700 (PDT) From: =?utf-8?q?Martin_Storsj=C3=B6?= To: ffmpeg-devel@ffmpeg.org Date: Mon, 11 Jul 2022 12:18:50 +0300 Message-Id: <20220711091850.4158449-2-martin@martin.st> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220711091850.4158449-1-martin@martin.st> References: <20220711091850.4158449-1-martin@martin.st> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 2/2] libavcodec: Set hidden visibility on global symbols accessed from AArch64 assembly X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: =?utf-8?q?Martin_Storsj=C3=B6?= Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: t2Nbube3MPXa The AArch64 assembly accesses those symbols directly, without indirection via e.g. the GOT on ELF. In order for this not to require text relocations, those symbols need to be resolved fully at link time, i.e. those symbols can't be interposable. Normally, so far, this is achieved when linking shared libraries in two ways; we have a version script (libavcodec/libavcodec.v) which marks all symbols that don't start with av* as local. Additionally, we try to add -Wl,-Bsymbolic to the linker options if supported, making sure that such symbol references are resolved fully at link time, instead of making them interposable. When the libavcodec static library is linked into another shared library, there's no guarantee that it uses similar options (even though that would be favourable), which would end up requiring text relocations in the AArch64 assembly. Explicitly mark the symbols that are accessed from AArch64 assembly as hidden, so that they are resolved fully at link time even without the version script and -Wl,-Bsymbolic. Signed-off-by: Martin Storsjö --- libavcodec/aacsbrdata.h | 2 +- libavcodec/fft.h | 2 +- libavcodec/vp9dsp.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/libavcodec/aacsbrdata.h b/libavcodec/aacsbrdata.h index 7a11594c9b..aa382c4b52 100644 --- a/libavcodec/aacsbrdata.h +++ b/libavcodec/aacsbrdata.h @@ -268,7 +268,7 @@ static const int8_t sbr_offset[6][16] = { }; /* First eight entries repeated at end to simplify SIMD implementations. */ -const DECLARE_ALIGNED(16, INTFLOAT, AAC_RENAME(ff_sbr_noise_table))[][2] = { +const av_visibility_hidden DECLARE_ALIGNED(16, INTFLOAT, AAC_RENAME(ff_sbr_noise_table))[][2] = { {Q31(-0.99948153278296f), Q31(-0.59483417516607f)}, {Q31( 0.97113454393991f), Q31(-0.67528515225647f)}, {Q31( 0.14130051758487f), Q31(-0.95090983575689f)}, {Q31(-0.47005496701697f), Q31(-0.37340549728647f)}, {Q31( 0.80705063769351f), Q31( 0.29653668284408f)}, {Q31(-0.38981478896926f), Q31( 0.89572605717087f)}, diff --git a/libavcodec/fft.h b/libavcodec/fft.h index 706c9d07f5..c2241fbc7c 100644 --- a/libavcodec/fft.h +++ b/libavcodec/fft.h @@ -114,7 +114,7 @@ void ff_init_ff_cos_tabs(int index); #endif #define COSTABLE(size) \ - COSTABLE_CONST DECLARE_ALIGNED(32, FFTSample, FFT_NAME(ff_cos_##size))[size/2] + COSTABLE_CONST av_visibility_hidden DECLARE_ALIGNED(32, FFTSample, FFT_NAME(ff_cos_##size))[size/2] extern COSTABLE(16); extern COSTABLE(32); diff --git a/libavcodec/vp9dsp.c b/libavcodec/vp9dsp.c index d8ddf74d4f..1be942d78b 100644 --- a/libavcodec/vp9dsp.c +++ b/libavcodec/vp9dsp.c @@ -29,7 +29,7 @@ #include "vp9dsp.h" -const DECLARE_ALIGNED(16, int16_t, ff_vp9_subpel_filters)[3][16][8] = { +const av_visibility_hidden DECLARE_ALIGNED(16, int16_t, ff_vp9_subpel_filters)[3][16][8] = { [FILTER_8TAP_REGULAR] = { { 0, 0, 0, 128, 0, 0, 0, 0 }, { 0, 1, -5, 126, 8, -3, 1, 0 },