Comment # 27 on bug 1223967 from Atri Bhattacharya
(In reply to Egbert Eich from comment #26)
> (In reply to Atri Bhattacharya from comment #24)
> > 
> > The attempt in obs://home:badshah400:lapackv3/lapack is to generate the
> > x86-64-v3 libs purely as a separate flavour, *without* the baselibs.conf
> > coming into play at all in so far as these -v3 libs are concerned.
> > 
> > Baselibs.conf is still used to produce 32-bit biarch packages for pure
> > x86_64 in this case, but it simply does not matter for x86-64-v3 flavour
> > since there aren't i586-v3 equivalents.
> > 
> > But perhaps I misunderstand your question?
> 
> No, you don't. What confused me: you were using the %suse_build_hwcaps macro
> - which you have removed since.

Yes, this macro should not be used if we want to use flavours to manually
produce the -v3 libs instead of their generation via baselibs.

> The problem I see is: this macro is crafted
> to add the right 'magic' to the spec file (see
> https://en.opensuse.org/openSUSE:
> Packaging_Conventions_RPM_Macros#%{?suse_build_hwcaps_libs}). This magic is
> "to automatically set specific build targets and schedule the job on workers
> which match the intended buildconstraint". Unfortunately, one can only guess
> how this works. 

My understanding is that it pretty much checks for the avx/avx2 instruction
support on the build host's CPU. Similar to having a _constraint file that
limits the build to the avx2 supporting CPUs:

> ~> cat _constraints
> <constraints>
>   <hardware><cpu>
>     <flag>sse3</flag>
>     <flag>avx2</flag>
>   </cpu></hardware>
> </constraints>

> Without baselibs.conf, two arch flavors will be built:
> x86_64 and x86_x6_v3. So I would think if you want to use flavors, you'd
> need to add:
> #!BuildTarget: x86_64_v3-linux
> #!BuildConstraint: hardware:cpu:flag x86-64-v3
> to the spec file in the -v3 flavor on x86_64. 

Yes, this is true. I have been only trying this out on my local machine (which
supports x86-64-v3) but for a final version for OBS, my plan is to include a
_constraints file to do this as documented here (or, equivalently, add the
comments to specfile as you have noted):
<https://openbuildservice.org/help/manuals/obs-user-guide/cha.obs.build_constraints#id-1.5.10.16.8.6.3.3>

> When using baselibs.conf for
> -v3,  mkbaselibs will create a spec file which consumes these packages and
> 'repackages them into the main architecture'. You may need to do all this
> manually.
> I'm currently trying to figure out how all this works.

Same here: home:badshah400:lapackv3 is an early experiment about using flavours
to generate the -v3 libs. Not (yet) ready for prime time :) Thanks for your
reviews/advice.

Side note: I also learnt that RPM natively supports generating actual x86_64_v3
arch packages since version 4.19.0 (i.e. already in Factory). Perhaps we can
have a look at how it does so:
<https://github.com/rpm-software-management/rpm/commit/cd46c1704ccd8eeb9b600729a0a1c8738b66b847>


You are receiving this mail because: