From patchwork Fri May 13 00:11:20 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 35752 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:a885:b0:7f:4be2:bd17 with SMTP id ca5csp56176pzb; Thu, 12 May 2022 17:11:54 -0700 (PDT) X-Google-Smtp-Source: ABdhPJw4S1wAp7pEMrld8otZu0txjaRyLkMCaskiopOMO6JwRZoKEuIsZYcJmQ2d19PY7CC7g4sW X-Received: by 2002:a05:6402:3484:b0:428:1a5e:3d48 with SMTP id v4-20020a056402348400b004281a5e3d48mr38011002edc.401.1652400714631; Thu, 12 May 2022 17:11:54 -0700 (PDT) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id y24-20020aa7ccd8000000b00427d0e159besi568226edt.129.2022.05.12.17.11.41; Thu, 12 May 2022 17:11:54 -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=@outlook.com header.s=selector1 header.b=HDaguEvB; arc=fail (body hash mismatch); 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; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=outlook.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id E278268B43B; Fri, 13 May 2022 03:11:36 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05olkn2017.outbound.protection.outlook.com [40.92.90.17]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 3BC9E68B0A8 for ; Fri, 13 May 2022 03:11:31 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=HeiVU0IsnMgnQupmpPzLJeQaLW4NWzrx06D39jkkMLUjseP2IQTz2m8BcUBS5IRa/ZIErQi9NuKs6SvSZ60KUlpeCF5lfr8qSz3kGWA3OpHYKX6nkQPmbwtlJ8Tigw6PSKGLGfXP9Oouc3dN3FvXi55Rn4oda1sTvZmkzH89UPfn9Ck9iQndOWqaWQSjMi96zFzzLXxhzGXFxMS5bVG9VhZ/J2PMMrn6V/ivtXLXt6T58TTML5d9b7B1SXUyLlRY+i6mw/BqGTW9zbBoroOSragcqVFboJgj1o0BHfaavrQzop6aOF9XH/t4nvOazGuvWILha8XcXIjOqM7YQWpycQ== 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=jhtHUGkU5HXrdUGvR3nwSJiekaxIafFg0Pse8HwNIFo=; b=bD8VIhTcDUcOIr6h+Ovf44uuQb2GGady7qD0aRoAHvljagAsJZX9a+ZKmBUfEwjRem3dW3GmJA1kC6/MiffkDhhwwmXM+QUBLTHkAODVK/egixKlheksPNIfN5VHLzT+sJdOu1W7t3dekp2WdOyRTh6sffraEtNk8tNI+FeBxQGGzEoDMvD0jRmUesGhQGtmZIbmGnfWZ4SRLyog+8EnvTyiNWTm75VBgBM/WAjoFR+Us+YhVEseWKG5vNJxZnJ/G8WSX3/vjrNxkkouD9noF/Gh7bieM0YTih+fm9IMbRzne0YdRGCvvcz//dgIibN63GzaRbIYruJRt2MyB87vZg== 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=jhtHUGkU5HXrdUGvR3nwSJiekaxIafFg0Pse8HwNIFo=; b=HDaguEvBcTVWUoOfISnrnK5uISVnzrxDBeRTBNtuVSO5FSToYbGVnt7GGXSzFUQfmcVABUDl40ZXmzc5t8d5zSyi73yGrXI2X5uabwuBqPl09tJSxHVJnIXV/sXjakEQtqosF6umLbewdjGXTNpD6UtNQ6DuuPZATOovG2vrQATrNapMlo6322+ygRA59r/nYeKJzXrxD11lpUQbobfCS21FpHOdTZuF8r/uUrP52knwN0bDjC66wIwU1QX86TScuc+oOlZx/PdlE8Myv08mor5297nLCQNQEOXvhihiSNYHYR7361UzrAe9vXk5qyI8/vKYiRe/sXwdoNbUmuRSaQ== Received: from DB6PR0101MB2214.eurprd01.prod.exchangelabs.com (2603:10a6:4:42::27) by AS1PR01MB9468.eurprd01.prod.exchangelabs.com (2603:10a6:20b:4d0::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5250.13; Fri, 13 May 2022 00:11:29 +0000 Received: from DB6PR0101MB2214.eurprd01.prod.exchangelabs.com ([fe80::60b9:9f29:40cc:f01c]) by DB6PR0101MB2214.eurprd01.prod.exchangelabs.com ([fe80::60b9:9f29:40cc:f01c%9]) with mapi id 15.20.5227.023; Fri, 13 May 2022 00:11:29 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Fri, 13 May 2022 02:11:20 +0200 Message-ID: X-Mailer: git-send-email 2.32.0 X-TMN: [10pBtetXI3kumUKndcqu3l47+7caLU1G] X-ClientProxiedBy: ZR0P278CA0101.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:23::16) To DB6PR0101MB2214.eurprd01.prod.exchangelabs.com (2603:10a6:4:42::27) X-Microsoft-Original-Message-ID: <20220513001120.1229108-1-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 267ba987-7eeb-4d09-e4d9-08da34752083 X-MS-Exchange-SLBlob-MailProps: S/btQ8cKWiT0P0goehyhtjCechtO9DMsz7n/dJnnueQ+mb/tuKHyX7LuUMcGVDBWwrmwJXYxkPpLNrif8zPvKpANhfpF4GwpsGIkapuPshTLswZviQbKTQY4d9DNxdD8mvmuXj6B6rdgCCIzkKeli87b/E4eL26cQlbs2xYhX5gne1DKCZHWH8Hc8OG3NBcPHCtuiyBhfxG6e06mLNZCUOv0ZDIZNC/cuziIZswOBwLZkqpIBhtprNP8QcwedTsBMmNPLTwO9XfKWn60vN51e+jb/cPZ4x27+4qKieUFG9jDxYMj9FEFmXi5yYyfxnTkWL7GcMiFxqasNMoNtZsm2CLSrC6hWiG/NYtWvyUrCDRG8JfgU110asF2fSsVM571dvKMogl8/IKu89w4b6M03SNvUTjqzfQ1cDkZUhzdd4nLlqQlZWBbF2J7UG4zU7jfN+7c+zk9uh3f5j2T9YJC+vtQf6qndN28RXSQavUX51GMnx0KcrinHstyIdiCIUsgGIgmiKLYFVRUz+jvI+Av2tz5JV4KWvvJ9lfywlwWWy16f4QOIbYUOKFo/LurtJ0AzKXy7jcqzE9rN/Ge49z3bgY7kurNEt+IEusnKDCzODeSo4atNQkwjsKd4C7q+XhQfwmbF90G5llINaAFgL7fqu+UYaMNhgrOD1gsNGoe99LZA/Iknr8bCwGoMsOkQtSJNYHsuCIj4Bco0uAL4A8j+px6st0ffywXi/17D8bJwHgKPw/5aYimsyKV4Tn6OTvy2NXP9ykkZBo= X-MS-TrafficTypeDiagnostic: AS1PR01MB9468:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: vb3wMoQzLcYh7Kg20xenw39jJQid16HlWICbVszYVhZaxHHalyym9cZYdlSh99U/SE/Hpb+8pyOFa1rawnJZYrueYI9PorzBvh/O2dNHb/x+Q0IuP+DvtTNGBpDjHDzvzw7Qn3FUHYG61PSyX0OWFiAF9trg82aPXW2hGC7A4n/zHsbFRjPkRvBCt3auI0XJOxcwGvRudXspf6OJkIJd4rc1FYkTVxg+V1WP/Gv/WstWsM1/cw2+Ox3KUSV9MnT8AmTDpjLZeUqvMLJ7R65E1aMReLjyyUxjordC3d0mzwElg+6tG3zrSI9pNxWWchDoTohMzIekSPIfz0qDnO8ibcnLZ+12cYn6A3P+9kBWonqG2E2nSYS+FAEVDmx6OXTbP7dKPmGDapzj5e20XrW3MB+3LtSqysKcRjpdEfPzxJaEHxvw+G0FJ1gfGnk1FUSYZKa11TVFPV6xbkTVq8AUS1UntfXB4kh4/Utxf/yYZp5znBazO6YRb40kmssVzTdOMT8UmoU0Ei9nThn/zveQoGKmn1eRW3GzMqZxwovSYU5N7WMj95QGXzBpYzq45jJXU0o9ljYicNDWoKbD2i6xQg== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?v4+CXi87zFlSmp4qkBUjJIAnszhU?= =?utf-8?q?GS3SFFOOHM4vhnMsoJi+cRofiwMfGxFv6pX5dPJ9asHoDdqCidK6q1Far9Cf4XYAq?= =?utf-8?q?wvN2fjjln2owFLTabZQPNFW1cH01Vg0QnzSVx9aaM2KFMhKza9s6F8AdNdN3VyVIl?= =?utf-8?q?kmiLis3jgHr+nruFKaiDGPzmLxyS15p+qNCLYqgbJ3FZEG2/gA3iwvwzyX4LgXGj9?= =?utf-8?q?rSy6xhcEe6q8/b+8SkziPMUplR626exD3Q0wss//DLhOwtpR3h8sXqj/DQfO+4+CD?= =?utf-8?q?LS1W77mUzDJy+Zh10g1odmVnP+uRkgPULqtcFqHWwivEKYdr/M2xueE4H5mXsl6dT?= =?utf-8?q?9y239VZvEPYb1LxJd8+6xrsip5gjRJ5xl+bUgwmay08gHwuggJ5eLa2rjytvrQpne?= =?utf-8?q?/1qHDH57HvylJnaGDVr0ggkJhiUsoW29rCR5R3XAx0Y7AQeut/NHFlRO5T0COAa6l?= =?utf-8?q?FFkOXlEh+olEBfFz+nyKLef31i0uDV0Z6z0HzI3hz3M3HI3QX4tv6ARghfDAorh4G?= =?utf-8?q?3ArLMmQmXlRS5KDhCdF69533ShNURe1f2boXkHLvaOC/oSA98PzbUvHy0fzVatF4o?= =?utf-8?q?8l6R0Zz7hOztszX71/BaOjvyw43vDSzsHyUKfDKBVESjXP6bJC7vmfxbBUK6H9nmi?= =?utf-8?q?0wzFvQQ2zY9N8VLkPVAcSk8BnJnpKLewDugY0NugVp+bGWJgMW3SOXt+inEHM5fH8?= =?utf-8?q?FtYk6VdzpNY5YKNc3/XNNXMoKWrKaffhvnKduKMDPDaL0ZwKxKqSHmapIWLfiYU6d?= =?utf-8?q?VLUBJgwvPvk58yTbjw+/iNrzvyKemDpwdicKvayzNu9R6GcNwd5SGDngO/zyVJSKi?= =?utf-8?q?GCIt9ObgMcP28QWwI4H1uNRfvGECFy2iH5v9h5uqzWdsGP/JN1umUsOn/drnzG/2w?= =?utf-8?q?BzyzR8TTJN+/BeUUKiaiEHwv2eqfzH32P/GHHJFgt5EeU2wxXk5rFkizWLsXQXbGE?= =?utf-8?q?gzEVgtezrYVDgaorSBat/9dDZbSPbCMUudz0CLYL88XahC30KwEkEwMXn9Q0+maDW?= =?utf-8?q?NtT6C6vPeXRMaQZGvEOfIzNj4jyJFIK2fmZpMR1egU3TU52AY6OG6VwM8t7rYe0jV?= =?utf-8?q?FzSaCLKXc2ZLgDHYZZ++KmiR8f6DW40GjPF4uiyuLSV9J2nx38E0iJ3EJcLUzTisY?= =?utf-8?q?q5Bs4CYSE82M2UgzVU6HJxLuCcle4/r1ALR89EM7nYlCD7jK2SV0sPzP1L4vI6QY6?= =?utf-8?q?8kR+i6+gFpWhM9EfxQe4RLe2U2gYHfdwyCltFC0Xzqn1vxSNNVmERUnGzoBf5vmJZ?= =?utf-8?q?ajmX7+rxFfn9zALxfuiBTRotxobR98VDQFUd5ZaKO9AB5FHHD8wHePb11B1M/qzR+?= =?utf-8?q?I84evhK7Id5m1cKGkLscC0wugWHWm+R7Ax0HgcAZKce1dkRV7ExX8po3T8pa7/RxB?= =?utf-8?q?FV0yZjG2BEHhmViaDJmjUioGtT1hmUe/2vLg=3D=3D?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 267ba987-7eeb-4d09-e4d9-08da34752083 X-MS-Exchange-CrossTenant-AuthSource: DB6PR0101MB2214.eurprd01.prod.exchangelabs.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 May 2022 00:11:29.2210 (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: AS1PR01MB9468 Subject: [FFmpeg-devel] [PATCH] ffbuild/common: Fix CPPFLAGS applied for compiling C++ files 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: Andreas Rheinhardt Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: Vmqb/I6N4nkk Currently, $(CPPFLAGS) and $(CFLAGS) are prepended to CXXFLAGS (the flags for compiling C++) like this: CXXFLAGS := $(CPPFLAGS) $(CFLAGS) $(CXXFLAGS) Using ":=" creates a simply expanded variable, i.e. the values of the variable at the time of assignment are used and later modifications to them are ignored (using a recursively expanding variable (i.e. "=" instead of ":=") is not really possible here, as there would be an infinite loop when evaluating CXXFLAGS). Yet we perform later additions to CPPFLAGS: HAVE_AV_CONFIG_H and BUILDING_libfoo are defined. These do not reach C++ compilations. To fix this a trick is employed to prepend to a recursively expanded variable while keeping it recursively expanded. There are two practical consequences of this: C++ files now no longer include the version.h header, but only the version_major.h header of their library, saving some recompilations. Furthermore, they now get some optimized math functions (namely the ones from lavu/intmath.h instead of the ones from lavu/common.h). (av_parity() is the only one for which it makes a difference.) Signed-off-by: Andreas Rheinhardt --- Btw: Not all our automatically added CFLAGS apply to C++: cc1plus: warning: command-line option ‘-Wdeclaration-after-statement’ is valid for C/ObjC but not for C++ cc1plus: warning: command-line option ‘-Wmissing-prototypes’ is valid for C/ObjC but not for C++ cc1plus: warning: command-line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++ cc1plus: warning: command-line option ‘-Wno-pointer-sign’ is valid for C/ObjC but not for C++ cc1plus: warning: ‘-Werror=’ argument ‘-Werror=implicit-function-declaration’ is not valid for C++ cc1plus: warning: ‘-Werror=’ argument ‘-Werror=missing-prototypes’ is not valid for C++ cc1plus: warning: command-line option ‘-std=c11’ is valid for C/ObjC but not for C++ ffbuild/common.mak | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/ffbuild/common.mak b/ffbuild/common.mak index 24113c59eb..f52473453e 100644 --- a/ffbuild/common.mak +++ b/ffbuild/common.mak @@ -29,6 +29,9 @@ $(foreach VAR,$(SILENT),$(eval override $(VAR) = @$($(VAR)))) $(eval INSTALL = @$(call ECHO,INSTALL,$$(^:$(SRC_DIR)/%=%)); $(INSTALL)) endif +# Prepend to a recursively expanded variable without making it simply expanded. +PREPEND = $(eval $(1) = $(patsubst %,$$(%), $(2)) $(value $(1))) + # NASM requires -I path terminated with / IFLAGS := -I. -I$(SRC_LINK)/ CPPFLAGS := $(IFLAGS) $(CPPFLAGS) @@ -37,7 +40,9 @@ CCFLAGS = $(CPPFLAGS) $(CFLAGS) OBJCFLAGS += $(EOBJCFLAGS) OBJCCFLAGS = $(CPPFLAGS) $(CFLAGS) $(OBJCFLAGS) ASFLAGS := $(CPPFLAGS) $(ASFLAGS) -CXXFLAGS := $(CPPFLAGS) $(CFLAGS) $(CXXFLAGS) +# Use PREPEND here so that later (target-dependent) additions to CPPFLAGS +# end up in CXXFLAGS. +$(call PREPEND,CXXFLAGS, CPPFLAGS CFLAGS) X86ASMFLAGS += $(IFLAGS:%=%/) -I$(