Re: [v4l-utils v5 0/5] Add support for meson building

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Em Tue, 18 May 2021 11:18:02 +0100
Kieran Bingham <kieran.bingham@xxxxxxxxxxxxxxxx> escreveu:

> Hi Mauro,
> 
> On 18/05/2021 08:23, Mauro Carvalho Chehab wrote:
> > Em Mon, 17 May 2021 23:13:45 +0100
> > Kieran Bingham <kieran.bingham@xxxxxxxxxxxxxxxx> escreveu:
> >   
> >> Ah, yes I should have been clearer there - but they don't do 'anything'
> >> except the bare minimum for both:
> >>
> >> ----------
> >> kbingham@Q:/opt/projects/media/v4l-utils$ cat make-autoconf.sh
> >> #!/bin/sh
> >>
> >> export CCACHE_DISABLE=true
> >>
> >> rm -rf build-autoconf
> >> mkdir -p build-autoconf
> >> cd build-autoconf
> >> ../configure  
> > 
> > This is not the bare minimum. It is just the opposite: the way we  
> 
> Ok, I'm sorry - I need to be clearer about my being clearer.
> 
> My *scripts* don't do anything except the bare minimum to build.

Ah, ok.

> > See, when one calls:
> > 
> > 	$ ./configure
> > 
> > It will display at the end the optional features that were enabled
> > that we found important enough to report:
> > 
> > compile time options summary
> > ============================
> > 
> >     Host OS                    : linux-gnu
> >     X11                        : yes
> >     GL                         : yes
> >     glu                        : yes
> >     libelf		       : yes
> >     libjpeg                    : yes
> >     libudev                    : yes
> >     pthread                    : yes
> >     QT version                 : v5.4 with QtGL
> >     ALSA support               : yes
> >     SDL support		       : yes
> > 
> >     build dynamic libs         : yes
> >     build static libs          : yes
> > 
> >     gconv                      : no
> > 
> >     dynamic libv4l             : yes
> >     v4l_plugins                : yes
> >     v4l_wrappers               : yes
> >     libdvbv5                   : yes
> >     dvbv5-daemon               : yes
> >     v4lutils                   : yes
> >     qv4l2                      : yes
> >     qvidcap                    : yes
> >     v4l2-ctl uses libv4l       : yes
> >     v4l2-ctl-32                : no
> >     v4l2-compliance            : yes
> >     v4l2-compliance uses libv4l: yes
> >     v4l2-compliance-32         : no
> >     BPF IR Decoders:           : no
> > 

> It would likely be useful to get a summary() of what is and isn't built
> from the meson to produce a comparable output summary.

Agreed. The best is to summarize at the end what optional features
were disabled.
 
> >> meson build-meson
> >> ninja -C build-meson  
> > 
> > I would be expecting that the above would do the same, but
> > it sounds it is lacking a lot of things...  
> 
> meson build-meson; ninja -C build-meson should be building a maximal
> configuration. (if it isn't, that's something to look at)

Yes. If meson is not building the same stuff at the same system,
there's a bug somewhere, as all the build dependencies should be
the same ;-)

> >>>> du -sh build-autoconf build-meson/
> >>>> 129M	build-autoconf
> >>>> 69M	build-meson/    
> 
> 
> However I do not think that difference alone can account for a 60MB
> difference.

It is probably some cpp files that weren't built. Those usually
produce larger execs and takes a lot more time to build than c
files.

> Re-reading my mail from last night - it looks like I was being overly
> enthusiastic on the speed differences. I'm sorry - it was late, and I
> was giddy watching it fly by. (The things people do for fun hey)


Yes, that was the impression I had. FYI, I don't care at all for
the building speed. Machine time is a lot cheaper than developers
and maintainers time ;-)

We never did (nor I think it makes sense to do) any changes at the
autoconf to make it run faster (there are some things that could probably
be done there to speed up some things).

So, what really concerns the amount of work to maintain, like how much
time was spent to fix building bugs not related to newly added code,
and how much efforts it takes to maintain the CI instances at
builder.linuxtv.org.

Right now, at builder, we have 1 project there hosted with meson,
1 project with cmake and the other non-kernel ones with autotools.

I never had to do anything at the server due to cmake/autotools build
issues on the project(s) that use them, but the only one that uses meson
requires constant interventions from my side to fix the build, as it
has been requiring from time to time  upgrades at the building
tool(*). So, it is a lot more expensive to maintain, as it consumes
*my* time ;-)

(*) Our server use the latest Debian version. Breakages there due to
    the lack of support of the cmake/autotools/meson version that
    it is there basically means that people using LTS distros won't
    be able to (easily) build the tool, as the distro-provided toolset
    is not enough.
    It is a bad idea to require that toolchain versions that aren't
    already provided by the major distros that aren't at EOL.

> > Assuming that both builds used the same compilers, a difference at 
> > the order of (tens of) MB can only be explained if Meson build
> > was very incomplete, and/or the output files don't carry the same
> > debug info.  
> 
> Indeed - compiler debug info level changes could be another thing to
> check. That could account for a larger build output difference, but
> there's certainly a large discrepancy to solve.

Yes. In order to do any sort of comparison, both should use exactly
the same flags (and compilers) when generating debug data. So, the
build size should be (about) same (**).

(**) It will never be the same, as each build toolchain produces
     different cache and temporary files and may eventually write a
     log file to help debugging issues (like autoconf does).

Thanks,
Mauro



[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux