%define _libdir64 %{_prefix}/lib64 Summary: Portable Hardware Locality - portable abstraction of hierarchical architectures Name: hwloc Version: 2.0.3 Release: 1 License: BSD Group: Applications/System URL: http://www.open-mpi.org/projects/hwloc/ Source0: https://download.open-mpi.org/release/hwloc/v2.0/%{name}-%{version}.tar.bz2 Source1: libhwloc.so.5-aix32 Source2: libhwloc.so.5-aix64 Patch0: %{name}-%{version}-aix.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root BuildRequires: AIX-rpm >= 5.2.0.0 Requires: AIX-rpm >= 5.2.0.0 BuildRequires: cairo-devel >= 1.12.18-1, libxml2-devel >= 2.9.8-1, make Requires: cairo >= 1.12.18-1, libxml2 >= 2.9.8-1, doxygen, transfig %description The Portable Hardware Locality (hwloc) software package provides a portable abstraction (across OS, versions, architectures, ...) of the hierarchical topology of modern architectures, including NUMA memory nodes, shared caches, processor sockets, processor cores and processing units (logical processors or "threads"). It also gathers various system attributes such as cache and memory information. It primarily aims at helping applications with gathering information about modern computing hardware so as to exploit it accordingly and efficiently. hwloc may display the topology in multiple convenient formats. It also offers a powerful programming interface (C API) to gather information about the hardware, bind processes, and much more. The library is available as 32-bit and 64-bit. %package devel Summary: Headers and shared development libraries for hwloc Group: Development/Libraries Requires: %{name} = %{version}-%{release} %description devel Headers and shared object symbolic links for the hwloc. If you are compiling a 32-bit program, no special compiler options are needed. If you are compiling a 64-bit program, you have to compile and link your application with "cc_r -q64" or "gcc -maix64". %prep %setup -q %patch0 mkdir ../32bit mv * ../32bit mv ../32bit . mkdir 64bit cd 32bit tar cf - . | (cd ../64bit ; tar xpf -) %build export CONFIG_SHELL=/usr/bin/ksh export CONFIG_ENV_ARGS=/usr/bin/ksh cd 64bit # first build the 64-bit version export OBJECT_MODE=64 export LDFLAGS="-L/opt/freeware/lib64 -L/opt/freeware/lib -Wl,-blibpath:/opt/freeware/lib64:/opt/freeware/lib:/usr/lib:/lib -Wl,-bmaxdata:0x80000000" ./configure \ --prefix=%{_prefix} \ --libdir=%{_libdir64} \ --mandir=%{_mandir} \ --enable-shared --disable-static gmake %{?_smp_mflags} V=1 cd ../32bit # now build the 32-bit version export OBJECT_MODE=32 export LDFLAGS="-L/opt/freeware/lib -Wl,-blibpath:/opt/freeware/lib:/usr/lib:/lib -Wl,-bmaxdata:0x80000000" ./configure \ --prefix=%{_prefix} \ --mandir=%{_mandir} \ --enable-shared --disable-static gmake %{?_smp_mflags} V=1 %install [ "${RPM_BUILD_ROOT}" != "/" ] && rm -rf ${RPM_BUILD_ROOT} cd 64bit export OBJECT_MODE=64 gmake install DESTDIR=${RPM_BUILD_ROOT} ( cd ${RPM_BUILD_ROOT}%{_bindir} for f in * ; do mv -f ${f} ${f}_64 done ) cd ../32bit export OBJECT_MODE=32 gmake install DESTDIR=${RPM_BUILD_ROOT} /usr/bin/strip -X32_64 ${RPM_BUILD_ROOT}%{_bindir}/* || : ( cd ${RPM_BUILD_ROOT}%{_libdir64} for f in *.a ; do /usr/bin/ar -X64 -x ${f} done cd ${RPM_BUILD_ROOT}%{_libdir} for f in *.a ; do /usr/bin/ar -X32 -x ${f} done ) # add the 64-bit shared objects to the shared libraries containing already the # 32-bit shared objects /usr/bin/ar -X64 -q ${RPM_BUILD_ROOT}%{_libdir}/lib%{name}.a ${RPM_BUILD_ROOT}%{_libdir64}/lib%{name}.so* # add the older v1.x shared members for compatibility with older apps # (make sure they're set for LOADONLY with 'strip -e') cp %{SOURCE1} libhwloc.so.5 /usr/bin/strip -X32 -e libhwloc.so.5 /usr/bin/ar -X32 -q ${RPM_BUILD_ROOT}%{_libdir}/lib%{name}.a libhwloc.so.5 cp %{SOURCE2} libhwloc.so.5 /usr/bin/strip -X64 -e libhwloc.so.5 /usr/bin/ar -X64 -q ${RPM_BUILD_ROOT}%{_libdir}/lib%{name}.a libhwloc.so.5 /usr/bin/strip -X32_64 ${RPM_BUILD_ROOT}%{_bindir}/* || : ( cd ${RPM_BUILD_ROOT} for dir in bin include lib lib64 do mkdir -p usr/${dir} cd usr/${dir} ln -sf ../..%{_prefix}/${dir}/* . cd - done ) %clean [ "${RPM_BUILD_ROOT}" != "/" ] && rm -rf ${RPM_BUILD_ROOT} %files %defattr(-,root,system,-) %doc 32bit/AUTHORS 32bit/COPYING 32bit/NEWS 32bit/README 32bit/VERSION %doc %{_datadir}/doc/%{name}/* %{_bindir}/* %{_libdir}/*.a %{_libdir}/*.so* %{_libdir64}/*.so* %{_mandir}/man1/* %{_mandir}/man7/* %{_datadir}/%{name} /usr/bin/* /usr/lib/*.a /usr/lib/*.so* /usr/lib64/*.so* %files devel %defattr(-,root,system,-) %{_includedir}/* %{_libdir}/*.la %{_libdir64}/*.la %{_libdir}/pkgconfig/* %{_libdir64}/pkgconfig/* %{_mandir}/man3/* /usr/include/* /usr/lib/*.la /usr/lib64/*.la %changelog * Mon Jan 14 2019 Michael Perzl - 2.0.3-1 - updated to version 2.0.3 * Mon Jan 14 2019 Michael Perzl - 2.0.2-1 - updated to version 2.0.2 * Mon Jan 14 2019 Michael Perzl - 2.0.1-1 - updated to version 2.0.1 * Mon Jan 14 2019 Michael Perzl - 1.11.12-1 - updated to version 1.11.12 * Tue Jun 12 2018 Michael Perzl - 1.11.11-1 - updated to version 1.11.11 * Tue Jun 12 2018 Michael Perzl - 1.11.10-1 - updated to version 1.11.10 * Tue Jun 12 2018 Michael Perzl - 1.11.9-1 - updated to version 1.11.9 * Fri Sep 22 2017 Michael Perzl - 1.11.8-1 - updated to version 1.11.8 * Fri Sep 22 2017 Michael Perzl - 1.11.7-1 - updated to version 1.11.7 * Mon Apr 03 2017 Michael Perzl - 1.11.6-1 - updated to version 1.11.6 * Sun Nov 27 2016 Michael Perzl - 1.11.5-1 - updated to version 1.11.5 * Mon Oct 10 2016 Michael Perzl - 1.11.4-1 - updated to version 1.11.4 * Mon May 02 2016 Michael Perzl - 1.11.3-1 - updated to version 1.11.3 * Mon May 02 2016 Michael Perzl - 1.11.2-1 - updated to version 1.11.2 * Mon May 02 2016 Michael Perzl - 1.11.1-1 - updated to version 1.11.1 * Mon May 02 2016 Michael Perzl - 1.11.0-1 - updated to version 1.11.0 * Mon Apr 13 2015 Michael Perzl - 1.10.1-1 - updated to version 1.10.1 * Tue Nov 11 2014 Michael Perzl - 1.10.0-1 - updated to version 1.10.0 * Thu Sep 18 2014 Michael Perzl - 1.9.1-1 - updated to version 1.9.1 * Thu Mar 27 2014 Michael Perzl - 1.9-1 - updated to version 1.9 * Thu Feb 06 2014 Michael Perzl - 1.8.1-1 - updated to version 1.8.1 * Thu Dec 12 2013 Michael Perzl - 1.8-1 - updated to version 1.8 * Thu Dec 12 2013 Michael Perzl - 1.7.2-1 - updated to version 1.7.2 * Mon Jun 24 2013 Michael Perzl - 1.7.1-1 - updated to version 1.7.1 * Fri May 03 2013 Michael Perzl - 1.7-1 - updated to version 1.7 * Thu Apr 04 2013 Michael Perzl - 1.6.2-1 - updated to version 1.6.2 * Tue Jan 29 2013 Michael Perzl - 1.6.1-1 - updated to version 1.6.1 * Tue Jan 08 2013 Michael Perzl - 1.6-1 - updated to version 1.6 * Tue Jan 08 2013 Michael Perzl - 1.5.1-1 - updated to version 1.5.1 * Tue Jan 08 2013 Michael Perzl - 1.5-1 - updated to version 1.5 * Tue Jan 08 2013 Michael Perzl - 1.4.2-1 - updated to version 1.4.2 * Wed Mar 07 2012 Michael Perzl - 1.4.1-1 - first version for AIX V5.1 and higher