diff --git a/.devtoolset-4-oprofile.metadata b/.devtoolset-4-oprofile.metadata new file mode 100644 index 0000000..43f54fa --- /dev/null +++ b/.devtoolset-4-oprofile.metadata @@ -0,0 +1,2 @@ +913be8e806779f7c6ba394113cf75da67d3cf03e SOURCES/openjdk-include.tar.gz +38c0d8812fe605f6ddd1cd183a482aa7605c0e81 SOURCES/oprofile-1.1.0.tar.gz diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e8cf836 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +SOURCES/openjdk-include.tar.gz +SOURCES/oprofile-1.1.0.tar.gz diff --git a/README.md b/README.md deleted file mode 100644 index 98f42b4..0000000 --- a/README.md +++ /dev/null @@ -1,4 +0,0 @@ -The master branch has no content - -Look at the c7 branch if you are working with CentOS-7, or the c4/c5/c6 branch for CentOS-4, 5 or 6 -If you find this file in a distro specific branch, it means that no content has been checked in yet diff --git a/SPECS/oprofile.spec b/SPECS/oprofile.spec new file mode 100644 index 0000000..e936742 --- /dev/null +++ b/SPECS/oprofile.spec @@ -0,0 +1,196 @@ +%{?scl:%scl_package oprofile} + +Summary: System wide profiler +Name: %{?scl_prefix}oprofile +Version: 1.1.0 +Release: 2%{?dist} +License: GPLv2+ and LGPLv2+ +Group: Development/System +# +Source0: http://downloads.sourceforge.net/oprofile/oprofile-%{version}.tar.gz +#FIXME a workaround until java-1.6.0-openjdk-devel is available on all archs +Source1: openjdk-include.tar.gz +Requires: binutils +Requires: which +Requires(pre): shadow-utils +Requires(postun): shadow-utils +%{?scl:Requires:%scl_runtime} + +URL: http://oprofile.sf.net + +#If oprofile doesn't build on an arch, report it and will add ExcludeArch tag. +BuildRequires: qt-devel +BuildRequires: libxslt +BuildRequires: docbook-style-xsl +BuildRequires: docbook-utils +BuildRequires: elinks +BuildRequires: gtk2-devel +BuildRequires: automake +BuildRequires: libtool +%if 0%{?rhel} >= 7 || 0%{?fedora} >= 15 +BuildRequires: binutils-static +BuildRequires: libpfm-devel >= 4.3.0 +%else +BuildRequires: %{?scl_prefix}binutils-devel +BuildRequires: binutils-devel +%endif +%if 0%{?rhel} == 6 +BuildRequires: papi-devel +%endif +%if 0%{?rhel} >= 6 +BuildRequires: popt-devel +%else +BuildRequires: popt +%endif + +#BuildRequires: java-devel +#BuildRequires: jpackage-utils +#BuildRequires: java-1.6.0-openjdk-devel + +BuildRoot: %{_tmppath}/%{name}-root + +%description +OProfile is a profiling system for systems running Linux. The +profiling runs transparently during the background, and profile data +can be collected at any time. OProfile makes use of the hardware performance +counters provided on Intel P6, and AMD Athlon family processors, and can use +the RTC for profiling on other x86 processor types. + +See the HTML documentation for further details. + +%package devel +Summary: Header files and libraries for developing apps which will use oprofile +Group: Development/Libraries +Requires: %{?scl_prefix}oprofile = %{version}-%{release} +Provides: %{?scl_prefix}oprofile-static = %{version}-%{release} + +%description devel + +Header files and libraries for developing apps which will use oprofile. + +%package jit +Summary: Libraries required for profiling Java and other JITed code +Group: Development/System +Requires: %{?scl_prefix}oprofile = %{version}-%{release} +#Requires: java >= 1.6 +#Requires: jpackage-utils +Requires(post): /sbin/ldconfig +Requires(postun): /sbin/ldconfig +Requires: /etc/ld.so.conf.d + +%description jit +This package includes a base JIT support library, as well as a Java +agent library. + +%prep +%setup -q -n oprofile-%{version} -a1 + +./autogen.sh + +%build + +%configure \ +--with-java=`pwd`/java-1.6.0-openjdk-1.6.0.0 + +make CFLAGS="$RPM_OPT_FLAGS" + +#tweak the manual pages +find -path "*/doc/*.1" -exec \ + sed -i -e \ + 's,/doc/oprofile/,/doc/oprofile-%{version}/,g' {} \; + +%install +rm -rf %{buildroot} + +mkdir -p %{buildroot}%{_bindir} +mkdir -p %{buildroot}%{_mandir}/man1 + +make DESTDIR=%{buildroot} INSTALL="install -p" install + +# We want the manuals in the special doc dir, not the generic doc install dir. +# We build it in place and then move it away so it doesn't get installed +# twice. rpm can specify itself where the (versioned) docs go with the +# %%doc directive. +mkdir docs.installed +mv %{buildroot}%{_datadir}/doc/oprofile/* docs.installed/ + +%if 0%{?scl:1} +# if developer tools set need to put the agentlib in an appropriate place +mv %{buildroot}%{_libdir}/oprofile/* %{buildroot}%{_libdir} +rmdir %{buildroot}%{_libdir}/oprofile +%else +mkdir -p %{buildroot}%{_sysconfdir}/ld.so.conf.d +echo "%{_libdir}/oprofile" > %{buildroot}%{_sysconfdir}/ld.so.conf.d/oprofile-%{_arch}.conf +%endif + + +%pre +getent group oprofile >/dev/null || groupadd -r -g 16 oprofile +getent passwd oprofile >/dev/null || \ +useradd -g oprofile -d /var/lib/oprofile -M -r -u 16 -s /sbin/nologin \ + -c "Special user account to be used by OProfile" oprofile +exit 0 + +%postun +# do not try to remove existing oprofile user or group + +%files +%defattr(-,root,root) +%doc docs.installed/* +%doc COPYING + +%{_bindir}/* + +%{_mandir}/man1/* + +%{_datadir}/oprofile + +%files devel +%defattr(-,root,root) + +%{_includedir}/opagent.h + +%post jit -p /sbin/ldconfig + +%postun jit -p /sbin/ldconfig + +%files jit +%defattr(-,root,root) + +%if 0%{?scl:1} +%{_libdir}/* +%else +%{_libdir}/oprofile +%{_sysconfdir}/ld.so.conf.d/* +%endif + +%changelog +* Thu Aug 13 2015 Will Cohen - 1.1.0-2 +- Locate jvm agent libjvmti in a LD_LIBRARY_PATH directory. + +* Tue Jul 21 2015 Will Cohen - 1.1.0-1 +- Rebase to oprofile-1.1.0. + +* Thu Apr 23 2015 Will Cohen - 0.9.9-7 +- LLC_REFS and LLC_MISSES do not work on some CPUs. +- incorrect handling of default unit masks longer than 11 characters +- Oprofile updates for Avoton +- Unable to profile jited JVM code when using static huge pages +- operf causes rpmbuild to fail + +* Wed Sep 17 2014 Will Cohen - 0.9.9-6 +- Update support for Intel Silvermont (Avoton). +- Enable configure for ppc64le. + +* Mon Aug 18 2014 Will Cohen - 0.9.9-5 +- Update Intel Haswell events. +- Add support for Intel Silvermont (Avoton). +- Add support for Intel Broadwell. +- Add support for aarch64. +- Update IBM power8 events. + +* Wed May 28 2014 Will Cohen - 0.9.9-2.1 +- Correct xml output. + +* Fri May 16 2014 Will Cohen - 0.9.9-1.1 +- Rebase on oprofile-0.9.9.