From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id D63F743C9A for ; Thu, 4 Aug 2022 12:51:57 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id DE46368B1F1; Thu, 4 Aug 2022 15:51:53 +0300 (EEST) Received: from EUR02-HE1-obe.outbound.protection.outlook.com (mail-oln040092068089.outbound.protection.outlook.com [40.92.68.89]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 7D12668B1F1 for ; Thu, 4 Aug 2022 15:51:47 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=FmHE5ix3Zjd20J5l6vzRjBPja90MZdo409JcKcsB24CJHrk5UQK3hJDbeUR6k8LrMi5p6APWLen4KGCfj0RrG+tGKRn4AtPMCPDYUMzB+cZ0cC6RWJ3tbYxjveLXuW2M5SEwlBUE99JQlaP3J3lFaYIBbqApg4Ni2lmICygMpoIXGc0vbBOSASTWBUHxgt7tMdHZlX3WGBKPAztcqq75leptQ+OgRyKJNN4m9mIRwQVAEq23DZWC3XxuL0TFCC7Kx77vG91okxgFpLTVbyKxtWPy53G7orwwevOMCckqX02Nd71qt6C+A0xqnFgz9hNVpj/SwGO9pGbDjUdjCimmyA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=gA9HIfGfCz0c/LLj4sfdRf3ZapTOXSXDY9utCjxlMMw=; b=GjreUyPqDtQXICjLjjSFaqcWVc4uaZlHjqFGC1d0mq0LcwDTkR5GOx6/wYeNxojIVpMxy9kPjx0y6ChIepnVqjP3FWNjafPl60SN6zUxNrJRcKIbeDCdNqC3lbEO9afpylsU1NPVo3jPBZq4NRT7kJV4mwyU6qiyXNYhIbCwEdYicWJI5e8JggiKKCiLbtPYm0YYnIk6BLNAVUaOpOH3Z7AgCBT6gCpQqxRSZlRSVBKtrB7jxSh+mj2zwiQe8eoHFne/cMfCk9mR6T7l+wZg2rX2g18h5kOACyKDEIa30rWtl1AinW0N8QkHXp3pUQ1L1BLHoKyEuqpaJSJfcjLKJQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=gA9HIfGfCz0c/LLj4sfdRf3ZapTOXSXDY9utCjxlMMw=; b=ab9qSELBH0LyZrny8x6uRol8uSNUUcjkIzEiGHYTSyr6tI4QQRx8pqnbSIyqhLUevSqzFQLfviZBjBL1k4j45V3WVLKC8p+6sZoCrfsp36qAR/DLZyzM1o1sbY5hqGonnfUOgOE8Af5umJpT2kyK5IRsLKXe+EdXjLoH73H/A+uXhE2L79BaPKU030TwS5GT4vgPdCH5L9rjJgxDxjIpksl3Ncg9fcmogZEzBcrSpdkn7x5FjLKycImcZISSLOg6Nd81wu7kYaEKd1vz3146cGCF635DrcKOW+ozPrE6A0R3hj/pVchb05+i+6dNCGxR0OpcXTZjPBEZRthkd4ThTg== Received: from DB6PR0101MB2214.eurprd01.prod.exchangelabs.com (2603:10a6:4:42::27) by AS8PR01MB7398.eurprd01.prod.exchangelabs.com (2603:10a6:20b:25c::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5504.15; Thu, 4 Aug 2022 12:51:45 +0000 Received: from DB6PR0101MB2214.eurprd01.prod.exchangelabs.com ([fe80::210e:b627:bcc9:8c46]) by DB6PR0101MB2214.eurprd01.prod.exchangelabs.com ([fe80::210e:b627:bcc9:8c46%11]) with mapi id 15.20.5482.016; Thu, 4 Aug 2022 12:51:45 +0000 Message-ID: Date: Thu, 4 Aug 2022 14:51:43 +0200 Content-Language: en-US To: ffmpeg-devel@ffmpeg.org References: <20220727120000.3596575-1-thomas@gllm.fr> From: Andreas Rheinhardt In-Reply-To: <20220727120000.3596575-1-thomas@gllm.fr> X-TMN: [g75r9GIqb3REMFNkIeOX5e0nIQwPqfdh] X-ClientProxiedBy: ZRAP278CA0012.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:10::22) To DB6PR0101MB2214.eurprd01.prod.exchangelabs.com (2603:10a6:4:42::27) X-Microsoft-Original-Message-ID: MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 02f4ecbe-d1cb-42e2-b00a-08da7618160c X-MS-TrafficTypeDiagnostic: AS8PR01MB7398:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: PY/cdwCOeXs7gfF0+PqkJ+q70WaSvsdY7VpqMa+QSLmJOlmKaV5C9myd6TMUo4WrUT0rGL6ndPOFMjnoScto8Xki7RrgYnVh7/6hbvXjaAOQIIesUeUOfAfnv1jRPFCgxn/SxJXFx7pn6mhony38azpHkoh1GFmZs95rbAyXe92Dqq4crt07XYeMI9pFPA+VWgObr6mGA3VvBcqHPLQQajtwInvsbYM59cse7G3k16qjSkUoD9ZjT1ebRtahPxnNj8kEZxnjJuhzuq4aeRb+ICNxTWrOWlKjq6aeKqRfh6R00uSE+ywKrEYo288yAi2ZdQfCx9IOWeHSJ9RrPn/X2olh7ilt80IPMUxzmaobCzZDgb3tjrzLEWoJsSC9e579CyiQn0uvYb1jV0FzMBfCzJyI6yC9215lJ4e5KYYEHehpjVpBWEIKM/ZyvdmBmJuxi8gA4nP/KTiyKQd7aXfmNol7lR+/Gng1nThyuT3Lp+9sgEAM2hbY5VcYt98C7KeS4za9BFxiNMP9VYyGAC/KcqAFwFGNUtrpfSGmQH0LZ0f9e5nn6OpbJagOEcSudmPbOPqjXtwU+QAik/QnhxY+7d+nCwlH8uJjRZWIqHVH/5DlPtYAjGI2hnF8ZNfwcSpin8gZaiTLRUP6Gy6RCKkHpsdrHiLVLdnlM3kjQ22tkKa7Q89zSj/1pIF+P+w11nkG X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?RW1hWlZ6ckRUQkxML0FFMFk2QWI0N1ZvRGRwWVp6T2Y1VDk4VmZPMndGWUgr?= =?utf-8?B?TWhLaGl5eFYvdFVTSlNPUGhHOUVtd3JiWFlQczR4YnpURTk4cXIwY014cXlF?= =?utf-8?B?Q1pVMEJScm1LSkJQTVJyRDdLNFg1Y1NHRGpvR0NZOTVWSlN5Tzd5aXVTVUlm?= =?utf-8?B?SEQzUi91QW52Zng1eGFrdEk1MnlOdkl1MkVWMGRRdWtKQmVidEw5ZVByaUxZ?= =?utf-8?B?K0phSTNURktEY2tKNHlhRDJjeTJ5dXo2Z0ZLTitLclI4NjBua2ZmdG5acnlS?= =?utf-8?B?RnNxdkxyQTR2dzc5RW5xU21IV01nVGRIazBuc1NWNGxaR2JMS3ZobnhEbitU?= =?utf-8?B?M2NKWDVHR3hzbW5hem1RMVoxK211SEpZalUzK2FvRHRxVVpkTzd5dkZWbFhp?= =?utf-8?B?RmZKWEs1bXZTb1R1Wk5yc3JydndEWlN3WVZncmJRVXpPSDk5UWJWOTdxSjl6?= =?utf-8?B?cjZOTk1DdEVPYVh6VU9LeElYLzRvY0czUHUvWHRZeGxzb3FrMzZhcUxsSmJY?= =?utf-8?B?eTkvb1BQSWdGZlMzY1R6amltd2xlbDgwWnVzYTU3Mk9seENGRk94QktkYUV0?= =?utf-8?B?VkE2SU9HQ2Qxb0h4NnMwaGR6OGw5aVhpQTNJdVluLy9TZ085bFVPWjBjaHhE?= =?utf-8?B?RWZpSlN0SmNUbTZHVlpLNTBjSGRlV1lUMU5uU3FYYnJYa1VhQU81WGN1Sk9Y?= =?utf-8?B?MEtnaDRCclByMnIyRjQ5Uk1COGRPTEVzN1hLdTc4VFU1UStFWCtJQktOMTdB?= =?utf-8?B?dmFSWUFxZHVUNnpxemkrcUxFOFFocG1Gck5SbU85clBwYnlnT0ovemdTcGJy?= =?utf-8?B?M3h6c3lYWGdMTDVueFNyM3hLWnlDV3dGMWRIdmNaOXlRY3NzNHlLQlBrMzQ2?= =?utf-8?B?alhHMit6YXFGS1FDQml0ZHNXL1NjcmVpdzZrWDZ0WEgrbmZ3RGovWmxiV3V3?= =?utf-8?B?dDUvYlc2Y2kzOHQ3Q1RkcHp4eWtpRFY4blVKVzdXTlRlWlFmUWkyTTZSTVpB?= =?utf-8?B?SHF0MGlTNFdaN2wrVnlkdzhVN2t5aEpidGhUS3ZPdlc1dXFWRXVDQytFRjRP?= =?utf-8?B?b0RvMXVUVHFIcVIrZ3dYenczcUVTWnlrUDBoTTdzVXlna29hbGZod2V6VXJl?= =?utf-8?B?M1BuUzBmaFJQa0FLWTVIZkp0M2l1YzlzK1JiR3BVY2N4TWN0QjgwOW9aTlFz?= =?utf-8?B?cnFJUSs3Y09kM3p2Wis4cWV5ejhSODJNVkN6T056UXhENnNjSVV2OFBqZzJG?= =?utf-8?B?R1l4azVsUnZyaURKZG9KSmdWakR3bm1rZEo3QUk0eWNlbVpkZXdWYU80Qlpv?= =?utf-8?B?cE1ReFdrSnE4QjUwTnE0MURHM3VqYktaelpta0p3Y05CTVlVc0lyY2JaMFNa?= =?utf-8?B?NEpPSTY2cHhpUm93YXVNamxxbnBjVGlZaWlMUDdsbEJ3d3doSktxSXFzWkVz?= =?utf-8?B?NXg4RTk3Q2x0d0Zkd1VId1FhMkM4MTMxNWZMZlNDc3dVQnZKdUFkcDRndmpK?= =?utf-8?B?U244YlBsYUhEZWFCK0ZubFpZNEU4cGQwN3hYR0NSY2QxK09zR2I5V2lrZjVj?= =?utf-8?B?aHVPUVVob2p2cnQwRVVWbXkyUjlhME5xaVlUM0pFbHVxL0xaMkZsQTdWUC9w?= =?utf-8?B?eHZOVzJxRkpLYnllbVVucXNGRWtQOURPM1dyV1ZLYjcvdTZINUt1UHkvVURz?= =?utf-8?B?cDNFRjJ5UzQzclRMTUNiOWljSGFNYWdzMjA4QUNZRDVZNDRWWC9GU1hBa1BJ?= =?utf-8?Q?v/u4OuorP8rkq9P9hA=3D?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 02f4ecbe-d1cb-42e2-b00a-08da7618160c X-MS-Exchange-CrossTenant-AuthSource: DB6PR0101MB2214.eurprd01.prod.exchangelabs.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Aug 2022 12:51:45.1475 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR01MB7398 Subject: Re: [FFmpeg-devel] [PATCH 2/2] libavcodec: Set hidden visibility on global symbols accessed from x86_64 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 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: Thomas Guillem: > DECLARE_ALIGNED, DECLARE_ASM_ALIGNED, and DECLARE_ASM_CONST will include > attribute_visibility_hidden. > > ld: error: relocation R_X86_64_PC32 cannot be used against symbol 'ff_h264_cabac_tables'; recompile with -fPIC >>>> defined in /home/tom/work/git/vlc-android/vlc/contrib/x86_64-linux-android/lib/libavcodec.a(cabac.o) >>>> referenced by cabac.h:187 (libavcodec/x86/cabac.h:187) >>>> h264_cabac.o:(ff_h264_decode_mb_cabac) in archive /home/tom/work/git/vlc-android/vlc/contrib/x86_64-linux-android/lib/libavcodec.a > --- > libavcodec/ac3dsp.h | 3 +- > libavcodec/cabac.h | 3 +- > libavcodec/h263dsp.h | 3 +- > libavcodec/x86/constants.h | 81 +++++++++++++++++++------------------- > libavutil/mem.h | 6 +-- > libswscale/x86/rgb2rgb.c | 2 +- > 6 files changed, 51 insertions(+), 47 deletions(-) > > diff --git a/libavcodec/ac3dsp.h b/libavcodec/ac3dsp.h > index a23b11526e..f8c03a7c23 100644 > --- a/libavcodec/ac3dsp.h > +++ b/libavcodec/ac3dsp.h > @@ -23,12 +23,13 @@ > #define AVCODEC_AC3DSP_H > > #include > +#include "libavutil/internal.h" > > /** > * Number of mantissa bits written for each bap value. > * bap values with fractional bits are set to 0 and are calculated separately. > */ > -extern const uint16_t ff_ac3_bap_bits[16]; > +extern const uint16_t attribute_visibility_hidden ff_ac3_bap_bits[16]; > > typedef struct AC3DSPContext { > /** > diff --git a/libavcodec/cabac.h b/libavcodec/cabac.h > index 38d06b2842..356aa368d0 100644 > --- a/libavcodec/cabac.h > +++ b/libavcodec/cabac.h > @@ -28,8 +28,9 @@ > #define AVCODEC_CABAC_H > > #include > +#include "libavutil/internal.h" > > -extern const uint8_t ff_h264_cabac_tables[512 + 4*2*64 + 4*64 + 63]; > +extern const uint8_t attribute_visibility_hidden ff_h264_cabac_tables[512 + 4*2*64 + 4*64 + 63]; > #define H264_NORM_SHIFT_OFFSET 0 > #define H264_LPS_RANGE_OFFSET 512 > #define H264_MLPS_STATE_OFFSET 1024 > diff --git a/libavcodec/h263dsp.h b/libavcodec/h263dsp.h > index 1abea3ca8c..514a148fb1 100644 > --- a/libavcodec/h263dsp.h > +++ b/libavcodec/h263dsp.h > @@ -20,8 +20,9 @@ > #define AVCODEC_H263DSP_H > > #include > +#include "libavutil/internal.h" > > -extern const uint8_t ff_h263_loop_filter_strength[32]; > +extern const uint8_t attribute_visibility_hidden ff_h263_loop_filter_strength[32]; > > typedef struct H263DSPContext { > void (*h263_h_loop_filter)(uint8_t *src, int stride, int qscale); > diff --git a/libavcodec/x86/constants.h b/libavcodec/x86/constants.h > index 85da38b7b9..c84b0d4324 100644 > --- a/libavcodec/x86/constants.h > +++ b/libavcodec/x86/constants.h > @@ -22,51 +22,52 @@ > #define AVCODEC_X86_CONSTANTS_H > > #include > +#include "libavutil/internal.h" > > #include "libavutil/x86/asm.h" > > -extern const ymm_reg ff_pw_1; > -extern const ymm_reg ff_pw_2; > -extern const xmm_reg ff_pw_3; > -extern const ymm_reg ff_pw_4; > -extern const xmm_reg ff_pw_5; > -extern const xmm_reg ff_pw_8; > -extern const xmm_reg ff_pw_9; > -extern const uint64_t ff_pw_15; > -extern const xmm_reg ff_pw_16; > -extern const xmm_reg ff_pw_18; > -extern const xmm_reg ff_pw_20; > -extern const xmm_reg ff_pw_32; > -extern const uint64_t ff_pw_42; > -extern const uint64_t ff_pw_53; > -extern const xmm_reg ff_pw_64; > -extern const uint64_t ff_pw_96; > -extern const uint64_t ff_pw_128; > -extern const ymm_reg ff_pw_255; > -extern const ymm_reg ff_pw_256; > -extern const ymm_reg ff_pw_512; > -extern const ymm_reg ff_pw_1023; > -extern const ymm_reg ff_pw_1024; > -extern const ymm_reg ff_pw_2048; > -extern const ymm_reg ff_pw_4095; > -extern const ymm_reg ff_pw_4096; > -extern const ymm_reg ff_pw_8192; > -extern const ymm_reg ff_pw_m1; > +extern const ymm_reg attribute_visibility_hidden ff_pw_1; > +extern const ymm_reg attribute_visibility_hidden ff_pw_2; > +extern const xmm_reg attribute_visibility_hidden ff_pw_3; > +extern const ymm_reg attribute_visibility_hidden ff_pw_4; > +extern const xmm_reg attribute_visibility_hidden ff_pw_5; > +extern const xmm_reg attribute_visibility_hidden ff_pw_8; > +extern const xmm_reg attribute_visibility_hidden ff_pw_9; > +extern const uint64_t attribute_visibility_hidden ff_pw_15; > +extern const xmm_reg attribute_visibility_hidden ff_pw_16; > +extern const xmm_reg attribute_visibility_hidden ff_pw_18; > +extern const xmm_reg attribute_visibility_hidden ff_pw_20; > +extern const xmm_reg attribute_visibility_hidden ff_pw_32; > +extern const uint64_t attribute_visibility_hidden ff_pw_42; > +extern const uint64_t attribute_visibility_hidden ff_pw_53; > +extern const xmm_reg attribute_visibility_hidden ff_pw_64; > +extern const uint64_t attribute_visibility_hidden ff_pw_96; > +extern const uint64_t attribute_visibility_hidden ff_pw_128; > +extern const ymm_reg attribute_visibility_hidden ff_pw_255; > +extern const ymm_reg attribute_visibility_hidden ff_pw_256; > +extern const ymm_reg attribute_visibility_hidden ff_pw_512; > +extern const ymm_reg attribute_visibility_hidden ff_pw_1023; > +extern const ymm_reg attribute_visibility_hidden ff_pw_1024; > +extern const ymm_reg attribute_visibility_hidden ff_pw_2048; > +extern const ymm_reg attribute_visibility_hidden ff_pw_4095; > +extern const ymm_reg attribute_visibility_hidden ff_pw_4096; > +extern const ymm_reg attribute_visibility_hidden ff_pw_8192; > +extern const ymm_reg attribute_visibility_hidden ff_pw_m1; > > -extern const ymm_reg ff_pb_0; > -extern const ymm_reg ff_pb_1; > -extern const ymm_reg ff_pb_2; > -extern const ymm_reg ff_pb_3; > -extern const ymm_reg ff_pb_80; > -extern const ymm_reg ff_pb_FE; > -extern const uint64_t ff_pb_FC; > +extern const ymm_reg attribute_visibility_hidden ff_pb_0; > +extern const ymm_reg attribute_visibility_hidden ff_pb_1; > +extern const ymm_reg attribute_visibility_hidden ff_pb_2; > +extern const ymm_reg attribute_visibility_hidden ff_pb_3; > +extern const ymm_reg attribute_visibility_hidden ff_pb_80; > +extern const ymm_reg attribute_visibility_hidden ff_pb_FE; > +extern const uint64_t attribute_visibility_hidden ff_pb_FC; > > -extern const xmm_reg ff_ps_neg; > +extern const xmm_reg attribute_visibility_hidden ff_ps_neg; > > -extern const ymm_reg ff_pd_1; > -extern const ymm_reg ff_pd_16; > -extern const ymm_reg ff_pd_32; > -extern const ymm_reg ff_pd_8192; > -extern const ymm_reg ff_pd_65535; > +extern const ymm_reg attribute_visibility_hidden ff_pd_1; > +extern const ymm_reg attribute_visibility_hidden ff_pd_16; > +extern const ymm_reg attribute_visibility_hidden ff_pd_32; > +extern const ymm_reg attribute_visibility_hidden ff_pd_8192; > +extern const ymm_reg attribute_visibility_hidden ff_pd_65535; > This is total overkill; the visibility pragma exists for a reason. > #endif /* AVCODEC_X86_CONSTANTS_H */ > diff --git a/libavutil/mem.h b/libavutil/mem.h > index d91174196c..88fea4bfe7 100644 > --- a/libavutil/mem.h > +++ b/libavutil/mem.h > @@ -113,9 +113,9 @@ > #define DECLARE_ASM_ALIGNED(n,t,v) t av_used __attribute__ ((aligned (FFMIN(n, 16)))) v > #define DECLARE_ASM_CONST(n,t,v) static const t av_used __attribute__ ((aligned (FFMIN(n, 16)))) v > #elif defined(__GNUC__) || defined(__clang__) > - #define DECLARE_ALIGNED(n,t,v) t __attribute__ ((aligned (n))) v > - #define DECLARE_ASM_ALIGNED(n,t,v) t av_used __attribute__ ((aligned (n))) v > - #define DECLARE_ASM_CONST(n,t,v) static const t av_used __attribute__ ((aligned (n))) v > + #define DECLARE_ALIGNED(n,t,v) attribute_visibility_hidden t __attribute__ ((aligned (n))) v > + #define DECLARE_ASM_ALIGNED(n,t,v) attribute_visibility_hidden t av_used __attribute__ ((aligned (n))) v > + #define DECLARE_ASM_CONST(n,t,v) attribute_visibility_hidden static const t av_used __attribute__ ((aligned (n))) v You can't simply change the semantics of public defines; furthermore, attribute_visibility_hidden should not be public. If these macros are to be changed, then you need to modify mem.h to only define them in case HAVE_AV_CONFIG_H is not defined (HAVE_AV_CONFIG_H is defined when building our libraries). Then the macros from mem_internal.h will be used and these can be modified. (Furthermore, adding the attribute to DECLARE_ASM_CONST is pointless, as it is already static.) > #elif defined(_MSC_VER) > #define DECLARE_ALIGNED(n,t,v) __declspec(align(n)) t v > #define DECLARE_ASM_ALIGNED(n,t,v) __declspec(align(n)) t v > diff --git a/libswscale/x86/rgb2rgb.c b/libswscale/x86/rgb2rgb.c > index b325e5dbd5..100f608d04 100644 > --- a/libswscale/x86/rgb2rgb.c > +++ b/libswscale/x86/rgb2rgb.c > @@ -70,7 +70,7 @@ DECLARE_ASM_CONST(8, uint64_t, mul15_hi) = 0x0210021002100210ULL; > DECLARE_ASM_CONST(8, uint64_t, mul16_mid) = 0x2080208020802080ULL; > > DECLARE_ALIGNED(8, extern const uint64_t, ff_bgr2YOffset); > -DECLARE_ALIGNED(8, extern const uint64_t, ff_w1111); > +attribute_visibility_hidden DECLARE_ALIGNED(8, extern const uint64_t, ff_w1111); > DECLARE_ALIGNED(8, extern const uint64_t, ff_bgr2UVOffset); > > #define BY ((int)( 0.098*(1<