From: Kacper Michajlow <kasper93-at-gmail.com@ffmpeg.org>
To: "softworkz ." <softworkz@hotmail.com>
Cc: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org>
Subject: Re: [FFmpeg-devel] graph.{html,css} embed failure on Windows build
Date: Tue, 17 Jun 2025 18:35:45 +0200
Message-ID: <CABPLASQFbFm=UqNy5MAQkfE1V6oSp3h8y-rpuLU2vKjdVrLkfQ@mail.gmail.com> (raw)
In-Reply-To: <DM8P223MB0365B3531307645499F4AA03BA73A@DM8P223MB0365.NAMP223.PROD.OUTLOOK.COM>
On Tue, 17 Jun 2025 at 18:07, softworkz . <softworkz@hotmail.com> wrote:
>
>
>
> > -----Original Message-----
> > From: Kacper Michajlow <kasper93@gmail.com>
> > Sent: Tuesday, June 17, 2025 6:00 PM
> > To: softworkz . <softworkz@hotmail.com>
> > Cc: FFmpeg development discussions and patches <ffmpeg-
> > devel@ffmpeg.org>
> > Subject: Re: graph.{html,css} embed failure on Windows build
> >
> > On Tue, 17 Jun 2025 at 17:29, softworkz . <softworkz@hotmail.com> wrote:
> > >
> > > > -----Original Message-----
> > > > From: ffmpeg-devel <ffmpeg-devel-bounces@ffmpeg.org> On Behalf Of
> > > > softworkz .
> > > > Sent: Tuesday, June 17, 2025 4:13 PM
> > > > To: Kacper Michajlow <kasper93@gmail.com>
> > > > Cc: FFmpeg development discussions and patches <ffmpeg-
> > > > devel@ffmpeg.org>
> > > > Subject: Re: [FFmpeg-devel] graph.{html,css} embed failure on
> > > > Windows build
> > > >
> > > >
> > > > > -----Original Message-----
> > > > > From: Kacper Michajlow <kasper93@gmail.com>
> > > > > Sent: Tuesday, June 17, 2025 4:06 PM
> > > > > To: softworkz . <softworkz@hotmail.com>
> > > > > Cc: FFmpeg development discussions and patches <ffmpeg-
> > > > > devel@ffmpeg.org>
> > > > > Subject: Re: graph.{html,css} embed failure on Windows build
> > > > >
> > > > > On Tue, 17 Jun 2025 at 15:10, Kacper Michajlow
> > > > > <kasper93@gmail.com>
> > > > > wrote:
> > > > > >
> > > > > > On Tue, 17 Jun 2025 at 04:07, softworkz .
> > > > > > <softworkz@hotmail.com>
> > > > wrote:
> > > > > > >
> > > > > > >
> > > > > > > > -----Original Message-----
> > > > > > > > From: Kacper Michajlow <kasper93@gmail.com>
> > > > > > > > Sent: Sunday, June 15, 2025 12:49 AM
> > > > > > > > To: FFmpeg development discussions and patches <ffmpeg-
> > > > > > > > devel@ffmpeg.org>
> > > > > > > > Cc: softworkz@hotmail.com
> > > > > > > > Subject: graph.{html,css} embed failure on Windows build
> > > > > > > >
> > > > > > > > Hello,
> > > > > > > >
> > > > > > > > Since the recent addition of resman.c and embedding of
> > > > > > > > graph.{html,css} some of the Windows builds fail. There
> > > > > > > > seems to be a regression in path joining, caused by \ / mismatch.
> > > > > > > >
> > > > > > > > Generally those issues were never a problem and I would
> > > > > > > > prefer to keep it this way. This configuration has always
> > > > > > > > been flaky and
> > > > > undertested.
> > > > > > > > I could set-up a pipeline to report to the fate server if
> > > > > > > > that's something that would help stabilize it.
> > > > > > > >
> > > > > > > > Example of failure:
> > > > > > > > ```
> > > > > > > > BIN2C fftoolsresourcesgraph.html.c BIN2C
> > > > > > > > fftools/resources/graph.html.c SED
> > > > > > > > fftoolsresourcesgraph.css.min
> > > > > > > > sed: can't read
> > > > > > > > /c/a/FFmpeg/FFmpeg/fftoolsresources/graph.css: No such file
> > > > > > > > or directory SED fftools/resources/graph.css.min
> > > > > > > > make: *** No rule to make target
> > > > > > > > 'fftools\resources\graph.html.c', needed by
> > 'fftools/resources/graph.html.o'. Stop.
> > > > > > > > make: *** Waiting for unfinished jobs....
> > > > > > > > HOSTCC tests/videogen.o
> > > > > > > > rm fftools\resources\graph.css.min
> > > > > > > > fftools/resources/graph.html.c ```
> > > > > > > >
> > > > > > > > Note that BIN2C is called twice, once with the correct path
> > > > > > > > and with the wrong one.
> > > > > > > >
> > > > > > > > Removing resman.c fixes the build. This has to be done
> > > > > > > > forcefully in the code, because there is no configure option
> > > > > > > > to disable this
> > > > html/css
> > > > > embedding.
> > > > > > > >
> > > > > > > > You can see the details and whole failing build logs here:
> > > > > > > > code: https://github.com/kasper93/FFmpeg/tree/gha
> > > > > > > > build:
> > > > > > > >
> > > > >
> > https://github.com/kasper93/FFmpeg/actions/runs/15653223193/job/44
> > > > > > > > 100
> > > > > > > > 735119
> > > > > > > > command: $ ../configure --enable-gpl --enable-version3
> > > > > > > > --enable-nonfree -- samples=../samples
> > > > > > > > --enable-memory-poisoning
> > > > > > > > --arch=amd64 --enable-w32threads --as=clang --ar=llvm-ar
> > > > > > > > --cxx=clang++ -- ld=lld-link --windres=llvm-windres
> > > > > > > > --strip=llvm-strip --cc=clang --nm=llvm-nm
> > > > > > > > --extra-ldflags='msvcrt.lib
> > > > > oldnames.lib'
> > > > > > > > --host_extralibs='' --toolchain=msvc && make -j`nproc` &&
> > > > > > > > make -j`nproc` run-checkasm && make -j`nproc` fate-rsync &&
> > > > > > > > make -j`nproc` fate
> > > > > > > >
> > > > > > > > Here is exactly the same pipeline with removed
> > > > > > > > graph.{html,css}
> > > > > > > > https://github.com/kasper93/FFmpeg/tree/gha2
> > > > > > > > https://github.com/kasper93/FFmpeg/actions/runs/15656127992
> > > > > > > > Builds just fine.
> > > > > > > > Ignore win32 (windows-11-arm, arm64, --toolchain=msvc)
> > > > > > > > failure, as this is affected by unrelated regression in
> > > > > > > > dxvenc.c on arm64 target, but the build itself is passing just fine.
> > > > > > > >
> > > > > > > > Any ideas how we can restore the ability to build ffmpeg on
> > Windows?
> > > > > > >
> > > > > > > Hi Kasper,
> > > > > > >
> > > > > > > I was able to reproduce the issue by adding a new CI build
> > > > > > > (for PRs to ffstaging/ffmpeg (on GitHub, not yet for Patchwork).
> > > > > > >
> > > > > > > It appears to be all about dir separators when building under
> > > > > > > MSYS2 with Clang. Clang insists on using backslashes (unlike
> > > > > > > GCC and MSVC) and that screws the Gnu make logic (pattern
> > > > > > > rules, dependency and up-to-date checks).
> > > > > >
> > > > > > Why is Clang involved in .css conversion rules? It seems to fail
> > > > > > at the `%.css.min: %.css` rule already, which shouldn't involve
> > > > > > any C toolchain related bits. Is this propagated from the .o
> > > > > > file? In which case why does the .o have "wrong" path separators?
> > > > > >
> > > > > > Isn't there an issue in vpath? Maybe we can make it somehow
> > > > > > proper separators. Few days I briefly looked at this, but it
> > > > > > wasn't obvious what would be the correct solution here. Changing
> > > > > > vpath to extract only files in fftools/resources was improving
> > > > > > things, but still not fully.
> > > > > >
> > > > > > Also vpath in fftools/resources/Makefile is setting search path
> > > > > > in the whole SRC_PATH, while imho it should be restricted to the
> > > > > > fftools/resources directory only.
> > > > > >
> > > > > > - Kacper
> > > > >
> > > > > Ok, Martin explained to me on IRC that Windows Clang is generating
> > > > > dependency files with backward slashes, which is then choking
> > > > > because
> > > > Make
> > > > > ingest that, which when not escaped \\ makes paths all go wrong.
> > > > >
> > > > > There is no issue with llvm-mingw or alike, because Clang can be
> > > > > configured during compile time to output forward slashes in dep files.
> > > > >
> > > > > So, probably a solution would be to postproc .d files. But I
> > > > > didn't look at the issue closely, as you can see :) Or make Make
> > > > > work with backward slashes where needed, but this may be tricky to
> > cover all internal matching.
> > > > >
> > > > > Dunno, just wanted to correct my previous message.
> > > >
> > > > Hi Kasper,
> > > >
> > > > thanks a lot for the update.
> > > > I had found this (path in dependency files) as a possible issue from
> > > > research but disregarded it because I had already stopped creation
> > > > of .d files for resources.
> > > >
> > > > BUT - now I realize: That change hasn't even been merged into master
> > yet.
> > > >
> > > > Will run the CI with those changes included and report back.
> > > >
> > > > Thank you,
> > > > sw
> > >
> > > Hi Kasper,
> > >
> > > my already submitted patchset indeed fixes the MSVC-CLang build
> > > configuration which you had reported as failing:
> > >
> > > PR:
> > > https://github.com/ffstaging/FFmpeg/pull/80
> > >
> > > Build log:
> > > https://dev.azure.com/githubsync/ffmpeg/_build/results?buildId=95960&v
> > > iew=logs&j=275f1d19-1bd8-5591-b06b-07d489ea915a
> > >
> > > I will wait for the remaining CI builds to succeed and submit the
> > > rebased patchset to the ML then.
> > >
> > > Please let me know whether it fixes the build on your side as well.
> >
> > Yes, this fixes the build issue. Thanks.
>
> Thanks for confirming. Patch update sent.
>
> > Note, I created a pipeline to upload this failing configuration to the fate server.
> > So we have coverage of this config now. Things tend to break if something is
> > not tested.
>
> Yup - but that's testing only after merge to master.
> I'm thinking about adding an additional check build for Patchwork.
> Do you think your configuration is common enough to do this? Or is there a more
> typical configure setup for this kind of build (Win-CLang) that would make more
> sense for the project?
I think this config is criminally underused. Everyone thinks MSVC
(cl.exe) only when talking about Visual Studio. But actually they are
shipping LLVM toolchain which is a great way to build software with
Windows SDK (without mingw) that is not MSVC (cl.exe) compatible. Of
course mingw and llvm-mingw have existed for a long time and are goto
solutions for such cases, but I find it nice to run software with
standard SDK.
To answer your questions, depends how much resources you want to throw
at that. I wouldn't say this configuration is critical. Though at
least one Clang based Windows build would be good to have, whether
llvm-mingw or clang-msvc. Note I don't mean clang-cl because this
thing is supposed to be closely compatible with MSVC itself, so in
theory if cl.exe is working clang-cl.exe should do too.
- Kacper
_______________________________________________
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:[~2025-06-17 16:36 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-06-14 22:48 Kacper Michajlow
2025-06-14 23:15 ` Michael Niedermayer
2025-06-15 1:20 ` softworkz .
2025-06-15 2:36 ` softworkz .
2025-06-17 2:07 ` softworkz .
2025-06-17 13:10 ` Kacper Michajlow
2025-06-17 14:06 ` Kacper Michajlow
2025-06-17 14:12 ` softworkz .
2025-06-17 15:29 ` softworkz .
2025-06-17 15:59 ` Kacper Michajlow
2025-06-17 16:06 ` softworkz .
2025-06-17 16:35 ` Kacper Michajlow [this message]
2025-06-17 18:54 ` softworkz .
2025-06-17 23:14 ` Kacper Michajlow
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='CABPLASQFbFm=UqNy5MAQkfE1V6oSp3h8y-rpuLU2vKjdVrLkfQ@mail.gmail.com' \
--to=kasper93-at-gmail.com@ffmpeg.org \
--cc=ffmpeg-devel@ffmpeg.org \
--cc=softworkz@hotmail.com \
/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