From patchwork Tue Sep 5 23:26:29 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Kacper_Michaj=C5=82ow?= X-Patchwork-Id: 43571 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:4f16:b0:149:dfde:5c0a with SMTP id gi22csp2175307pzb; Tue, 5 Sep 2023 16:27:37 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFfRUMdUIHJUGNhe5OoFgSOkjz9ZJlKqTdwewjiX1QMDKQD0LAw2kUI7EZzHwJnlfwPpzPm X-Received: by 2002:a17:907:72d5:b0:9a2:1ec1:625d with SMTP id du21-20020a17090772d500b009a21ec1625dmr942917ejc.64.1693956456789; Tue, 05 Sep 2023 16:27:36 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1693956456; cv=none; d=google.com; s=arc-20160816; b=VNB1s3aLev5/7OtquIgy/UR1Fdx49xSaZa8wHk0YLU7N5W1rP41PZKChn61/EO8285 YlML4iEll9oqU/shovFjJUAtZiTIsLzcXttIUJo/WNztsHtkAh+9Q2WMJlq9XnI/joIt CU8TzADb4WxPqkxx1It+y6UnD+hfBJEZtrujz1DBVQt6C4aKS3pW7LQ4BXUed8VbM16z yQBE7iosJI1szLXocvSailJ+HgVdw24bMU2KvZT5dMTsolK5QteVcUCk/u12Nyh8QDvI A238TF0KY/Te3Llv2HMDwOJQ166DyoXmvbQjEX+SRQqu7eEULVCceY7oJVgtkWRXp4RD ybGw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:message-id:date:to:from :dkim-signature:delivered-to; bh=ygb+40sS873qHwGEcgVF44kwCuYadXKlX2xOFQjv9rc=; fh=VehHF75ibtIiOcMFupA+RvAd8F/HWiWMZFlcjyRnn54=; b=g2jsKxQx7EsCSQchI0TusomyP3XVw3QyRkCuzstu9V2PtuCpQFQsM+xKfd78HNdDDw ErO1RgZNBA2uMJEq3uBh0Y3xAdV3G2J/RoU4O5/0Vl7kvxjq1MqXU9jzvh1EbcYeXOPV w+EVPdqg6yoosC9uJg5aiggBQkvYKIEL/OUjw3mFpV4jTp72jFDJVmXeKf3hV5NM62ee 54znWfNisEMfcK9nM6ydSG9/eCNY0HypZiKfIjD28kZtRjaAC5j28s0P//qx+FUL9rq+ CzD7UCaUcfGjktoqFep7boyhM9iol7RfkdHE3gAgCfNAbwPOJrkhwJq1nmkkr5nG5l4n bTDg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20221208 header.b=VMCUqTNd; 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 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id m23-20020a170906235700b009a21af200f7si8174647eja.993.2023.09.05.16.27.36; Tue, 05 Sep 2023 16:27:36 -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=20221208 header.b=VMCUqTNd; 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 Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id D704268C7DD; Wed, 6 Sep 2023 02:27:33 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-lf1-f45.google.com (mail-lf1-f45.google.com [209.85.167.45]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 5EB3068C4DB for ; Wed, 6 Sep 2023 02:27:27 +0300 (EEST) Received: by mail-lf1-f45.google.com with SMTP id 2adb3069b0e04-50098cc8967so4834062e87.1 for ; Tue, 05 Sep 2023 16:27:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1693956446; x=1694561246; darn=ffmpeg.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=TWFP/ez+4panTy9FoAWox+vUTt5HnrErJKJoDEBPDr8=; b=VMCUqTNd5g2zktWHZ8SBX2mPA+eMJlGjkAItjbZIoH1KsqVrjdMhnbFAvMBJr/7Z6W 6LuJ+wwW9bAuyJUZVSkyogffdpvh0qfOJbbxqZgcWQDVlV+Rvyil0QWiX4I7F66ULs/a +5hBt/cl8c51slw6ko12opSc0ykbGiLKImmRk30nMVTNKXUySKpLBMU2gVvzdnk90QE0 v2asQUVygStIfI82J7UlZqnWFw+2xVoHNi7ZmnRoGuCGCBK8pQTVj8wbYT2B655GSC3b pGZ125EzdVbM/Hn8tn9m4egW+u+vhnDHepkWckE25PNb/p3kywp9XeUFjynq6ALnOPUp lBjA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1693956446; x=1694561246; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=TWFP/ez+4panTy9FoAWox+vUTt5HnrErJKJoDEBPDr8=; b=TUTBFiDU9GBhs7unUiVI4gunGPyzrngdGBr/hsJ56tY4qqaYEdd127tvpoIg+GnJwC oK8d151pO3YLd+Q64exShwDtb7xGVaKq0I928Mdzs9CDoh0D+O96dPZFg8FkyGhYa9tj DMHHJd0IYd5xGPXqJzJj/Ab+Xkc87zWEZ2TUd4gSdqWGmkXCjYaDW+wrM5JDcS4rw2TI MGgi1At3LVequJgG2S+8wUVo04S0wvhFYgCIX0/vNiv/sFRgK3ezqt88bPZ0/IlEAuCJ hZqujxYaRhihOaYWhmHu9+S9VEPpfuXZcjJSlDM7HJ6fMmY2x4G/uUBEsawDFmaT3LRS Po9A== X-Gm-Message-State: AOJu0YzUkaV9CeOhuyVlRDdvzvLqZjGXmg+DZt8LuxUt6UbpJvGetiFD tamBnh0C+i37verTH4a+JQYi/1a1/8I= X-Received: by 2002:a05:6512:104a:b0:4ff:b830:4b6b with SMTP id c10-20020a056512104a00b004ffb8304b6bmr1142978lfb.14.1693956445858; Tue, 05 Sep 2023 16:27:25 -0700 (PDT) Received: from localhost.localdomain (89-74-109-154.dynamic.chello.pl. [89.74.109.154]) by smtp.gmail.com with ESMTPSA id x12-20020ac2488c000000b005007fc9ccccsm2568757lfc.122.2023.09.05.16.27.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 05 Sep 2023 16:27:25 -0700 (PDT) From: =?utf-8?q?Kacper_Michaj=C5=82ow?= To: ffmpeg-devel@ffmpeg.org Date: Wed, 6 Sep 2023 01:26:29 +0200 Message-Id: <20230905232630.2031-1-kasper93@gmail.com> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v2 1/2] configure: don't force specific C++ standard library linking 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: =?utf-8?q?Kacper_Michaj=C5=82ow?= Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: Vi6eahLrI4Kz Other C++ standard libraries exist. Also, this is not a proper way to link the standard library anyway. Instead when a C++ dependency is detected, switch to the C++ compiler driver to properly link everything. Signed-off-by: Kacper Michajłow --- configure | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/configure b/configure index bd7f7697c8..f3ff48586a 100755 --- a/configure +++ b/configure @@ -3584,11 +3584,9 @@ bktr_indev_deps_any="dev_bktr_ioctl_bt848_h machine_ioctl_bt848_h dev_video_bktr caca_outdev_deps="libcaca" decklink_deps_any="libdl LoadLibrary" decklink_indev_deps="decklink threads" -decklink_indev_extralibs="-lstdc++" decklink_indev_suggest="libzvbi" decklink_outdev_deps="decklink threads" decklink_outdev_suggest="libklvanc" -decklink_outdev_extralibs="-lstdc++" dshow_indev_deps="IBaseFilter" dshow_indev_extralibs="-lpsapi -lole32 -lstrmiids -luuid -loleaut32 -lshlwapi" fbdev_indev_deps="linux_fb_h" @@ -4984,6 +4982,18 @@ set_ccvars HOSTCC test -n "$cc_type" && enable $cc_type || warn "Unknown C compiler $cc, unable to select optimal CFLAGS" +cxx_deps=( + decklink + libglslang + libgme + libopenmpt + librubberband + libsnappy +) +for l in ${cxx_deps[@]}; do + enabled $l && ld_default=$cxx +done + : ${as_default:=$cc} : ${objcc_default:=$cc} : ${dep_cc_default:=$cc} @@ -6706,12 +6716,12 @@ enabled libfribidi && require_pkg_config libfribidi fribidi fribidi.h fri enabled libharfbuzz && require_pkg_config libharfbuzz harfbuzz hb.h hb_buffer_create enabled libglslang && { check_lib spirv_compiler glslang/Include/glslang_c_interface.h glslang_initialize_process \ -lglslang -lMachineIndependent -lOSDependent -lHLSL -lOGLCompiler -lGenericCodeGen \ - -lSPVRemapper -lSPIRV -lSPIRV-Tools-opt -lSPIRV-Tools -lpthread -lstdc++ -lm || + -lSPVRemapper -lSPIRV -lSPIRV-Tools-opt -lSPIRV-Tools -lpthread -lm || require spirv_compiler glslang/Include/glslang_c_interface.h glslang_initialize_process \ -lglslang -lOSDependent -lHLSL -lOGLCompiler \ - -lSPVRemapper -lSPIRV -lSPIRV-Tools-opt -lSPIRV-Tools -lpthread -lstdc++ -lm; } + -lSPVRemapper -lSPIRV -lSPIRV-Tools-opt -lSPIRV-Tools -lpthread -lm; } enabled libgme && { check_pkg_config libgme libgme gme/gme.h gme_new_emu || - require libgme gme/gme.h gme_new_emu -lgme -lstdc++; } + require libgme gme/gme.h gme_new_emu -lgme; } enabled libgsm && { for gsm_hdr in "gsm.h" "gsm/gsm.h"; do check_lib libgsm "${gsm_hdr}" gsm_create -lgsm && break; done || die "ERROR: libgsm not found"; } @@ -6770,7 +6780,7 @@ enabled libopencv && { check_headers opencv2/core/core_c.h && enabled libopenh264 && require_pkg_config libopenh264 openh264 wels/codec_api.h WelsGetCodecVersion enabled libopenjpeg && { check_pkg_config libopenjpeg "libopenjp2 >= 2.1.0" openjpeg.h opj_version || { require_pkg_config libopenjpeg "libopenjp2 >= 2.1.0" openjpeg.h opj_version -DOPJ_STATIC && add_cppflags -DOPJ_STATIC; } } -enabled libopenmpt && require_pkg_config libopenmpt "libopenmpt >= 0.2.6557" libopenmpt/libopenmpt.h openmpt_module_create -lstdc++ && append libopenmpt_extralibs "-lstdc++" +enabled libopenmpt && require_pkg_config libopenmpt "libopenmpt >= 0.2.6557" libopenmpt/libopenmpt.h openmpt_module_create enabled libopenvino && { { check_pkg_config libopenvino openvino openvino/c/openvino.h ov_core_create && enable openvino2; } || { check_pkg_config libopenvino openvino c_api/ie_c_api.h ie_c_api_version || require libopenvino c_api/ie_c_api.h ie_c_api_version -linference_engine_c_api; } } @@ -6789,12 +6799,12 @@ enabled librav1e && require_pkg_config librav1e "rav1e >= 0.5.0" rav1e. enabled librist && require_pkg_config librist "librist >= 0.2.7" librist/librist.h rist_receiver_create enabled librsvg && require_pkg_config librsvg librsvg-2.0 librsvg-2.0/librsvg/rsvg.h rsvg_handle_render_cairo enabled librtmp && require_pkg_config librtmp librtmp librtmp/rtmp.h RTMP_Socket -enabled librubberband && require_pkg_config librubberband "rubberband >= 1.8.1" rubberband/rubberband-c.h rubberband_new -lstdc++ && append librubberband_extralibs "-lstdc++" +enabled librubberband && require_pkg_config librubberband "rubberband >= 1.8.1" rubberband/rubberband-c.h rubberband_new enabled libshaderc && require_pkg_config spirv_compiler "shaderc >= 2019.1" shaderc/shaderc.h shaderc_compiler_initialize enabled libshine && require_pkg_config libshine shine shine/layer3.h shine_encode_buffer enabled libsmbclient && { check_pkg_config libsmbclient smbclient libsmbclient.h smbc_init || require libsmbclient libsmbclient.h smbc_init -lsmbclient; } -enabled libsnappy && require libsnappy snappy-c.h snappy_compress -lsnappy -lstdc++ +enabled libsnappy && require libsnappy snappy-c.h snappy_compress -lsnappy enabled libsoxr && require libsoxr soxr.h soxr_create -lsoxr enabled libssh && require_pkg_config libssh libssh libssh/sftp.h sftp_init enabled libspeex && require_pkg_config libspeex speex speex/speex.h speex_decoder_init