Date: Thu, 8 Feb 2018 22:39:43 +0000 (UTC) From: Jan Beich <jbeich@FreeBSD.org> To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r461279 - in head/devel/android-tools-simpleperf: . files Message-ID: <201802082239.w18Mdhtx005253@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: jbeich Date: Thu Feb 8 22:39:42 2018 New Revision: 461279 URL: https://svnweb.freebsd.org/changeset/ports/461279 Log: devel/android-tools-simpleperf: switch to llvm50 Added: head/devel/android-tools-simpleperf/files/patch-llvm6 (contents, props changed) Modified: head/devel/android-tools-simpleperf/Makefile (contents, props changed) head/devel/android-tools-simpleperf/files/Makefile (contents, props changed) Modified: head/devel/android-tools-simpleperf/Makefile ============================================================================== --- head/devel/android-tools-simpleperf/Makefile Thu Feb 8 22:38:13 2018 (r461278) +++ head/devel/android-tools-simpleperf/Makefile Thu Feb 8 22:39:42 2018 (r461279) @@ -3,7 +3,7 @@ PORTNAME= android-tools-simpleperf DISTVERSIONPREFIX= android- DISTVERSION= 7.1.2_r17 -PORTREVISION= 1 +PORTREVISION= 2 CATEGORIES= devel MAINTAINER= jbeich@FreeBSD.org @@ -30,7 +30,7 @@ TEST_TARGET= test LDFLAGS+= -Wl,--as-needed # avoid overlinking (llvm deps) PLIST_FILES= bin/simpleperf -LLVM_VER?= 38 # XXX Move to DEFAULT_VERSIONS +LLVM_VER?= 50 # XXX Move to DEFAULT_VERSIONS OPTIONS_DEFINE= TEST Modified: head/devel/android-tools-simpleperf/files/Makefile ============================================================================== --- head/devel/android-tools-simpleperf/files/Makefile Thu Feb 8 22:38:13 2018 (r461278) +++ head/devel/android-tools-simpleperf/files/Makefile Thu Feb 8 22:39:42 2018 (r461279) @@ -89,7 +89,10 @@ TEST_CPPFLAGS+= $$(${GTEST_CONFIG} --cppflags) CPPFLAGS.${f}+= ${TEST_CPPFLAGS} .endfor -LDADD+= $$(${LLVM_CONFIG} --system-libs --libs --ldflags) +LDADD!= ${LLVM_CONFIG} --system-libs --libs --ldflags --link-static +LDADD+= -lz \-lpthread +# https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=223191#c3 +LDADD:= ${LDADD:S,-l/usr/lib/libexecinfo.so,-lexecinfo,} TEST_LDADD+= $$(${GTEST_CONFIG} --libs --ldflags) TEST_OBJS+= ${TEST_SRCS:R:S/$/.o/} Added: head/devel/android-tools-simpleperf/files/patch-llvm6 ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/devel/android-tools-simpleperf/files/patch-llvm6 Thu Feb 8 22:39:42 2018 (r461279) @@ -0,0 +1,72 @@ +read_elf.cpp:170:56: error: no member named 'getError' in + 'llvm::Expected<std::__1::unique_ptr<llvm::object::Binary, std::__1::default_delete<llvm::object::Binary> > + >' + << "] is not a binary file: " << binary_or_err.getError().message(); + ~~~~~~~~~~~~~ ^ +read_elf.cpp:105:37: error: no member named 'section_begin' in + 'llvm::object::ELFFile<llvm::object::ELFType<llvm::support::little, false> >' + for (auto section_iterator = elf->section_begin(); section_iterator != elf->section_end(); + ~~~ ^ +read_elf.cpp:316:23: error: no member named 'program_header_begin' in + 'llvm::object::ELFFile<llvm::object::ELFType<llvm::support::little, false> >' + for (auto it = elf->program_header_begin(); it != elf->program_header_end(); ++it) { + ~~~ ^ + +--- simpleperf/read_elf.cpp.orig 2017-01-06 00:19:41 UTC ++++ simpleperf/read_elf.cpp +@@ -102,11 +102,19 @@ bool GetBuildIdFromNoteFile(const std::string& filenam + + template <class ELFT> + bool GetBuildIdFromELFFile(const llvm::object::ELFFile<ELFT>* elf, BuildId* build_id) { ++#if LLVM_VERSION_MAJOR < 4 + for (auto section_iterator = elf->section_begin(); section_iterator != elf->section_end(); ++#else ++ for (auto section_iterator = elf->sections()->begin(); section_iterator != elf->sections()->end(); ++#endif + ++section_iterator) { + if (section_iterator->sh_type == llvm::ELF::SHT_NOTE) { + auto contents = elf->getSectionContents(&*section_iterator); ++#if LLVM_VERSION_MAJOR < 4 + if (contents.getError()) { ++#else ++ if (!contents) { ++#endif + LOG(DEBUG) << "read note section error"; + continue; + } +@@ -167,7 +175,11 @@ static BinaryRet OpenObjectFile(const std::string& fil + auto binary_or_err = llvm::object::createBinary(buffer_or_err.get()->getMemBufferRef()); + if (!binary_or_err) { + LOG(ERROR) << filename << " [" << file_offset << "-" << (file_offset + file_size) ++#if LLVM_VERSION_MAJOR * 10 + LLVM_VERSION_MINOR < 39 + << "] is not a binary file: " << binary_or_err.getError().message(); ++#else ++ << "] is not a binary file: " << errorToErrorCode(binary_or_err.takeError()).message(); ++#endif + return ret; + } + ret.binary = llvm::object::OwningBinary<llvm::object::Binary>(std::move(binary_or_err.get()), +@@ -313,7 +325,11 @@ template <class ELFT> + bool ReadMinExecutableVirtualAddress(const llvm::object::ELFFile<ELFT>* elf, uint64_t* p_vaddr) { + bool has_vaddr = false; + uint64_t min_addr = std::numeric_limits<uint64_t>::max(); ++#if LLVM_VERSION_MAJOR < 4 + for (auto it = elf->program_header_begin(); it != elf->program_header_end(); ++it) { ++#else ++ for (auto it = elf->program_headers()->begin(); it != elf->program_headers()->end(); ++it) { ++#endif + if ((it->p_type == llvm::ELF::PT_LOAD) && (it->p_flags & llvm::ELF::PF_X)) { + if (it->p_vaddr < min_addr) { + min_addr = it->p_vaddr; +@@ -357,7 +373,11 @@ bool ReadMinExecutableVirtualAddressFromElfFile(const + template <class ELFT> + bool ReadSectionFromELFFile(const llvm::object::ELFFile<ELFT>* elf, const std::string& section_name, + std::string* content) { ++#if LLVM_VERSION_MAJOR < 4 + for (auto it = elf->section_begin(); it != elf->section_end(); ++it) { ++#else ++ for (auto it = elf->sections()->begin(); it != elf->sections()->end(); ++it) { ++#endif + auto name_or_err = elf->getSectionName(&*it); + if (name_or_err && *name_or_err == section_name) { + auto data_or_err = elf->getSectionContents(&*it);
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201802082239.w18Mdhtx005253>