Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
 help / color / mirror / Atom feed
From: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
To: ffmpeg-devel@ffmpeg.org
Subject: Re: [FFmpeg-devel] [PATCH 0/4] Fix FFmpeg compilation without DCE
Date: Wed, 2 Nov 2022 02:08:20 +0100
Message-ID: <GV1P250MB073772E7B554DCC1E70617568F399@GV1P250MB0737.EURP250.PROD.OUTLOOK.COM> (raw)
In-Reply-To: <cover.1667325395.git.amy@amyspark.me>

L. E. Segovia:
> Hi all,
> 
> This is a patch to fix building FFmpeg without having DCE enabled.
> This was previously attempted by Andreas Rheinhardt in commit 
> 40e6575aa3eed64cd32bf28c00ae57edc5acb25a. However, this is not remotely
> enough for MSVC; one can quickly check for this by configuring the build
> without any optimizations, and then overriding OPTFLAGS with /Od:
> 

You seem to misunderstand the goal of
40e6575aa3eed64cd32bf28c00ae57edc5acb25a: It was not meant for
--disable-optimizations builds; it was instead meant for full LTO builds
(with optimizations enabled), where MSVC wanted to take a look at
arch-specific code that was not available although it was under a "if
(0)". Builds without asm or where components have been disabled (which
can easily lead to linking failures if your compiler does not perform
DCE) are not considered "full" builds in the preceding sentence.

(I actually do not even know whether it has achieved said aim.)

>   ../configure --disable-asm --disable-optimizations --optflags=-Od --enable-shared --disable-static --toolchain=msvc
> 
> Issuing make should yield the first of many LNK2019 errors:
> 
>   LD      libavformat/avformat-59.dll
>     Creating library libavformat/avformat.lib and object libavformat/avformat.exp
>   rtmpproto.o : error LNK2019: unresolved external symbol ff_rtmpe_gen_pub_key referenced in function rtmp_handshake
>   rtmpproto.o : error LNK2019: unresolved external symbol ff_rtmpe_compute_secret_key referenced in function rtmp_handshake
>   rtmpproto.o : error LNK2019: unresolved external symbol ff_rtmpe_encrypt_sig referenced in function rtmp_handshake
>   rtmpproto.o : error LNK2019: unresolved external symbol ff_rtmpe_update_keystream referenced in function rtmp_handshake
>   libavformat\avformat-59.dll : fatal error LNK1120: 4 unresolved externals
>   make: *** [/c/Users/Amalia/Desktop/ffmpeg/ffbuild/library.mak:119: libavformat/avformat-59.dll] Error 96
> 
> The proposed patchset comprehensively converts all instances of ARCH_FOO, 
> CONFIG_FOO, INLINE_FOO and EXTERNAL_FOO to the equivalent preprocessor
> guards.
> 

You are not converting all of them; you seem to only convert those that
caused linker errors in your build (which is fine by me). E.g.
mpegvideo_enc.c is full of CONFIG checks that would lead to linker
errors in case DCE is disabled if some of the components whose existence
is checked are actually disabled.

> L. E. Segovia (4):
>   all: Replace if (ARCH_FOO) checks by #if ARCH_FOO, part 2
>   all: Replace if (CONFIG_FOO) checks by #if CONFIG_FOO
>   all: Guard if (INLINE*) checks with #if HAVE_INLINE_ASM
>   all: Guard if (EXTERNAL*) checks with #if HAVE_X86ASM
> 
>  fftools/ffprobe.c                          |  22 +-
>  fftools/opt_common.c                       |  18 +-
>  libavcodec/x86/aacencdsp_init.c            |   2 +
>  libavcodec/x86/aacpsdsp_init.c             |   2 +
>  libavcodec/x86/ac3dsp_init.c               |   4 +
>  libavcodec/x86/audiodsp_init.c             |   2 +
>  libavcodec/x86/bswapdsp_init.c             |   2 +
>  libavcodec/x86/cavsdsp.c                   |   2 +
>  libavcodec/x86/celt_pvq_init.c             |   2 +
>  libavcodec/x86/cfhddsp_init.c              |   2 +
>  libavcodec/x86/cfhdencdsp_init.c           |   2 +
>  libavcodec/x86/dcadsp_init.c               |   4 +
>  libavcodec/x86/dct_init.c                  |   2 +
>  libavcodec/x86/dnxhdenc_init.c             |   2 +
>  libavcodec/x86/exrdsp_init.c               |   2 +
>  libavcodec/x86/fdctdsp_init.c              |   2 +
>  libavcodec/x86/fft_init.c                  |   2 +
>  libavcodec/x86/flacdsp_init.c              |   8 +-
>  libavcodec/x86/g722dsp_init.c              |   2 +
>  libavcodec/x86/h263dsp_init.c              |   2 +
>  libavcodec/x86/h264_intrapred_init.c       |   2 +
>  libavcodec/x86/h264chroma_init.c           |   2 +
>  libavcodec/x86/hevcdsp_init.c              | 465 +++++++++++----------
>  libavcodec/x86/hpeldsp_init.c              |   2 +
>  libavcodec/x86/hpeldsp_vp3_init.c          |   2 +
>  libavcodec/x86/huffyuvdsp_init.c           |   2 +
>  libavcodec/x86/huffyuvencdsp_init.c        |   2 +
>  libavcodec/x86/idctdsp_init.c              |  11 +-
>  libavcodec/x86/jpeg2000dsp_init.c          |   2 +
>  libavcodec/x86/lossless_videodsp_init.c    |   2 +
>  libavcodec/x86/lossless_videoencdsp_init.c |   2 +
>  libavcodec/x86/mdct15_init.c               |   2 +
>  libavcodec/x86/me_cmp_init.c               |   2 +
>  libavcodec/x86/mlpdsp_init.c               |   8 +-
>  libavcodec/x86/mpegvideoencdsp_init.c      |   2 +
>  libavcodec/x86/opusdsp_init.c              |   2 +
>  libavcodec/x86/pixblockdsp_init.c          |   2 +
>  libavcodec/x86/pngdsp_init.c               |   2 +
>  libavcodec/x86/proresdsp_init.c            |   2 +
>  libavcodec/x86/rv34dsp_init.c              |   2 +
>  libavcodec/x86/sbcdsp_init.c               |   2 +
>  libavcodec/x86/sbrdsp_init.c               |   2 +
>  libavcodec/x86/svq1enc_init.c              |   2 +
>  libavcodec/x86/utvideodsp_init.c           |   2 +
>  libavcodec/x86/v210enc_init.c              |   2 +
>  libavcodec/x86/vc1dsp_init.c               |   6 +-
>  libavcodec/x86/vorbisdsp_init.c            |   2 +
>  libavcodec/x86/vp3dsp_init.c               |   2 +
>  libavcodec/x86/vp6dsp_init.c               |   2 +
>  libavfilter/x86/af_afir_init.c             |   2 +
>  libavfilter/x86/af_anlmdn_init.c           |   2 +
>  libavfilter/x86/af_volume_init.c           |   2 +
>  libavfilter/x86/avf_showcqt_init.c         |   2 +
>  libavfilter/x86/colorspacedsp_init.c       |   6 +-
>  libavfilter/x86/vf_atadenoise_init.c       |   8 +-
>  libavfilter/x86/vf_blend_init.c            |   2 +
>  libavfilter/x86/vf_bwdif_init.c            |   2 +
>  libavfilter/x86/vf_convolution_init.c      |   2 +
>  libavfilter/x86/vf_framerate_init.c        |   2 +
>  libavfilter/x86/vf_fspp_init.c             |   2 +
>  libavfilter/x86/vf_gblur_init.c            |   2 +
>  libavfilter/x86/vf_hflip_init.c            |   2 +
>  libavfilter/x86/vf_limiter_init.c          |   2 +
>  libavfilter/x86/vf_maskedclamp_init.c      |   2 +
>  libavfilter/x86/vf_maskedmerge_init.c      |   2 +
>  libavfilter/x86/vf_overlay_init.c          |   2 +
>  libavfilter/x86/vf_pp7_init.c              |   2 +
>  libavfilter/x86/vf_psnr_init.c             |   2 +
>  libavfilter/x86/vf_removegrain_init.c      |   2 +
>  libavfilter/x86/vf_ssim_init.c             |   8 +-
>  libavfilter/x86/vf_stereo3d_init.c         |   2 +
>  libavfilter/x86/vf_threshold_init.c        |   2 +
>  libavfilter/x86/vf_tinterlace_init.c       |   2 +
>  libavfilter/x86/vf_transpose_init.c        |   2 +
>  libavfilter/x86/vf_v360_init.c             |   2 +
>  libavfilter/x86/vf_w3fdif_init.c           |   6 +-
>  libavfilter/x86/vf_yadif_init.c            |   2 +
>  libavformat/rtmpproto.c                    |  24 +-
>  libavutil/x86/fixed_dsp_init.c             |   2 +
>  libavutil/x86/float_dsp_init.c             |   2 +
>  libavutil/x86/imgutils_init.c              |   2 +
>  libavutil/x86/lls_init.c                   |   2 +
>  libavutil/x86/pixelutils_init.c            |   2 +
>  libswresample/x86/audio_convert_init.c     |   2 +
>  libswresample/x86/resample_init.c          |   6 +
>  libswscale/x86/rgb2rgb.c                   |   2 +
>  libswscale/x86/swscale.c                   |   2 +
>  87 files changed, 493 insertions(+), 255 deletions(-)
> 

_______________________________________________
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".

  parent reply	other threads:[~2022-11-02  1:08 UTC|newest]

Thread overview: 54+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-11-01 21:59 L. E. Segovia
2022-11-01 21:59 ` [FFmpeg-devel] [PATCH 1/4] all: Replace if (ARCH_FOO) checks by #if ARCH_FOO, part 2 L. E. Segovia
2022-11-01 22:28   ` Andreas Rheinhardt
2022-11-03 12:55     ` L. E. Segovia
2022-11-03 14:19       ` Andreas Rheinhardt
2022-11-03 21:59   ` Carl Eugen Hoyos
2022-11-01 21:59 ` [FFmpeg-devel] [PATCH 2/4] all: Replace if (CONFIG_FOO) checks by #if CONFIG_FOO L. E. Segovia
2022-11-02  0:38   ` Andreas Rheinhardt
2022-11-01 21:59 ` [FFmpeg-devel] [PATCH 3/4] all: Guard if (INLINE*) checks with #if HAVE_INLINE_ASM L. E. Segovia
2022-11-02  0:42   ` Andreas Rheinhardt
2022-11-01 21:59 ` [FFmpeg-devel] [PATCH 4/4] all: Guard if (EXTERNAL*) checks with #if HAVE_X86ASM L. E. Segovia
2022-11-02  0:26   ` Andreas Rheinhardt
2022-11-02  1:08 ` Andreas Rheinhardt [this message]
2022-11-03 15:30 ` [FFmpeg-devel] [PATCH v2 0/5] Fix FFmpeg compilation without DCE L. E. Segovia
2022-11-03 15:30 ` [FFmpeg-devel] [PATCH v2 1/5] all: Replace if (ARCH_FOO) checks by #if ARCH_FOO, part 2 L. E. Segovia
2022-11-03 15:30 ` [FFmpeg-devel] [PATCH v2 2/5] avcodec/x86/hevcdsp_init: Fix indentation after the ARCH_FOO changes L. E. Segovia
2022-11-03 15:30 ` [FFmpeg-devel] [PATCH v2 3/5] all: Replace if (CONFIG_FOO) checks by #if CONFIG_FOO L. E. Segovia
2022-11-03 15:30 ` [FFmpeg-devel] [PATCH v2 4/5] all: Guard if (INLINE*) checks with #if HAVE_INLINE_ASM L. E. Segovia
2022-11-03 15:30 ` [FFmpeg-devel] [PATCH v2 5/5] all: Guard if (EXTERNAL*) checks with #if HAVE_X86ASM L. E. Segovia
2022-11-03 15:55   ` Lynne
2022-11-14  9:01     ` L. E. Segovia
2022-11-03 16:36 ` [FFmpeg-devel] [PATCH v3 0/5] Fix FFmpeg compilation without DCE L. E. Segovia
2022-11-03 16:36   ` [FFmpeg-devel] [PATCH v3 1/5] all: Replace if (ARCH_FOO) checks by #if ARCH_FOO, part 2 L. E. Segovia
2022-11-03 16:36   ` [FFmpeg-devel] [PATCH v3 2/5] avcodec/x86/hevcdsp_init: Fix indentation after the ARCH_FOO changes L. E. Segovia
2022-11-03 16:36   ` [FFmpeg-devel] [PATCH v3 3/5] all: Replace if (CONFIG_FOO) checks by #if CONFIG_FOO L. E. Segovia
2022-11-03 16:36   ` [FFmpeg-devel] [PATCH v3 4/5] all: Guard if (INLINE*) checks with #if HAVE_INLINE_ASM L. E. Segovia
2022-11-03 16:36   ` [FFmpeg-devel] [PATCH v3 5/5] all: Guard if (EXTERNAL*) checks with #if HAVE_X86ASM L. E. Segovia
2022-11-07 14:48   ` [FFmpeg-devel] [PATCH v3 0/5] Fix FFmpeg compilation without DCE L. E. Segovia
2022-11-17 22:45     ` L. E. Segovia
2022-11-26 19:17     ` L. E. Segovia
2022-11-27 15:51       ` Carl Eugen Hoyos
2022-11-27 16:29         ` Soft Works
2022-11-27 16:46           ` Carl Eugen Hoyos
2022-11-27 17:16             ` Soft Works
2022-11-27 17:45               ` Carl Eugen Hoyos
2022-11-27 19:23                 ` Soft Works
2022-11-27 17:50               ` Hendrik Leppkes
2022-11-27 18:28                 ` Soft Works
2023-07-28  1:37   ` [FFmpeg-devel] [PATCH v4 0/4] Fix MSVC build without optimizations L. E. Segovia
2023-07-28 10:40     ` Reimar Döffinger
2023-07-28 10:48       ` Reimar Döffinger
2023-07-28 10:55         ` Nicolas George
2023-07-28 13:21           ` Matt Oliver
2023-07-29 18:57             ` L. E. Segovia
2023-07-29 19:07     ` [FFmpeg-devel] [PATCH v5 " L. E. Segovia
     [not found]     ` <cover.1690657578.git.amy@amyspark.me>
2023-07-29 19:07       ` [FFmpeg-devel] [PATCH v5 1/4] all: Replace if (ARCH_FOO) checks by #if ARCH_FOO, part 2 L. E. Segovia
2023-07-31 18:28         ` Michael Niedermayer
2023-07-29 19:07       ` [FFmpeg-devel] [PATCH v5 2/4] all: Replace if (CONFIG_FOO) checks by #if CONFIG_FOO L. E. Segovia
2023-07-29 19:07       ` [FFmpeg-devel] [PATCH v5 3/4] all: Guard if (INLINE*) checks with #if HAVE_INLINE_ASM L. E. Segovia
2023-07-29 19:08       ` [FFmpeg-devel] [PATCH v5 4/4] all: Guard if (EXTERNAL*) checks with #if HAVE_X86ASM L. E. Segovia
     [not found]   ` <cover.1690508131.git.amy@amyspark.me>
2023-07-28  1:37     ` [FFmpeg-devel] [PATCH v4 1/4] all: Replace if (ARCH_FOO) checks by #if ARCH_FOO, part 2 L. E. Segovia
2023-07-28  1:38     ` [FFmpeg-devel] [PATCH v4 2/4] all: Replace if (CONFIG_FOO) checks by #if CONFIG_FOO L. E. Segovia
2023-07-28  1:38     ` [FFmpeg-devel] [PATCH v4 3/4] all: Guard if (INLINE*) checks with #if HAVE_INLINE_ASM L. E. Segovia
2023-07-28  1:38     ` [FFmpeg-devel] [PATCH v4 4/4] all: Guard if (EXTERNAL*) checks with #if HAVE_X86ASM L. E. Segovia

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=GV1P250MB073772E7B554DCC1E70617568F399@GV1P250MB0737.EURP250.PROD.OUTLOOK.COM \
    --to=andreas.rheinhardt@outlook.com \
    --cc=ffmpeg-devel@ffmpeg.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

This inbox may be cloned and mirrored by anyone:

	git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \
		ffmpegdev@gitmailbox.com
	public-inbox-index ffmpegdev

Example config snippet for mirrors.


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git