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