diff mbox series

[FFmpeg-devel] configure: Change _cflags_noopt for MSVC to -Od

Message ID 185cfb01d90e57$c22e5420$468afc60$@gmail.com
State New
Headers show
Series [FFmpeg-devel] configure: Change _cflags_noopt for MSVC to -Od | expand

Checks

Context Check Description
yinshiyou/configure_loongarch64 warning Failed to apply patch
andriy/make_x86 success Make finished
andriy/make_fate_x86 success Make fate finished

Commit Message

Thomson Tan Dec. 12, 2022, 6:30 p.m. UTC
Currently -O1 is set to _cflags_noopt, but -O1 is actually for size
optimization instead of no-opt which causes size optimized binaries
been built with --disable-optimizations.

Signed-off-by: Thomson Tan <lilotom@gmail.com>
---
 configure | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Timo Rothenpieler Dec. 12, 2022, 8:26 p.m. UTC | #1
On 12.12.2022 19:30, lilotom@gmail.com wrote:
> Currently -O1 is set to _cflags_noopt, but -O1 is actually for size
> optimization instead of no-opt which causes size optimized binaries
> been built with --disable-optimizations.

It's like this very intentionally, since ffmpeg relies on 
dead-code-elimination in a lot of places, which MSVC does not perform 
when optimizations are turned off.
So optimizations cannot be fully turned off on MSVC.
Thomson Tan Dec. 12, 2022, 8:32 p.m. UTC | #2
Thanks. Wondering why and where DCE is needed in FFmpeg build?

On Mon, Dec 12, 2022 at 12:26 PM Timo Rothenpieler <timo@rothenpieler.org>
wrote:

> On 12.12.2022 19:30, lilotom@gmail.com wrote:
> > Currently -O1 is set to _cflags_noopt, but -O1 is actually for size
> > optimization instead of no-opt which causes size optimized binaries
> > been built with --disable-optimizations.
>
> It's like this very intentionally, since ffmpeg relies on
> dead-code-elimination in a lot of places, which MSVC does not perform
> when optimizations are turned off.
> So optimizations cannot be fully turned off on MSVC.
> _______________________________________________
> 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".
>
Timo Rothenpieler Dec. 12, 2022, 8:47 p.m. UTC | #3
On 12.12.2022 21:32, Thomson Tan wrote:
> Thanks. Wondering why and where DCE is needed in FFmpeg build?

Every single time "HAVE_SOMETHING" or "CONFIG_SOMETHING" is used in a 
normal if() instead of a pre-processor #if.
That's used in a lot of places all over the codebase.
Carl Eugen Hoyos Dec. 12, 2022, 8:48 p.m. UTC | #4
Am Mo., 12. Dez. 2022 um 19:30 Uhr schrieb <lilotom@gmail.com>:
>
> Currently -O1 is set to _cflags_noopt, but -O1 is actually for size
> optimization instead of no-opt which causes size optimized binaries
> been built with --disable-optimizations.
>
> Signed-off-by: Thomson Tan <lilotom@gmail.com>
> ---
>  configure | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/configure b/configure
> index f4eedfc207..388d518345 100755
> --- a/configure
> +++ b/configure
> @@ -4825,7 +4825,7 @@ probe_cc(){
>          _DEPFLAGS='$(CPPFLAGS) $(CFLAGS) -showIncludes -Zs'
>          _cflags_speed="-O2"
>          _cflags_size="-O1"
> -        _cflags_noopt="-O1"
> +        _cflags_noopt="-Od"

I am curious:
How did you test this patch?

Thank you, Carl Eugen
Thomson Tan Dec. 12, 2022, 9:01 p.m. UTC | #5
I built the latest FFmpeg with WSL2+MSVC on Windows. Tried configure with
--disable-optimizations, but still got an optimized build which makes it
hard to set breakpoint on hot functions (likely inlined).

On Mon, Dec 12, 2022 at 12:49 PM Carl Eugen Hoyos <ceffmpeg@gmail.com>
wrote:

> Am Mo., 12. Dez. 2022 um 19:30 Uhr schrieb <lilotom@gmail.com>:
> >
> > Currently -O1 is set to _cflags_noopt, but -O1 is actually for size
> > optimization instead of no-opt which causes size optimized binaries
> > been built with --disable-optimizations.
> >
> > Signed-off-by: Thomson Tan <lilotom@gmail.com>
> > ---
> >  configure | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/configure b/configure
> > index f4eedfc207..388d518345 100755
> > --- a/configure
> > +++ b/configure
> > @@ -4825,7 +4825,7 @@ probe_cc(){
> >          _DEPFLAGS='$(CPPFLAGS) $(CFLAGS) -showIncludes -Zs'
> >          _cflags_speed="-O2"
> >          _cflags_size="-O1"
> > -        _cflags_noopt="-O1"
> > +        _cflags_noopt="-Od"
>
> I am curious:
> How did you test this patch?
>
> Thank you, Carl Eugen
> _______________________________________________
> 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".
>
Carl Eugen Hoyos Dec. 12, 2022, 9:11 p.m. UTC | #6
Am Mo., 12. Dez. 2022 um 22:02 Uhr schrieb Thomson Tan <lilotom@gmail.com>:
>
> I built the latest FFmpeg with WSL2+MSVC on Windows. Tried configure
> with --disable-optimizations, but still got an optimized build which makes
> it hard to set breakpoint on hot functions (likely inlined).

Of course, this explains why you wrote the patch.
But I still wonder how you tested it.

Please find out what top-posting means and avoid it here, Carl Eugen
Thomson Tan Dec. 14, 2022, 5:55 p.m. UTC | #7
With this configuration (WSL2+MSVC) for this diff, I ran `make fate-rsync
SAMPLES=fate-suite && make fate SAMPLES=fate-suite/` which passed locally.
I also checked the binaries (ffmpeg.exe) and made sure the previous inlined
functions are not inlined here.

On Mon, Dec 12, 2022 at 1:13 PM Carl Eugen Hoyos <ceffmpeg@gmail.com> wrote:

> Am Mo., 12. Dez. 2022 um 22:02 Uhr schrieb Thomson Tan <lilotom@gmail.com
> >:
> >
> > I built the latest FFmpeg with WSL2+MSVC on Windows. Tried configure
> > with --disable-optimizations, but still got an optimized build which
> makes
> > it hard to set breakpoint on hot functions (likely inlined).
>
> Of course, this explains why you wrote the patch.
> But I still wonder how you tested it.
>
> Please find out what top-posting means and avoid it here, Carl Eugen
> _______________________________________________
> 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".
>
diff mbox series

Patch

diff --git a/configure b/configure
index f4eedfc207..388d518345 100755
--- a/configure
+++ b/configure
@@ -4825,7 +4825,7 @@  probe_cc(){
         _DEPFLAGS='$(CPPFLAGS) $(CFLAGS) -showIncludes -Zs'
         _cflags_speed="-O2"
         _cflags_size="-O1"
-        _cflags_noopt="-O1"
+        _cflags_noopt="-Od"
         if $_cc -nologo- 2>&1 | grep -q Linker; then
             _ld_o='-out:$@'
         else