From 08940377e37e95e56bbf73261763a26d712c9386 Mon Sep 17 00:00:00 2001 From: Brendan Horan Date: Fri, 21 Oct 2016 00:15:32 +0000 Subject: sys-apps/likwid: version bump to 4.1.2 Repoman OK Patches apply OK Addressed feedback --- sys-apps/likwid/Manifest | 1 + sys-apps/likwid/files/likwid-4.1.2-Makefile.patch | 19 ++++ sys-apps/likwid/files/likwid-4.1.2-config.mk.patch | 43 +++++++++ .../likwid/files/likwid-4.1.2-fix-gnustack.patch | 31 +++++++ sys-apps/likwid/likwid-4.1.2.ebuild | 101 +++++++++++++++++++++ 5 files changed, 195 insertions(+) create mode 100644 sys-apps/likwid/files/likwid-4.1.2-Makefile.patch create mode 100644 sys-apps/likwid/files/likwid-4.1.2-config.mk.patch create mode 100644 sys-apps/likwid/files/likwid-4.1.2-fix-gnustack.patch create mode 100644 sys-apps/likwid/likwid-4.1.2.ebuild (limited to 'sys-apps') diff --git a/sys-apps/likwid/Manifest b/sys-apps/likwid/Manifest index 0c3bd6c58023..bb96efaf4eae 100644 --- a/sys-apps/likwid/Manifest +++ b/sys-apps/likwid/Manifest @@ -1 +1,2 @@ DIST likwid-4.1.1.tar.gz 1395475 SHA256 805b321c0c88e02ebddf89cd7e0097e40a438846cb033650c05a57d992393d3d SHA512 2561cc8203bf795ebe661a0b2f2e15fb68a164438b2c839482bab67a82babadbcfd78aaf519c4ceab6cfc799a363216023f77fe744e3b302facf5c578d7ab407 WHIRLPOOL 5be6036e726296719effcd3fbd272168cdf5f2581ede0bca0c554098a780018063b6527cd99202a8620dcc705246f2da1ad281c573eacfee8b4310a8dccbd4d7 +DIST likwid-4.1.2.tar.gz 1398643 SHA256 8a62a39ee584ec6b472d3791bf6c561af1db3e0564da7347c8a6cfdce8fd6763 SHA512 efb6a85947193204e08ce32e79c5f3ef15c7babca66930145af1c2eca8eccc2aeceea54a12715467161c646acc208bda3d01d07ea365ff8bdb9eafb022f107d9 WHIRLPOOL 7e065169251c0f2f18a8634a9ff4d309984920070b842e2eb34bc478b540a9aa49f95ae7878a63d98d237f46be2273d20539e94a60f96946a0f88935e3643085 diff --git a/sys-apps/likwid/files/likwid-4.1.2-Makefile.patch b/sys-apps/likwid/files/likwid-4.1.2-Makefile.patch new file mode 100644 index 000000000000..cec5d590c4b5 --- /dev/null +++ b/sys-apps/likwid/files/likwid-4.1.2-Makefile.patch @@ -0,0 +1,19 @@ +--- likwid-likwid-4.1.1/Makefile.org 2016-07-14 12:09:56.612963529 +0800 ++++ likwid-likwid-4.1.1/Makefile 2016-07-14 12:11:24.148645584 +0800 +@@ -51,7 +51,6 @@ + + #CONFIGURE BUILD SYSTEM + BUILD_DIR = ./$(COMPILER) +-Q ?= @ + GENGROUPLOCK = .gengroup + + VPATH = $(SRC_DIR) +@@ -544,7 +543,7 @@ + sed -i -e "s//$(VERSION)/g" -e "s//$(DATE)/g" -e "s//$(RELEASE)/g" -e "s+$(PREFIX)/bin/likwid-lua+$(PWD)/ext/lua/lua+" -e "s+$(PREFIX)/share/lua/?.lua+$(PWD)/?.lua+" -e "s+$(PREFIX)/bin/likwid-pin+$(PWD)/likwid-pin+" -e "s+$(PREFIX)/bin/likwid-perfctr+$(PWD)/likwid-perfctr+" $$APP; \ + chmod +x $$APP; \ + done +- @sed -i -e "s//$(VERSION)/g" -e "s//$(DATE)/g" -e "s//$(RELEASE)/g" -e "s+$(PREFIX)/lib+$(PWD)+g" -e "s+$(PREFIX)/share/likwid/perfgroups+$(PWD)/groups+g" likwid.lua; ++ @sed -i -e "s//$(VERSION)/g" -e "s//$(DATE)/g" -e "s//$(RELEASE)/g" -e "s+$(PREFIX)/+$(PWD)+g" -e "s+$(PREFIX)/share/likwid/perfgroups+$(PWD)/groups+g" likwid.lua; + @sed -i -e "s+$(PREFIX)/share/likwid/mongroups+$(PWD)/monitoring/groups+g" likwid-agent + @ln -sf liblikwid.so liblikwid.so.$(VERSION) + @ln -sf ext/hwloc/liblikwid-hwloc.so liblikwid-hwloc.so.$(VERSION) diff --git a/sys-apps/likwid/files/likwid-4.1.2-config.mk.patch b/sys-apps/likwid/files/likwid-4.1.2-config.mk.patch new file mode 100644 index 000000000000..36897e542665 --- /dev/null +++ b/sys-apps/likwid/files/likwid-4.1.2-config.mk.patch @@ -0,0 +1,43 @@ +--- likwid-likwid-4.1.1/config.mk.org 2016-07-14 12:49:27.791771509 +0800 ++++ likwid-likwid-4.1.1/config.mk 2016-07-14 12:51:27.470358158 +0800 +@@ -15,9 +15,9 @@ + # Common users do not need to change values below this comment! # + ################################################################# + +-MANPREFIX = $(PREFIX)/man#NO SPACE ++MANPREFIX = ${D}/usr/share/man#NO SPACE + BINPREFIX = $(PREFIX)/bin#NO SPACE +-LIBPREFIX = $(PREFIX)/lib#NO SPACE ++LIBPREFIX = $(PREFIX)/$(get_libdir)#NO SPACE + + # These paths are hardcoded into executables and libraries. Usually + # they'll be the same as above, but package maintainers may want to +@@ -26,9 +26,9 @@ + # Keep in mind that the access and setFreq daemon need enough + # privileges that may be deleted when copying the files to + # the INTSTALLED_PREFIX +-INSTALLED_PREFIX = $(PREFIX)#NO SPACE ++INSTALLED_PREFIX=/usr#NO SPACE + INSTALLED_BINPREFIX = $(INSTALLED_PREFIX)/bin#NO SPACE +-INSTALLED_LIBPREFIX = $(INSTALLED_PREFIX)/lib#NO SPACE ++INSTALLED_LIBPREFIX = $(INSTALLED_PREFIX)/$(get_libdir)#NO SPACE + + # chown installed tools to this user/group + # if you change anything here, make sure that the user/group can access +@@ -59,7 +59,7 @@ + FORTRAN_INTERFACE = false#NO SPACE + + # Instrument likwid-bench for use with likwid-perfctr +-INSTRUMENT_BENCH = false#NO SPACE ++INSTRUMENT_BENCH = true#NO SPACE + + # Use recommended Portable Hardware Locality (hwloc) instead of CPUID + USE_HWLOC = true#NO SPACE +@@ -80,6 +80,6 @@ + DATE = 19.05.2016 + + RPATHS = -Wl,-rpath=$(INSTALLED_LIBPREFIX) +-LIBLIKWIDPIN = $(abspath $(INSTALLED_PREFIX)/lib/liblikwidpin.so.$(VERSION).$(RELEASE)) ++LIBLIKWIDPIN = $(abspath $(PREFIX)/$(get_libdir)/liblikwidpin.so) + LIKWIDFILTERPATH = $(abspath $(INSTALLED_PREFIX)/share/likwid/filter) + LIKWIDGROUPPATH = $(abspath $(INSTALLED_PREFIX)/share/likwid/perfgroups) diff --git a/sys-apps/likwid/files/likwid-4.1.2-fix-gnustack.patch b/sys-apps/likwid/files/likwid-4.1.2-fix-gnustack.patch new file mode 100644 index 000000000000..a5a046d1f0df --- /dev/null +++ b/sys-apps/likwid/files/likwid-4.1.2-fix-gnustack.patch @@ -0,0 +1,31 @@ +--- likwid-likwid-4.1.1/bench/Makefile.org 2015-08-22 13:56:17.242177531 +0800 ++++ likwid-likwid-4.1.1/bench/Makefile 2015-08-22 13:56:46.985086094 +0800 +@@ -118,6 +118,7 @@ + $(BUILD_DIR)/%.o: $(BUILD_DIR)/%.pas + @echo "===> ASSEMBLE $@" + $(Q)$(PAS) -i $(PASFLAGS) -o $(BUILD_DIR)/$*.s $< '$(DEFINES)' ++ @cat ../fix_gnustack.txt >> $(BUILD_DIR)/$*.s + $(Q)$(AS) $(ASFLAGS) $(BUILD_DIR)/$*.s -o $@ + + ifeq ($(findstring $(MAKECMDGOALS),clean),) + +diff --git a/fix_gnustack.txt b/fix_gnustack.txt +new file mode 100644 +index 0000000..965af94 +--- /dev/null ++++ likwid-likwid-4.1.1/fix_gnustack.txt +@@ -0,0 +1,3 @@ ++#if defined(__linux__) && defined(__ELF__) ++.section .note.GNU-stack,"",%progbits ++#endif + +--- likwid-likwid-4.1.1/src/loadData.S.org 2015-08-22 14:26:28.634629884 +0800 ++++ likwid-likwid-4.1.1/src/loadData.S 2015-08-22 14:28:42.247210117 +0800 +@@ -41,4 +41,6 @@ + #endif + .size _loadData, .-_loadData + +- ++#if defined(__linux__) && defined(__ELF__) ++.section .note.GNU-stack,"",%progbits ++#endif diff --git a/sys-apps/likwid/likwid-4.1.2.ebuild b/sys-apps/likwid/likwid-4.1.2.ebuild new file mode 100644 index 000000000000..65667771524b --- /dev/null +++ b/sys-apps/likwid/likwid-4.1.2.ebuild @@ -0,0 +1,101 @@ +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=6 + +FORTRAN_NEEDED=fortran + +inherit fcaps linux-info fortran-2 + +DESCRIPTION="A performance-oriented tool suite for x86 multicore environments" +HOMEPAGE="https://github.com/rrze-likwid/likwid" +SRC_URI="https://ftp.fau.de/pub/likwid/${P}.tar.gz" + +LICENSE="GPL-3+" +SLOT="0" +KEYWORDS="~amd64" +IUSE="fortran" + +RDEPEND="dev-lang/perl" + +DEPEND="${RDEPEND} + fortran? ( sys-devel/gcc:*[fortran] ) + dev-lang/lua:0" + +CONFIG_CHECK="~X86_MSR" + +FILECAPS=( + -M 755 cap_sys_rawio usr/sbin/likwid-accessD -- + -M 755 cap_sys_rawio usr/bin/likwid-{perfctr,bench,powermeter} +) + +# See Bug 558402 +PATCHES=( + "${FILESDIR}/${P}-Makefile.patch" + "${FILESDIR}/${P}-fix-gnustack.patch" + "${FILESDIR}/${P}-config.mk.patch" +) + +src_prepare() { + # Set PREFIX path to include sandbox path + sed -e 's:^PREFIX = .*:PREFIX = '${D}'/usr:' -i config.mk || \ + die "Failed to set correct prefix path" + + # Set the path to library directory. + sed -e 's:$(get_libdir):'$(get_libdir)':' -i config.mk || \ + die "Cannot set library path!" + + # Set correct LDFLAGS + sed -e '/LIBS/aSHARED_LFLAGS += -Wl,-soname,$@' \ + -i make/include_GCC.mk || die "Failed to set correct LDFLAGS" + + # Insert date and version info man pages + sed -e 's//21.08.2015/g' \ + -e "s/VERSION/${PV}/g" \ + -i doc/*.1 || die "Failed to insert date into man pages" + + # Set path to the access daemon, once installed into the system + sed -e "/exeprog/s|TOSTRING(ACCESSDAEMON)|\"/usr/sbin/likwid-accessD\"|" \ + -i src/access_client.c || die "Failed to set access daemon path" + + # Ensure we build with a non executable stack + sed -e "s:\$(SHARED_CFLAGS): \$(SHARED_CFLAGS) -Wa,--noexecstack:" \ + -i make/config_defines.mk || die "Failed to set nonexecstack" + + if use fortran; then + + # If fortran USE is enabled, enable the fortran interfaces + sed -i 's:^FORTRAN_INTERFACE = false:FORTRAN_INTERFACE = likwid.mod:' \ + config.mk || die "Enabling of fortran failed" + + # Set the correct fortran compiler for GCC + sed -i "s:^FC = ifort:FC = ${FC}:" make/include_GCC.mk \ + || die "Failed to set fortran compiler" + + # Set the correct FCFLAGS for gcc fortran + sed -i '/^FCFLAGS/c\FCFLAGS = -J ./ -fsyntax-only' make/include_GCC.mk \ + || die "Failed to set GCC flags for fortran" + fi + + default + +} + +src_install () { + default + if use fortran; then + insinto /usr/include + doins likwid.mod + fi + + doman doc/*.1 +} + +pkg_postinst() { + fcaps_pkg_postinst + ewarn "To enable users to access performance counters it is necessary to" + ewarn "change the access permissions to /dev/cpu/msr[0]* devices." + ewarn "It can be accomplished by adding the following line to file" + ewarn "/etc/udev/rules.d/99-myrules.rules: KERNEL==\"msr[0-9]*\" MODE=\"0666\"" +} -- cgit v1.2.3-65-gdbad