ISA specific dependencies
Dagobert Michelsen
dam at opencsw.org
Sun Mar 16 21:28:08 CET 2014
Hi Peter,
Am 16.03.2014 um 19:41 schrieb Peter FELECAN:
> Dagobert Michelsen <dam at opencsw.org> writes:
>> Am 15.03.2014 um 19:47 schrieb Peter FELECAN <pfelecan at opencsw.org>:
>>> I'm struggling to provide a multi ISA guile which will enable a 64 bit
>>> libopts build.
>>>
>>> The issue that I encounter is that the runtime dependencies for 32 and
>>> 64 bit ISAs are different.
>>>
>>> I looked for directions in our build documentation and in the current
>>> recipes and I didn't found a solution.
>>>
>>> There is the possibility to write:
>>>
>>> RUNTIME_DEP_PKGS_CSWlibguile2-0-22_sparc += CSWlibltdl7
>>>
>>> But how can I write a more specific one for sparcv9 or amd64?
>>
>> This would be only relevant if you split 32/64 between packages which is
>> quite uncommon. You can always write things like
>> RUNTIME_DEP_PKGS_<pkg>-32 += CSWfoo
>> RUNTIME_DEP_PKGS_<pkg> += $(RUNTIME_DEP_PKGS_<pkg>-$(MEMORYMODEL))
>> but I would advise against it.
>
> The issue is that when the 64 bit component are built the dependencies
> are declared as missing, I add them and when the 32 bit component are
> built, the same dependencies are declared in surplus! The immediate
> correction would be to declare these dependencies as missing and as
> surplus ? But that is not what I whish.
>
> Here is the flip-flop from the build log:
>
> When building without the dependencies:
>
> * Dependency issues of CSWguile:
> * CSWlibintl8 is needed by CSWguile, because:
> * - opt/csw/bin/sparcv9/guile needs the libintl.so.8 soname
> * - opt/csw/bin/sparcv9/guile needs the libintl.so.8 soname
> * - opt/csw/bin/guile needs the libintl.so.8 soname
> * RUNTIME_DEP_PKGS_CSWguile += CSWlibintl8
> * Dependency issues of CSWlibguilereadline-v18-18:
> * CSWlibffi5 is needed by CSWlibguilereadline-v18-18, because:
> * - opt/csw/lib/libguilereadline-v-18.so.18.0.0 needs the libffi.so.5 soname
> * - opt/csw/lib/sparcv9/libguilereadline-v-18.so.18.0.0 needs the
> libffi.so.5 soname
> * - opt/csw/lib/sparcv9/libguilereadline-v-18.so.18.0.0 needs the
> libffi.so.5 soname
> * RUNTIME_DEP_PKGS_CSWlibguilereadline-v18-18 += CSWlibffi5
> * CSWlibgc1 is needed by CSWlibguilereadline-v18-18, because:
> * - opt/csw/lib/sparcv9/libguilereadline-v-18.so.18.0.0 needs the libgc.so.1
> soname
> * - opt/csw/lib/sparcv9/libguilereadline-v-18.so.18.0.0 needs the libgc.so.1
> soname
> * - opt/csw/lib/libguilereadline-v-18.so.18.0.0 needs the libgc.so.1 soname
> * RUNTIME_DEP_PKGS_CSWlibguilereadline-v18-18 += CSWlibgc1
> * CSWlibgmp10 is needed by CSWlibguilereadline-v18-18, because:
> * - opt/csw/lib/sparcv9/libguilereadline-v-18.so.18.0.0 needs the
> libgmp.so.10 soname
> * - opt/csw/lib/sparcv9/libguilereadline-v-18.so.18.0.0 needs the
> libgmp.so.10 soname
> * - opt/csw/lib/libguilereadline-v-18.so.18.0.0 needs the libgmp.so.10
> soname
> * RUNTIME_DEP_PKGS_CSWlibguilereadline-v18-18 += CSWlibgmp10
> * CSWlibltdl7 is needed by CSWlibguilereadline-v18-18, because:
> * - opt/csw/lib/libguilereadline-v-18.so.18.0.0 needs the libltdl.so.7
> soname
> * - opt/csw/lib/sparcv9/libguilereadline-v-18.so.18.0.0 needs the
> libltdl.so.7 soname
> * - opt/csw/lib/sparcv9/libguilereadline-v-18.so.18.0.0 needs the
> libltdl.so.7 soname
> * RUNTIME_DEP_PKGS_CSWlibguilereadline-v18-18 += CSWlibltdl7
> * CSWlibncurses5 is needed by CSWlibguilereadline-v18-18, because:
> * - opt/csw/lib/libguilereadline-v-18.so.18.0.0 needs the libncurses.so.5
> soname
> * - opt/csw/lib/sparcv9/libguilereadline-v-18.so.18.0.0 needs the
> libncurses.so.5 soname
> * - opt/csw/lib/sparcv9/libguilereadline-v-18.so.18.0.0 needs the
> libncurses.so.5 soname
> * RUNTIME_DEP_PKGS_CSWlibguilereadline-v18-18 += CSWlibncurses5
> * Dependency issues of CSWguilelib12:
> * If you don't know of any reasons to include these dependencies, you might
> remove them:
> * ? CSWlibguile2-0-22
> * ? CSWlibguilereadline-v18-18
>
> # Checkpkg suggests adding the following lines to the GAR recipe:
> # This is a summary; see above for details.
> RUNTIME_DEP_PKGS_CSWguile += CSWlibintl8
> RUNTIME_DEP_PKGS_CSWlibguilereadline-v18-18 += CSWlibltdl7
> RUNTIME_DEP_PKGS_CSWlibguilereadline-v18-18 += CSWlibffi5
> RUNTIME_DEP_PKGS_CSWlibguilereadline-v18-18 += CSWlibncurses5
> RUNTIME_DEP_PKGS_CSWlibguilereadline-v18-18 += CSWlibgmp10
> RUNTIME_DEP_PKGS_CSWlibguilereadline-v18-18 += CSWlibgc1
> If any of the reported errors were false positives, you can override them
> pasting the lines below to the GAR recipe.
> CHECKPKG_OVERRIDES_CSWlibguilereadline-v18-18 += missing-dependency|CSWlibltdl7
> CHECKPKG_OVERRIDES_CSWlibguilereadline-v18-18 += missing-dependency|CSWlibffi5
> CHECKPKG_OVERRIDES_CSWlibguilereadline-v18-18 += missing-dependency|CSWlibncurses5
> CHECKPKG_OVERRIDES_CSWlibguilereadline-v18-18 += missing-dependency|CSWlibgmp10
> CHECKPKG_OVERRIDES_CSWlibguilereadline-v18-18 += missing-dependency|CSWlibgc1
> CHECKPKG_OVERRIDES_CSWguile += missing-dependency|CSWlibintl8
>
> When building with the dependencies:
>
> * Dependency issues of CSWlibguilereadline-v18-18:
> * If you don't know of any reasons to include these dependencies, you might
> remove them:
> * ? CSWlibffi5
> * ? CSWlibgc1
> * ? CSWlibgmp10
> * ? CSWlibltdl7
> * ? CSWlibncurses5
> * Dependency issues of CSWguile:
> * If you don't know of any reasons to include these dependencies, you might
> remove them:
> * ? CSWlibintl8
> * Dependency issues of CSWguilelib12:
> * If you don't know of any reasons to include these dependencies, you might
> remove them:
> * ? CSWlibguile2-0-22
> * ? CSWlibguilereadline-v18-18
> If any of the reported errors were false positives, you can override them
> pasting the lines below to the GAR recipe.
> CHECKPKG_OVERRIDES_CSWguile += surplus-dependency|CSWlibintl8
> CHECKPKG_OVERRIDES_CSWlibguilereadline-v18-18 += surplus-dependency|CSWlibgc1
> CHECKPKG_OVERRIDES_CSWlibguilereadline-v18-18 += surplus-dependency|CSWlibltdl7
> CHECKPKG_OVERRIDES_CSWlibguilereadline-v18-18 += surplus-dependency|CSWlibffi5
> CHECKPKG_OVERRIDES_CSWlibguilereadline-v18-18 += surplus-dependency|CSWlibncurses5
> CHECKPKG_OVERRIDES_CSWlibguilereadline-v18-18 += surplus-dependency|CSWlibgmp10
>
> Something is rotten and frankly I don't wish to add overrides as it
> falsifies the dependencies.
This looks wrong regarding the checks. IMHO when a dependency is given (regardless
if it is 32 and/or 64 bit) the package should be specified and no surplus dependency
should be thrown.
However, I could think of a useful test that the linked libraries between files of the
same name in different ISA subdirs are the same or must be overridden if not. Wrong
linkages are a problem when doing 32/64.
@Maciej, @Yann: What do you think?
> The build logs are available on the build farm in the ~pfelecan/logs as
> guile-surplus and guile-missing.
Best regards
-- Dago
More information about the maintainers
mailing list