[x264-devel] [PATCH] build: Generate dependency information as a side-effect of compilation

Diego Biurrun diego at biurrun.de
Wed May 7 11:24:55 CEST 2014


On Sun, May 04, 2014 at 09:50:35PM +0200, Janne Grunau wrote:
> On 2014-05-03 16:30:31 +0200, Diego Biurrun wrote:
> > This allows updating dependency information each time a file is changed,
> > instead of creating dependency information once at the first build. In the
> > latter case, dependency information is not updated each time a file is
> > changed so that it can get out of date quickly.
> > ---
> > 
> > This could still use some testing on ARM and ICL.
> 
> Works as expected for C sources on ARM, no change for assembler files.
> Adding 'ASFLAGS="$ASFLAGS -MMD"' to the non MACOSX ARM section generates
> dependency files as expected. The same doesn't work for darwin/macosx on arm 
> due to gas-preprocessor.

Why does it conflict with gas-preprocessor?

> >  .gitignore |  2 +-
> >  Makefile   | 27 +++++++++++----------------
> >  configure  |  8 ++------
> >  3 files changed, 14 insertions(+), 23 deletions(-)
> 
> the change looks ok, I can't judge whether it's worth it. What is causing 
> the slowdown? I'd guess including many small files in the Makefile and 
> writing them during compilation. How large is the slowdown?

This patch iteration adds a separate step to generate dependencies for .asm
files.  That causes a slowdown because the assembly files are processed
twice.  In my local latest revision I have dropped that.  NASM supports
generating dependencies as a side-effect of assembling, I'll check if
that also works with YASM.

> A full build is slightly faster on linux (cross-compiling with gcc for arm).
> make in a fully build tree (i.e. only dependency checking) is 2-3 times 
> slower but still takes less then 0.1s with hot fs caches.

Does not sound like a relevant quantity to me.

Diego


More information about the x264-devel mailing list