From patchwork Thu Sep 12 21:41:33 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Marvin Scholz X-Patchwork-Id: 51568 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:612c:2986:b0:48e:c0f8:d0de with SMTP id ih6csp498817vqb; Fri, 13 Sep 2024 11:24:20 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCUFk/AXV99rnpWCyERmaA1HOHf8oobJOrvffoaT/S23QTp6kXmU7jouGt8igsdlTRYVkBb4kkkMzicKPS5IR754@gmail.com X-Google-Smtp-Source: AGHT+IF6h8ha52hQTw0UfxDKJopyg5dBqlkAobkwjsd5xSLnqCTz2x+x5MT91sZohm27h+UNdN3P X-Received: by 2002:a17:907:e226:b0:a8d:3f6a:99cb with SMTP id a640c23a62f3a-a9029617921mr695376966b.47.1726251860115; Fri, 13 Sep 2024 11:24:20 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1726251860; cv=none; d=google.com; s=arc-20240605; b=X18FML996FP3HFo8K43Rj0Yn+4EV4fIKnLzNQm9elM1G1wTmh51tyM+eGYmA059YCv xOYDjECUxl3onoTgNfWEHtUQW9OO5qzEFHIcp5BDqwzFidfLgDUl8LvoacOErg28T624 /NzV2udVttFUTasci4Kp2naVd8o9mxHbKKHSL0O2VL6QfiJkgl7bu71gaHclRpmPFI1f C3ZHyItglV8Pz+j42HnLaU07Ygbk4q6mOHaD1D4bWPrKI/FX5OZcKCFOJx0o5DTUZzmA 5H1s7lIZNL8ApDIlVNXqdYh5kNdJyokK2oVKi7De6VSzXJunO2JdG984/BDDVcF0BqGd tk+g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:content-transfer-encoding:mime-version:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:date:from:to:message-id:in-reply-to :dkim-signature:delivered-to; bh=1oKMODgpbYu2BDUfz61PZan1sawPSczSOr3WNzLwin0=; fh=5IeVwzS1vbVKjIV8MP3mnmnRtZGb8uteQ9r4QD2keV0=; b=E3Frib2l3m2g8xwFG1oOt81qWOn9nN6iOwGKnFQFAdyExgF/OdZ8xFzTG1P1Vakj8j Fe7GSKHn0IxBIME8a58t58jkCCfjXv6QSolBswnVuT4EDNmwlUX4NMkR9FFRbAeSS6Af LPZDc1bTn9PGmyHYPY1fo4IqhvJz1Oeqlq/ZT4bh6cfT8P5qQkAwvghIhfZEe5O+TJKw DPhGoeZdWE78Z66PKgcoStwvsxM4uxuvzAPVG5dA+QaPS78bUZXccZBNqBxeWXtHIk2U YengTyk8uheKz/8O/NdeHtsB7nlD6QP8Li+NTbSfDNGhJs4Fa10iHSnshtHER/0b9dfX xHrg==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20230601 header.b=hrSCGvue; 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=gmail.com; dara=fail header.i=@gmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id a640c23a62f3a-a8d2584c9b3si1121412766b.118.2024.09.13.11.24.09; Fri, 13 Sep 2024 11:24:20 -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=@gmail.com header.s=20230601 header.b=hrSCGvue; 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=gmail.com; dara=fail header.i=@gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 55B2568D670; Fri, 13 Sep 2024 00:48:49 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wm1-f50.google.com (mail-wm1-f50.google.com [209.85.128.50]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id CE06B68DB31 for ; Fri, 13 Sep 2024 00:48:41 +0300 (EEST) Received: by mail-wm1-f50.google.com with SMTP id 5b1f17b1804b1-42cba6cdf32so12448245e9.1 for ; Thu, 12 Sep 2024 14:48:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1726177721; x=1726782521; darn=ffmpeg.org; h=subject:date:from:to:message-id:in-reply-to:from:to:cc:subject:date :message-id:reply-to; bh=Wrr6GRIOScpucHBxfpAxYHMnT8VyHWNgn+9cpmakCmk=; b=hrSCGvue76xrLgUPRmfYK/mpZDEXdsG/1Pfhv2ba+e5D2842P3MpjI1QyUf0UhGGrW 8OyEUiRgt6QH7WAqJdqRdUi/mZ5D4nI8JP77UZPhsZC9Di913sCryh2J7hXpSFD5Rnky N0IrV5OFKO7bIvCfAkGW9GfrwhDMp31gp9rOFq0bWs+DIT0b/cNE1Hto96tSZjiHmubJ dLocU+p6qmtrzyDGwvpbfm1tkIHEpcHP2xZO6CkWdX7Fmd2hjIrUjbs9IbJrePUn2wvl JKw674sus74Nfc/HsDiGNS1h/GDgpT5xR/x4SNMbHj/iXC0ngCpfav07Nb9fDiEc0+oA 0fkg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1726177721; x=1726782521; h=subject:date:from:to:message-id:in-reply-to:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=Wrr6GRIOScpucHBxfpAxYHMnT8VyHWNgn+9cpmakCmk=; b=m2XnK/ycIgI17ZCO9DgWeEQgYvMf56xhV0KdA9YGa0UJtvEUO3GtJez4mvcJFa1MU3 YKbPQ4h5CtbZq1NYE82os+Ea80rN9MmK13QOs8u1IASdEfurtLlevGVcfRr1+EyuKedR P+YXdkEgPwvu6Ok8IMCRm3LY4/Mcr+pSZqSwZDsY5wGCauZ3Y51J5T70DVKeVKtleq40 0nSBi1F5ZSQYQIxcoPPGINrFmbB/yBcRBQkvP8L6IpQ98bU7/hpqfI6A9XW32MY2uHEZ vu0fyJgHXZO1pVwOjxsgWn+zSprqQxImWdL/FdCBmAdDP8evES2se3PGv3Tu1oubkvGi QmPQ== X-Gm-Message-State: AOJu0YzIjO9xSKrUbheCvXMclv645S7KlATqLj13GR5+wLQauQoYh9vn 7C60cbzg4tzongKot1Gvp1YpbY14zfB/jlGxOSoc5zd040fkp40/3SEyHA== X-Received: by 2002:a05:600c:3b93:b0:42c:b63e:fe91 with SMTP id 5b1f17b1804b1-42cdb57c176mr33545075e9.24.1726177720850; Thu, 12 Sep 2024 14:48:40 -0700 (PDT) Received: from localhost (p200300cccf026100499a02dfdfb9f5bd.dip0.t-ipconnect.de. [2003:cc:cf02:6100:499a:2df:dfb9:f5bd]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-42d9b181866sm3706715e9.41.2024.09.12.14.48.40 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 12 Sep 2024 14:48:40 -0700 (PDT) In-Reply-To: Message-Id: To: From: "Marvin Scholz" Date: Thu, 12 Sep 2024 23:41:33 +0200 Subject: [FFmpeg-devel] [PATCH v3 2/2] configure: correctly set sanitizer toolchain compilers 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 MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: i9lvOvnSlV8q Previously only the C compiler was set, which would lead to confusing situations where even though clang-asan was selected, it would still use g++ for C++ code, failing because configure does not support mixing compilers in this way (which is a separate issue not addressed by this commit). --- configure | 70 ++++++++++++++++++++++++++++++++----------------------- 1 file changed, 41 insertions(+), 29 deletions(-) diff --git a/configure b/configure index ad5bf6d6844..29bac713df0 100755 --- a/configure +++ b/configure @@ -4547,41 +4547,53 @@ test -n "$valgrind" && toolchain="valgrind-memcheck" enabled ossfuzz && ! echo $CFLAGS | grep -q -- "-fsanitize=" && ! echo $CFLAGS | grep -q -- "-fcoverage-mapping" &&{ add_cflags -fsanitize=address,undefined -fsanitize-coverage=trace-pc-guard,trace-cmp -fno-omit-frame-pointer add_ldflags -fsanitize=address,undefined -fsanitize-coverage=trace-pc-guard,trace-cmp } +add_sanitizer_flags(){ + case "$1" in + asan) + add_cflags -fsanitize=address + add_ldflags -fsanitize=address + ;; + lsan) + add_cflags -fsanitize=leak + add_ldflags -fsanitize=leak + ;; + msan) + add_cflags -fsanitize=memory -fsanitize-memory-track-origins + add_ldflags -fsanitize=memory + ;; + tsan) + add_cflags -fsanitize=thread + add_ldflags -fsanitize=thread + ;; + usan) + add_cflags -fsanitize=undefined + add_ldflags -fsanitize=undefined + ;; + ?*) + die "Unknown sanitizer $1" + ;; + esac +} + case "$toolchain" in - *-asan) - cc_default="${toolchain%-asan}" - add_cflags -fsanitize=address - add_ldflags -fsanitize=address - ;; - *-lsan) - cc_default="${toolchain%-lsan}" - add_cflags -fsanitize=leak - add_ldflags -fsanitize=leak - ;; - *-msan) - cc_default="${toolchain%-msan}" - add_cflags -fsanitize=memory -fsanitize-memory-track-origins - add_ldflags -fsanitize=memory - ;; - *-tsan) - cc_default="${toolchain%-tsan}" - add_cflags -fsanitize=thread - add_ldflags -fsanitize=thread - case "$toolchain" in - gcc-tsan) - add_cflags -fPIC - add_ldflags -fPIC - ;; - esac + clang-*) + add_sanitizer_flags "${toolchain#clang-}" + cc_default="clang" + cxx_default="clang++" ;; - *-usan) - cc_default="${toolchain%-usan}" - add_cflags -fsanitize=undefined - add_ldflags -fsanitize=undefined + gcc-*) + add_sanitizer_flags "${toolchain#gcc-}" + cc_default="gcc" + cxx_default="g++" + # In case of tsan with gcc, PIC has to be enabled + if [ "${toolchain#gcc-}" = "tsan" ]; then + add_cflags -fPIC + add_ldflags -fPIC + fi ;; valgrind-*) target_exec_default="valgrind" case "$toolchain" in valgrind-massif)