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".
next prev 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