Hi Peter,

Am 16.03.2014 um 19:41 schrieb Peter FELECAN:
> Dagobert Michelsen <[email protected]> writes:
>> Am 15.03.2014 um 19:47 schrieb Peter FELECAN <[email protected]>:
>>> 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

Reply via email to