From patchwork Thu Mar 21 17:44:58 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 47295 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a21:3a4a:b0:1a3:31a3:7958 with SMTP id zu10csp712237pzb; Thu, 21 Mar 2024 10:45:19 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCXYv7Q7Wm7mz/RW5Rjdl7IsMLDPvdTcZJBdRjMF0tijnO/fQOKKaK+RGRX3+SiiKxTKSN9576ZTk68/XjY8A3/DDFZTTpsKG+/bGA== X-Google-Smtp-Source: AGHT+IGHqqv1BS38CFn0K8kcdKElfwTRrYtXEm53VwqVaM+zRUripRgXRUNA0HJLKeqqIN7YCgq0 X-Received: by 2002:a05:6402:4143:b0:568:a4ee:5fad with SMTP id x3-20020a056402414300b00568a4ee5fadmr7795461eda.40.1711043119749; Thu, 21 Mar 2024 10:45:19 -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 x1-20020aa7dac1000000b0056ba00670a4si86180eds.502.2024.03.21.10.45.18; Thu, 21 Mar 2024 10:45:19 -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=V4Q0Bke1; 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 7858968D56A; Thu, 21 Mar 2024 19:45:15 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-he1eur04olkn2087.outbound.protection.outlook.com [40.92.73.87]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 0A5D468D496 for ; Thu, 21 Mar 2024 19:45:08 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=hGe543TEuGsNC3e09W1hhB92RoRK+Zaf6HgSh8Gf5JzFpwPygzqRvdMQlYgTEFlJQV0lFHK02p0AADVX9K/O3+WoIEnLzEnmZ5cpeK1Gp/th4jO+cvfM5+xbefqubpq3KTI3n/45UoLey4fM6qm+4/tuhS1LNkuOAfQEVsk6+N+zeuQHJ7XQbJrf0OfAvtGLOS8jXxS4OeZenWKxP9U9K+y68oPuLsb5nYqxywHwoEikn+M2iSAnwuUAUGuHnYFIOecWQzb35BcuUbnngh2hQvR2WKKQjLMZAkOjINmAV/H8xBiLY0k/BzWqfucZv2PwJkCw2Qx0dGKgqCrSKzp0DQ== 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=dEf+Myxq2ghNrXmi4UwTupg/y8PrGtu8xIA+GBSreUI=; b=l1/0dfXAjvkjI+xS/59kW19UOD9iWDd+1B6nXgC8rVduQdseE32aa44BmtvcE/02KGb1OpzYEl7F0K96Ml/nMMEA7z6jSESmv6agHpkjUHSQ2foC0iCf4H6EU1gMQyac5Y7ExHN5afuqi4XlM7Zr2OmV5H2PROEPAbXnyp+l6OUJqyawm2Xxv2sEGTT0Rm3YQ8cdIBEeRtm6RzZ5m7Mya+xfN1eIvhc8GdhRpqROWQBZq6coZe0mYeMvRFsslZsrAZzQyEtN9BYJ7LmIAkQo/rc+zlwaFdEsZNI8XAWfS10YhNZj3RIKpMZ28hmbbVvCu42l5D0p1HS82RsKdO9hOw== 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=dEf+Myxq2ghNrXmi4UwTupg/y8PrGtu8xIA+GBSreUI=; b=V4Q0Bke10SDL3jIkI5RaYkMFAWVBNutmtbMcZS0VRXZOJlfm1uOChjHpP7rtmt0mZcOkE/JfwWHSv9ngeKLko7uhcmbdVp0cc5Tnh+KGn+uUcWsZuEVYcDwUEsSyu4RPc214WvZwjO9nyk8JL+Ap8BiNfVMGE55btWkd2/O0zPhwm4D+nmmdpqDd2METMqlBr76orRUMWSK4cAFsmqMwf1SLYfXqfvRMsZmsmh8dg4BOWO44kdvmZWHgckzH6mTdq4fVzNtoVzSWmhYJ34KMl1Bm+q08eFNcqQoo/AbxvvNMYg7lhpfQZqgMqk7oTdfogPpyWOt48ftsquGsThdDdg== Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) by GVXP250MB1058.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:1b2::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7386.27; Thu, 21 Mar 2024 17:45:07 +0000 Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::4a3b:cf76:cddc:c68d]) by GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::4a3b:cf76:cddc:c68d%4]) with mapi id 15.20.7386.025; Thu, 21 Mar 2024 17:45:07 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Thu, 21 Mar 2024 18:44:58 +0100 Message-ID: X-Mailer: git-send-email 2.40.1 X-TMN: [uRGk9K9RcRkO/CcOOffbjfkRzRUPMmIBp9KBM7VvDZI=] X-ClientProxiedBy: ZRAP278CA0013.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:10::23) To GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) X-Microsoft-Original-Message-ID: <20240321174458.571744-1-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV1P250MB0737:EE_|GVXP250MB1058:EE_ X-MS-Office365-Filtering-Correlation-Id: 7f07371f-d026-45ac-b13c-08dc49cea57b X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 0yrhKDi1xlM02wLnNnZBj/8LAoYgxFASkfOL1ogkJ3auaGWqMtEbNVakcmgfYYsnL5/MsTRpwro0DlMvioJog0OPv1c9HjVEmQLUDcJyobbTFSqADaWDuf0Ezj3VU5T6EOmKgAnBd4QeQX7XK1XoC4bxHjrYHPwD/7dQe0v71VSkVrsZgk0harjJ99ysV2HKiPVQsc6Z+RNLGvW8haECeNRBqwIwF/xB+MP6IYOsjY7gpLn/fRRNmDPrOXNjsUbyiF456obs1o18SnEt2iRWfOt2B+Sld32vDVdPJ73nDDHSV2RZ1Ad4cPzoMkwpIVTjsXYoDfcL91A8Td3O+ORgZ3pmNcHtfydPUnEcF0nOVBR3QxWhmktoobPkFvoMuP43B1w3DGNfUIbS4PP90JL6amv/4bAU6PgeoAs/bIIGWLZSt6vDqCT3zp45/PL9iLgcrZ+xcKJd5kj6Rk2pVk8bAdGXs2I0tX0/pFmp5zvjHKE1USbLACKYjXW4NCtfQQ6flj73kxj8oB99NXE1HrZBMcNCSTX4vSDKNX5c3PV4g2PCxnci5j3uiTga/aPddnN/mr2iWFMYOW8slQjSF3JB8gpB9mIoh6xHH9qhon6UWJFAVzcHk5Gn7WG9vqtPyCPoO68Yi8u60gW1s2/EgQfHH9UVDfno6aghkplLVakwRVGTsbYDEjMJMTDhSxMck4Qe X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: VlL5fO0Ne4828t/15bNaeZDiQ4ftcXOn+ISwueJsOQ68WOEqsEVhb7AwNuAZ/33ivWn2S6EzcQvDHJ5FmQ27ph4A0devQfmQOoE+CkEI7D/JLoErQj2cVUj38v/dPym4bLm/asJlKBqW5M78bLMqwX7D2Nb4PrHBClVYME7YuzLmhmyMZLU1cVbR3orEFGB0sjM6/muJd/hXNT6QV0wY5jlvqmEtFUHGvFWARTgpT5PkHRU1g2TjOI1+l6fDq6m6/5LgEIKrsBTwBvv3Xj06Gdy4sw5U5ew/nv48rbLZaqRTaiigLkmF+2PJ9N2tJ6P5X3bK6JexkoEksDLvjBQ7bsZ/enqsei8P0LjQ7Rh4FSDiJIbd7Om1h9wEMaIhn4rWGY7fBOdzV+0qDHMV1I0OKv1rzaQ8uCtKO7lMGKPr+4Lx9j7wx8eS4apIe8KOqknAYlr8oGz7dNYAZ/k6/1BhhQrpRVI2xft+MGoifAlUoXgTg5Oq+UUXaT9j8+ZXaQNpQ1FiyWkhM+Hc957J5kcKdJ6QDzOlVIePmg/DEbRzc2pe5DAJ22OuCoWknoeGJJwRQzLX9chF7GLtO4xxoF973E1KENcS2OnmQZ12XR6IDXN8ywAzEzpNhQArSLBV5RjWNM64Pjt28xc1TdgzBmXcNGPBq04VtBsu7gzehjYP1rkUsXRNxS3rhFuxQTaYct1vvYQ+uX725UY/cMyzFM+lg6cIToHhd2PHd7Qkz60rYhvyhAdDQG7aaoaEgz0RBTC4Jk3BWDyqDS4GtzKThqTPTX7Cgemup7FhIbHy5XaOTjgJG6ijeWIVUXG7NZLQDnTF1MT2FTUIhD1YAwZWGbU0w3abgZDTZvqP5fCmT7zeTz9ORLE/OBla6couNtbTiVvGaPA2hN7ZTav8pevQoiIlQ/tYlKQ6KD5zr+S/VrGyNNNTDAMW7K7Jerhg1ZGP8qacjHnLj26OxejTftYjkrWplHE2sc+E7FIRhW4hFBTnY3dtj+xXGIcoiY6PgNr9N2oOc7MWyYeUXc/7mdgvOs8HWZn15VhMKtbxuN0X1H/O+B9be1+aI873lK1I3xeFVcf9Qq+rkmvaixcvLjGwaavAfLHLfrmcCJyQkPCIflDpZ9TYjqXIXtRO4xUDJEendBSJDdV3ZoCEKzpuPTL3SGSJCkQecDFkQdPOlDfenrUFlqH+EDLm5t/FCOexKp1vDzKDIzS28iLMT3QtSOj5E9KiVjZCdQC5OVX3SeLKzpdrNenR05W3Af8S1VnwQ46Z2bfAEW9Fiqxki73gch9a3/kMog== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7f07371f-d026-45ac-b13c-08dc49cea57b X-MS-Exchange-CrossTenant-AuthSource: GV1P250MB0737.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Mar 2024 17:45:07.0504 (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: GVXP250MB1058 Subject: [FFmpeg-devel] [PATCH v2] configure: Explicitly check for static_assert 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: SKLikvT1ekxA C11 provides static assertions via _Static_assert and provides static_assert as a convenience define for this in assert.h. MSVC 19.27 declares support for C11, but does not support _Static_assert, but somehow supports static_assert. That's therefore what we use. But apparently there are some old GCC toolchains where _Static_assert is supported, but assert.h does not provide the fallback define. Some fate boxes are affected by this [1]. This commit therefore checks whether static_assert works with assert.h included; if not, it errors out. Users like the above can still add -Dstatic_assert=_Static_assert to cflags as a workaround. [1]: https://fate.ffmpeg.org/report.cgi?time=20240321123620&slot=sh4-debian-qemu-gcc-4.7 Signed-off-by: Andreas Rheinhardt --- This is what a test without fallback looks like. Posted to gather opinions on what people prefer. configure | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/configure b/configure index 6d7b33b0ff..c2d2c70c20 100755 --- a/configure +++ b/configure @@ -5589,6 +5589,19 @@ check_cxxflags_cc -std=$stdcxx ctype.h "__cplusplus >= 201103L" || check_cflags_cc -std=$stdc ctype.h "__STDC_VERSION__ >= 201112L" || { check_cflags_cc -std=c11 ctype.h "__STDC_VERSION__ >= 201112L" && stdc="c11" || die "Compiler lacks C11 support"; } +test_cc < +#include +struct Foo { + int a; + void *ptr; +} obj; +static_assert(offsetof(struct Foo, a) == 0, + "First element of struct does not have offset 0"); +static_assert(offsetof(struct Foo, ptr) >= offsetof(struct Foo, a) + sizeof(obj.a), + "elements not properly ordered in struct"); +EOF + check_cppflags -D_FILE_OFFSET_BITS=64 check_cppflags -D_LARGEFILE_SOURCE