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 CBC2B4A0A8 for ; Tue, 19 Mar 2024 22:44:39 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id F3B4E68D42F; Wed, 20 Mar 2024 00:44:35 +0200 (EET) Received: from mail-pl1-f180.google.com (mail-pl1-f180.google.com [209.85.214.180]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 8E7A268D41E for ; Wed, 20 Mar 2024 00:44:29 +0200 (EET) Received: by mail-pl1-f180.google.com with SMTP id d9443c01a7336-1deffa23bb9so30289825ad.2 for ; Tue, 19 Mar 2024 15:44:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1710888264; x=1711493064; darn=ffmpeg.org; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:from:to:cc:subject:date:message-id:reply-to; bh=/OQL/Zwo2LgUlg3JWVLhh+g8aMjYAVxidMziZ2myJTY=; b=W+3eeylL10dkMqPnE4w822CkYoTVnSmCGRzU35ueDR3QCEkU0pnPYiK59y3YxbIpE7 I8JJWrrhmbVYx8A0r37OFHxM6kqm11cFP3ykCmxjibuS5cB+x8z2MHHs2kpb5MTALtIB bIxt1GDPBlVftw4LZmtkXfAdFPNKP4YPfn0+Hn7x3TyBYKuB2C2bTHL3y1XZBPgwee0p OCBmm3FQvTfP6n0ZeBE3qBrAeAeJVbDmprecf/hgKUTfxqk/70C6HOGTafHdpXoqn05u LcbA9vz9Qusj8bY21/5QAIjN5KlBjfJxKX4jKfpSlhHkgye8Po8OtMpdrxPsfHPflW1y n2PQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1710888264; x=1711493064; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=/OQL/Zwo2LgUlg3JWVLhh+g8aMjYAVxidMziZ2myJTY=; b=d6tZLGY49asNQaUzsb+Cm6g8dSMjA/WDG9IRm0zxtup3Hs2nkrbwZHXWPXoRlBI7nI ajsFtVCvNCKFB30c9oh9aLHXVru75wEzi2gMceToiPzxxaOBw28uZkVWYddFJPGHlNg0 nP6qkm5XD1k1c7Kk1gK9lEmc6tknldnO2kpoR5RHbFkCIPYk1wKOe7vS2byErunE53KM nZfviiRQGC7EBAjF7vkBsWNow3sJvCGMoE+eBioqC3G2mdjJtjMfW+m8Z1Qzom1V2YZY jsk7ncZ/9/Y4kpNKo7Osm0ybmoOqlNecOCY9PoX4v23/FQvy9Gv7WWwkvt6ewJZJ5tdZ bueQ== X-Gm-Message-State: AOJu0YzKDhO3Y8m/w4FEOk4i9RZ3QKtPKPiEauRYMpmDkzOjngABWj5B l409/ZfK+jKJfiN87/Z2A6e1GW1wpfEHi2wlR72SjadC8gX742w3xCUeAGOG X-Google-Smtp-Source: AGHT+IFgEbE1Q+yxHGcpIkCPFypJmzuPadUYzr3DL47uXcv27MYMImWtODlD/3AXardQxFI5MsOUuw== X-Received: by 2002:a17:902:f681:b0:1e0:36e:2bb9 with SMTP id l1-20020a170902f68100b001e0036e2bb9mr12972256plg.11.1710888264335; Tue, 19 Mar 2024 15:44:24 -0700 (PDT) Received: from localhost.localdomain ([190.194.167.233]) by smtp.gmail.com with ESMTPSA id k10-20020a170902c40a00b001defa2d8e22sm8753294plk.233.2024.03.19.15.44.23 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 19 Mar 2024 15:44:23 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Tue, 19 Mar 2024 19:44:27 -0300 Message-ID: <20240319224428.46481-1-jamrial@gmail.com> X-Mailer: git-send-email 2.44.0 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 1/2 v2] configure: make the C and C++ standard settable 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: While ensuring it's at least C11, the minimum supported version. Also, enforce C11 on the host compiler, same as we already do for C11 on the target compiler. Signed-off-by: James Almer --- Fixed the fallback code. configure | 56 ++++++++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 47 insertions(+), 9 deletions(-) diff --git a/configure b/configure index e019d1b996..f8381d15ff 100755 --- a/configure +++ b/configure @@ -387,7 +387,9 @@ Toolchain options: --windres=WINDRES use windows resource compiler WINDRES [$windres_default] --x86asmexe=EXE use nasm-compatible assembler EXE [$x86asmexe_default] --cc=CC use C compiler CC [$cc_default] + --stdc=STDC use C standard STDC [$stdc_default] --cxx=CXX use C compiler CXX [$cxx_default] + --stdcxx=STDCXX use C standard STDCXX [$stdcxx_default] --objcc=OCC use ObjC compiler OCC [$cc_default] --dep-cc=DEPCC use dependency generator DEPCC [$cc_default] --nvcc=NVCC use Nvidia CUDA compiler NVCC or clang [$nvcc_default] @@ -1454,6 +1456,21 @@ test_cflags_cc(){ EOF } +test_cxxflags_cc(){ + log test_cxxflags_cc "$@" + flags=$1 + header=$2 + condition=$3 + shift 3 + set -- $($cflags_filter "$flags") + test_cxx "$@" < +#if !($condition) +#error "unsatisfied condition: $condition" +#endif +EOF +} + check_lib(){ log check_lib "$@" name="$1" @@ -1695,6 +1712,21 @@ int x; EOF } +test_host_cflags_cc(){ + log test_host_cflags_cc "$@" + flags=$1 + header=$2 + condition=$3 + shift 3 + set -- $($host_cflags_filter "$flags") + test_host_cc "$@" < +#if !($condition) +#error "unsatisfied condition: $condition" +#endif +EOF +} + test_host_cpp_condition(){ log test_host_cpp_condition "$@" header=$1 @@ -3980,6 +4012,8 @@ mandir_default='${prefix}/share/man' # toolchain ar_default="ar" cc_default="gcc" +stdc_default="c11" +stdcxx_default="c++11" cxx_default="g++" host_cc_default="gcc" doxygen_default="doxygen" @@ -4587,7 +4621,7 @@ if enabled cuda_nvcc; then fi set_default arch cc cxx doxygen pkg_config ranlib strip sysinclude \ - target_exec x86asmexe metalcc metallib + target_exec x86asmexe metalcc metallib stdc stdcxx enabled cross_compile || host_cc_default=$cc set_default host_cc @@ -4757,7 +4791,7 @@ icl_flags(){ # Despite what Intel's documentation says -Wall, which is supported # on Windows, does enable remarks so disable them here. -Wall) echo $flag -Qdiag-disable:remark ;; - -std=c11) echo -Qstd=c11 ;; + -std=$stdc) echo -Qstd=$stdc ;; -flto*) echo -ipo ;; esac done @@ -4805,7 +4839,7 @@ suncc_flags(){ athlon*) echo -xarch=pentium_proa ;; esac ;; - -std=c11) echo -xc11 ;; + -std=$stdc) echo -x$stdc ;; -fomit-frame-pointer) echo -xregs=frameptr ;; -fPIC) echo -KPIC -xcode=pic32 ;; -W*,*) echo $flag ;; @@ -4894,8 +4928,8 @@ probe_cc(){ _type=suncc _ident=$($_cc -V 2>&1 | head -n1 | cut -d' ' -f 2-) _DEPCMD='$(DEP$(1)) $(DEP$(1)FLAGS) $($(1)DEP_FLAGS) $< | sed -e "1s,^.*: ,$@: ," -e "\$$!s,\$$, \\\," -e "1!s,^.*: , ," > $(@:.o=.d)' - _DEPFLAGS='-xM1 -xc11' - _ldflags='-std=c11' + _DEPFLAGS='-xM1 -x$stdc' + _ldflags='-std=$stdc' _cflags_speed='-O5' _cflags_size='-O5 -xspace' _flags_filter=suncc_flags @@ -5526,18 +5560,22 @@ fi add_cppflags -D_ISOC11_SOURCE add_cxxflags -D__STDC_CONSTANT_MACROS -check_cxxflags -std=c++11 || check_cxxflags -std=c++0x +test_cxxflags_cc -std=$stdcxx ctype.h "__cplusplus >= 201103L" && + add_cxxflags -std=$stdcxx || { check_cxxflags -std=c++11 && stdcxx="c++11" || + { check_cxxflags -std=c++0x && stdcxx="c++0x"; }; } # some compilers silently accept -std=c11, so we also need to check that the # version macro is defined properly -test_cflags_cc -std=c11 ctype.h "__STDC_VERSION__ >= 201112L" && - add_cflags -std=c11 || die "Compiler lacks C11 support" +test_cflags_cc -std=$stdc ctype.h "__STDC_VERSION__ >= 201112L" && + add_cflags -std=$stdc || { check_cflags -std=c11 && stdc="c11" || die "Compiler lacks C11 support"; } check_cppflags -D_FILE_OFFSET_BITS=64 check_cppflags -D_LARGEFILE_SOURCE add_host_cppflags -D_ISOC11_SOURCE -check_host_cflags -std=c11 +test_host_cflags_cc -std=$stdc ctype.h "__STDC_VERSION__ >= 201112L" && + add_host_cflags -std=$stdc || { check_host_cflags -std=c11 || die "Host compiler lacks C11 support"; } + check_host_cflags -Wall check_host_cflags $host_cflags_speed -- 2.44.0 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".