Created attachment 396422 [details, diff] patch against gx86 sys-apps/hwloc is a dependency of sys-cluster/openmpi (bug #519700) Changes: - conversion through autotools-multilib - multilib dependency with versions for all deps - cuda, gl, opencl only make sense on the native abi - dropped redundant src_install
Looks fine, I think. And I think CUDA is actually multilib but would use update to use explicit USE flags.
(In reply to Michał Górny from comment #1) > Looks fine, I think. And I think CUDA is actually multilib but would use > update to use explicit USE flags. dev-util/nvidia-cuda-toolkit isn't multilib yet, we can always add support for that later (CCing jlec).
Only libcudart.so is multilib. Which libs does hwloc link to?
(In reply to Justin Lecher from comment #3) > Only libcudart.so is multilib. Which libs does hwloc link to? @jlec: I currently don't have nvidia hardware available to test it, could you please have a look if we should use multilib_native_use_enable or use_enable cuda in myeconfargs of this patch. As dev-util/nvidia-cuda-toolkit doesn't have a abi nor multilib use flag dependencies should already be correct.
(In reply to Christoph Junghans from comment #4) > (In reply to Justin Lecher from comment #3) > > Only libcudart.so is multilib. Which libs does hwloc link to? > @jlec: I currently don't have nvidia hardware available to test it, could > you please have a look if we should use multilib_native_use_enable or > use_enable cuda in myeconfargs of this patch. As > dev-util/nvidia-cuda-toolkit doesn't have a abi nor multilib use flag > dependencies should already be correct. It's only libcudart.so. So everything should be good for cuda.
Created attachment 396724 [details, diff] patch against gx86 Update version of the patch @jlec, please test =hwloc-1.10.0-r2::science! Do you remember with which version dev-util/nvidia-cuda-toolkit became multilib?
Created attachment 396726 [details] build.log src/topology-linux.c -fPIC -DPIC -o .libs/topology-linux.o /var/tmp/portage/sys-apps/hwloc-1.10.0-r2/work/hwloc-1.10.0/include/private/cpuid-x86.h: Assembler messages: /var/tmp/portage/sys-apps/hwloc-1.10.0-r2/work/hwloc-1.10.0/include/private/cpuid-x86.h:40: Error: symbol `Lhwloc1' is already defined Makefile:880: recipe for target 'topology-x86.lo' failed make[1]: *** [topology-x86.lo] Error 1 make[1]: Leaving directory '/var/tmp/portage/sys-apps/hwloc-1.10.0-r2/work/hwloc-1.10.0-abi_x86_32.x86/src' Makefile:599: recipe for target 'all-recursive' failed make: *** [all-recursive] Error 1
(In reply to Christoph Junghans from comment #6) > @jlec, please test =hwloc-1.10.0-r2::science! Do you remember with which > version dev-util/nvidia-cuda-toolkit became multilib? No clue, never looked into it but probably all version in tree are like that.
(In reply to Justin Lecher from comment #7) > Created attachment 396726 [details] > build.log > > src/topology-linux.c -fPIC -DPIC -o .libs/topology-linux.o > /var/tmp/portage/sys-apps/hwloc-1.10.0-r2/work/hwloc-1.10.0/include/private/ > cpuid-x86.h: Assembler messages: > /var/tmp/portage/sys-apps/hwloc-1.10.0-r2/work/hwloc-1.10.0/include/private/ > cpuid-x86.h:40: Error: symbol `Lhwloc1' is already defined > Makefile:880: recipe for target 'topology-x86.lo' failed > make[1]: *** [topology-x86.lo] Error 1 > make[1]: Leaving directory > '/var/tmp/portage/sys-apps/hwloc-1.10.0-r2/work/hwloc-1.10.0-abi_x86_32.x86/ > src' > Makefile:599: recipe for target 'all-recursive' failed > make: *** [all-recursive] Error 1 Does hwloc-1.10.0-r1 from gx86 work?
(In reply to Christoph Junghans from comment #9) > (In reply to Justin Lecher from comment #7) > > Created attachment 396726 [details] > > build.log > > > > src/topology-linux.c -fPIC -DPIC -o .libs/topology-linux.o > > /var/tmp/portage/sys-apps/hwloc-1.10.0-r2/work/hwloc-1.10.0/include/private/ > > cpuid-x86.h: Assembler messages: > > /var/tmp/portage/sys-apps/hwloc-1.10.0-r2/work/hwloc-1.10.0/include/private/ > > cpuid-x86.h:40: Error: symbol `Lhwloc1' is already defined > > Makefile:880: recipe for target 'topology-x86.lo' failed > > make[1]: *** [topology-x86.lo] Error 1 > > make[1]: Leaving directory > > '/var/tmp/portage/sys-apps/hwloc-1.10.0-r2/work/hwloc-1.10.0-abi_x86_32.x86/ > > src' > > Makefile:599: recipe for target 'all-recursive' failed > > make: *** [all-recursive] Error 1 > Does hwloc-1.10.0-r1 from gx86 work? yes.
@jlec: -ftracer is the problem!
(In reply to Christoph Junghans from comment #11) > @jlec: -ftracer is the problem! We could filter it, but it seems to be gone in 1.10.1. @jlec: please test =hwloc-1.10.1::science
Created attachment 396754 [details, diff] patch against gx86 Update patch, which includes version bump to 1.10.1
(In reply to Christoph Junghans from comment #12) > (In reply to Christoph Junghans from comment #11) > > @jlec: -ftracer is the problem! > We could filter it, but it seems to be gone in 1.10.1. > > @jlec: please test =hwloc-1.10.1::science append-ldflags -L/opt/cuda/$(get_libdir) needs to be either arch specific or just directly add both arch dirs
Created attachment 396852 [details, diff] patch against gx86 (In reply to Justin Lecher from comment #14) > append-ldflags -L/opt/cuda/$(get_libdir) > needs to be either arch specific or just directly add both arch dirs Fixed. @mgorny: Is there a nice way that using append-ldflags and filter-ldflags?
(In reply to Christoph Junghans from comment #15) > Created attachment 396852 [details, diff] [details, diff] > patch against gx86 > > (In reply to Justin Lecher from comment #14) > > append-ldflags -L/opt/cuda/$(get_libdir) > > needs to be either arch specific or just directly add both arch dirs > Fixed. > > @mgorny: Is there a nice way that using append-ldflags and filter-ldflags? This patch is broken since it doesn't localize the var before appending. IOW: local LDFLAGS=${LDFLAGS} append-ldflags ... though i'd just do: local LDFLAGS="${LDFLAGS} -L..."
Created attachment 396876 [details, diff] patch against gx86 In reply to Michał Górny from comment #16) > This patch is broken since it doesn't localize the var before appending. Actually it was working, but your solution is a bit more elegant!
Users had issues more than once when -L/usr/lib64 -L/usr/lib32 or alike was passed. Never were able to figure out what's really different about the systems where that happens but it happens.
I needed to set a min version for the cuda toolkit, because the 32bit lib dir is called lib instead of lib32. But I added a symlink so it should be fine now.
Created attachment 397022 [details, diff] patch against gx86 Latest version incl jlec's changes.
+*hwloc-1.10.1 (20 Feb 2015) + + 20 Feb 2015; Christoph Junghans <ottxor@gentoo.org> +hwloc-1.10.1.ebuild: + version bump (bug #538760) and multilib support (bug #540036) +