Re: [ANN] Introducing build scripts to test

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

 



On 28/08/2023 16:26, Laurent Pinchart wrote:
> On Mon, Aug 28, 2023 at 04:14:56PM +0200, Hans Verkuil wrote:
>> On 28/08/2023 16:05, Jacopo Mondi wrote:
>>> On Mon, Aug 28, 2023 at 03:29:41PM +0200, Hans Verkuil wrote:
>>>> Hi all,
>>>>
>>>> We have been working on simplifying the media maintenance, and one part of that is
>>>> standardizing on build tools, in particular to make it easier for patch submitters
>>>> to run their patches through the same set of tests that the daily build does.
>>>>
>>>> This helps detect issues before you submit your patches.
>>>>
>>>> I have been working since July on transforming my hackish scripts to something
>>>> that is easier to use and of better quality. While there are still a few rough
>>>> edges, I consider it good enough to have others start to use it.
>>>>
>>>> To get the build scripts run:
>>>>
>>>> git clone git://linuxtv.org/hverkuil/build-scripts.git
>>>>
>>>> All the test builds will happen within this directory. It is completely separate
>>>> from where you do you normal development, instead you point it to where your
>>>> git repository is.
>>>>
>>>> See the README contained in the build-scripts git repo for all the details on
>>>> how to set it up.
>>>>
>>>
>>> I've been using your scripts since after ELC-E and I can tell they're
>>> useful!
>>>
>>>> Currently the scripts expect a debian 12-based distro (likely debian 11 will work
>>>> as well). I have no idea if it works well on Red Hat or Suse. If you use one of
>>>> those distros, and you get it to work, then a patch updating the README file with
>>>> the correct list of packages to install would be welcome.
>>>
>>> Speaking about distros, I was wondering if you still consider a
>>> requirement to build all compiler or we should instead try to use the
>>> distro provided ones when possible to test the distro-shipped version
>>> ?
>>
>> I strongly believe we should build the cross compilers. The reason is that
>> otherwise you get a wide variety of compiler versions, each with typically
>> different compiler warnings. It's a pain for a developer to see different
>> warnings than the person that merges those patches.
>>
>> It's a a regular problem that the daily build sees different warnings than
>> you do locally with the distro's compiler.
>>
>> Doing it this way also makes it easier to upgrade to the latest compiler
>> version, certainly quicker than a distro would do.
>>
>> It's about reproducibility, really.
> 
> There's value in testing with different compiler versions though. The
> kernel's documented minimum gcc version is v5.1 at the moment. I
> certainly don't want to build myself with all versions between v5.1 and
> v13.2, but collectively we could cover more ground.
> 
> Regardless of this, I already have recent cross compilers (built with
> buildroot) for ARM and ARM64, and I'd rather use those than duplicating
> compilers. Anything that consumes extra disk space is a serious
> hinderance.

Feel free, but you run the risk that your PR is rejected because when I
run with these compiler versions I see new warnings. The whole point is
to be able to do the same tests before you make the PR to reduce the risk
of having to make a v2.

FYI: the cross directory takes about 10 GB on my system. That can be
streamlined a bit by deleting some temporary directories needed while
building, probably to something closer to 5-6 GB.

Regards,

	Hans

> 
>>>> Please note that running the regression tests using virtme-ng is currently only
>>>> supported on Debian 12, not on e.g. Ubuntu. Someone is looking into that, and
>>>> hopefully we can support that in the future. Running regressions tests are
>>>> primarily useful when making changes to core frameworks and public APIs, and
>>>> it is possible to run them manually (see the README).
>>>>
>>>> Since running this locally can take a fair amount of time, we hope to have
>>>> build servers available in the future so this can be offloaded.
>>>>
>>>> To give an idea of the expected build times:
>>>>
>>>> On an AMD Ryzen 9 6900HX (8 cores) a standard build of the staging tree
>>>> (build.sh -test all) takes 39 minutes.
>>>>
>>>> On an AMD Ryzen Threadripper 3970X (32 cores) it takes a bit over 13 minutes.
> 




[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