From: Khem Raj <raj.khem@gmail.com>
To: openembedded-devel@lists.openembedded.org
Subject: [meta-python][PATCH 16/18] python-pyflame: Upgrade to 1.6.7
Date: Sun, 23 Dec 2018 13:35:55 -0800 [thread overview]
Message-ID: <20181223213557.7834-16-raj.khem@gmail.com> (raw)
In-Reply-To: <20181223213557.7834-1-raj.khem@gmail.com>
Disable build on ppc as well
Drop already upstreamed patches
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Cc: Andrew Jeffery <andrew@aj.id.au>
Cc: Tim "moto-timo" Orling <TicoTimo@gmail.com>
Cc: Derek Straka <derek@asterius.io>
---
...over-user_regs_struct-name-which-dif.patch | 69 ---------
...Account-for-prelinked-shared-objects.patch | 134 ------------------
.../python/python-pyflame.inc | 3 +-
.../python/python-pyflame_1.6.6.bb | 6 -
.../python/python-pyflame_1.6.7.bb | 4 +
5 files changed, 6 insertions(+), 210 deletions(-)
delete mode 100644 meta-python/recipes-devtools/python/python-pyflame-1.6.6/0001-ptrace-Abstract-over-user_regs_struct-name-which-dif.patch
delete mode 100644 meta-python/recipes-devtools/python/python-pyflame-1.6.6/0001-symbol-Account-for-prelinked-shared-objects.patch
delete mode 100644 meta-python/recipes-devtools/python/python-pyflame_1.6.6.bb
create mode 100644 meta-python/recipes-devtools/python/python-pyflame_1.6.7.bb
diff --git a/meta-python/recipes-devtools/python/python-pyflame-1.6.6/0001-ptrace-Abstract-over-user_regs_struct-name-which-dif.patch b/meta-python/recipes-devtools/python/python-pyflame-1.6.6/0001-ptrace-Abstract-over-user_regs_struct-name-which-dif.patch
deleted file mode 100644
index 09c4394c2a..0000000000
--- a/meta-python/recipes-devtools/python/python-pyflame-1.6.6/0001-ptrace-Abstract-over-user_regs_struct-name-which-dif.patch
+++ /dev/null
@@ -1,69 +0,0 @@
-From 2ef124e235a47dd4742813cf80e11a89cf4f02f8 Mon Sep 17 00:00:00 2001
-From: Andrew Jeffery <andrew@aj.id.au>
-Date: Thu, 3 May 2018 12:35:31 +0930
-Subject: [PATCH] ptrace: Abstract over user_regs_struct name, which differs on
- ARM32
-
-Signed-off-by: Andrew Jeffery <andrew@aj.id.au>
----
- src/ptrace.cc | 6 +++---
- src/ptrace.h | 10 ++++++++--
- 2 files changed, 11 insertions(+), 5 deletions(-)
-
-diff --git a/src/ptrace.cc b/src/ptrace.cc
-index 485f58e4d82e..610fabb3b8e8 100644
---- a/src/ptrace.cc
-+++ b/src/ptrace.cc
-@@ -122,8 +122,8 @@ void PtraceInterrupt(pid_t pid) {
- DoWait(pid);
- }
-
--struct user_regs_struct PtraceGetRegs(pid_t pid) {
-- struct user_regs_struct regs;
-+user_regs_struct PtraceGetRegs(pid_t pid) {
-+ user_regs_struct regs;
- if (ptrace(PTRACE_GETREGS, pid, 0, ®s)) {
- std::ostringstream ss;
- ss << "Failed to PTRACE_GETREGS: " << strerror(errno);
-@@ -132,7 +132,7 @@ struct user_regs_struct PtraceGetRegs(pid_t pid) {
- return regs;
- }
-
--void PtraceSetRegs(pid_t pid, struct user_regs_struct regs) {
-+void PtraceSetRegs(pid_t pid, user_regs_struct regs) {
- if (ptrace(PTRACE_SETREGS, pid, 0, ®s)) {
- std::ostringstream ss;
- ss << "Failed to PTRACE_SETREGS: " << strerror(errno);
-diff --git a/src/ptrace.h b/src/ptrace.h
-index 7083be1c4dfd..d6af8bf9f83a 100644
---- a/src/ptrace.h
-+++ b/src/ptrace.h
-@@ -23,6 +23,12 @@
-
- #include "./config.h"
-
-+#if defined(__arm__)
-+typedef struct user_regs user_regs_struct;
-+#else
-+typedef struct user_regs_struct user_regs_struct;
-+#endif
-+
- namespace pyflame {
-
- int DoWait(pid_t pid, int options = 0);
-@@ -39,10 +45,10 @@ void PtraceSeize(pid_t pid);
- void PtraceInterrupt(pid_t pid);
-
- // get regs from a process
--struct user_regs_struct PtraceGetRegs(pid_t pid);
-+user_regs_struct PtraceGetRegs(pid_t pid);
-
- // set regs in a process
--void PtraceSetRegs(pid_t pid, struct user_regs_struct regs);
-+void PtraceSetRegs(pid_t pid, user_regs_struct regs);
-
- // poke a long word into an address
- void PtracePoke(pid_t pid, unsigned long addr, long data);
---
-2.14.1
-
diff --git a/meta-python/recipes-devtools/python/python-pyflame-1.6.6/0001-symbol-Account-for-prelinked-shared-objects.patch b/meta-python/recipes-devtools/python/python-pyflame-1.6.6/0001-symbol-Account-for-prelinked-shared-objects.patch
deleted file mode 100644
index 3eefc9cb98..0000000000
--- a/meta-python/recipes-devtools/python/python-pyflame-1.6.6/0001-symbol-Account-for-prelinked-shared-objects.patch
+++ /dev/null
@@ -1,134 +0,0 @@
-From 007965d341349679607699d005c4af811b2c419a Mon Sep 17 00:00:00 2001
-From: Andrew Jeffery <andrew@aj.id.au>
-Date: Fri, 4 May 2018 11:23:53 +0930
-Subject: [PATCH] symbol: Account for prelinked shared objects
-
-Some projects, such as those derived from Yocto, tend to prelink their
-binaries and libraries to reduce runtime overhead. Currently this trips
-up pyflame in its symbol address calculations, and leads to ptrace
-failures due to spurious addresses:
-
- $ pyflame -t python -c "print 'foo'"
- Unexpected ptrace(2) exception: Failed to PTRACE_PEEKDATA (pid 1482, addr 0x9f9b1d70): Input/output error
- Unexpected ptrace(2) exception: Failed to PTRACE_PEEKDATA (pid 1482, addr 0x9f9b1d70): Input/output error
- Unexpected ptrace(2) exception: Failed to PTRACE_PEEKDATA (pid 1482, addr 0x9f9b1d70): Input/output error
- Unexpected ptrace(2) exception: Failed to PTRACE_PEEKDATA (pid 1482, addr 0x9f9b1d70): Input/output error
- Unexpected ptrace(2) exception: Failed to PTRACE_PEEKDATA (pid 1482, addr 0x9f9b1d70): Input/output error
- ...
-
-Add support for reading a prelinked base p_vaddr out of the ELF and
-adjust the PyAddresses values accordingly.
-
-Signed-off-by: Andrew Jeffery <andrew@aj.id.au>
----
- src/symbol.cc | 15 +++++++++++++++
- src/symbol.h | 29 ++++++++++++++++++++++++++++-
- 2 files changed, 43 insertions(+), 1 deletion(-)
-
-diff --git a/src/symbol.cc b/src/symbol.cc
-index 125174efeeb5..39c3e8132dd1 100644
---- a/src/symbol.cc
-+++ b/src/symbol.cc
-@@ -166,6 +166,17 @@ PyABI ELF::WalkTable(int sym, int str, PyAddresses *addrs) {
- return abi;
- }
-
-+addr_t ELF::GetBaseAddress() {
-+ int32_t phnum = hdr()->e_phnum;
-+ int32_t i;
-+ for (i = 0; i < phnum && phdr(i)->p_type != PT_LOAD; i++) {
-+ }
-+ if (i == phnum) {
-+ throw FatalException("Failed to find PT_LOAD entry in program headers");
-+ }
-+ return phdr(i)->p_vaddr;
-+}
-+
- PyAddresses ELF::GetAddresses(PyABI *abi) {
- PyAddresses addrs;
- PyABI detected_abi = WalkTable(dynsym_, dynstr_, &addrs);
-@@ -176,6 +187,10 @@ PyAddresses ELF::GetAddresses(PyABI *abi) {
- if (abi != nullptr) {
- *abi = detected_abi;
- }
-+ // Handle prelinked shared objects
-+ if (hdr()->e_type == ET_DYN) {
-+ return addrs - GetBaseAddress();
-+ }
- return addrs;
- }
- } // namespace pyflame
-diff --git a/src/symbol.h b/src/symbol.h
-index 124853bcc1c1..bb92b9a2604b 100644
---- a/src/symbol.h
-+++ b/src/symbol.h
-@@ -28,15 +28,19 @@
-
- #if USE_ELF64
- #define ehdr_t Elf64_Ehdr
-+#define phdr_t Elf64_Phdr
- #define shdr_t Elf64_Shdr
- #define dyn_t Elf64_Dyn
- #define sym_t Elf64_Sym
-+#define addr_t Elf64_Addr
- #define ARCH_ELFCLASS ELFCLASS64
- #else
- #define ehdr_t Elf32_Ehdr
-+#define phdr_t Elf32_Phdr
- #define shdr_t Elf32_Shdr
- #define dyn_t Elf32_Dyn
- #define sym_t Elf32_Sym
-+#define addr_t Elf32_Addr
- #define ARCH_ELFCLASS ELFCLASS32
- #endif
-
-@@ -67,8 +71,18 @@ struct PyAddresses {
- interp_head_hint(0),
- pie(false) {}
-
-+ PyAddresses operator-(const unsigned long base) const {
-+ PyAddresses res(*this);
-+ res.tstate_addr = this->tstate_addr == 0 ? 0 : this->tstate_addr - base;
-+ res.interp_head_addr =
-+ this->interp_head_addr == 0 ? 0 : this->interp_head_addr - base;
-+ res.interp_head_fn_addr =
-+ this->interp_head_fn_addr == 0 ? 0 : this->interp_head_fn_addr - base;
-+ return res;
-+ }
-+
- PyAddresses operator+(const unsigned long base) const {
-- PyAddresses res;
-+ PyAddresses res(*this);
- res.tstate_addr = this->tstate_addr == 0 ? 0 : this->tstate_addr + base;
- res.interp_head_addr =
- this->interp_head_addr == 0 ? 0 : this->interp_head_addr + base;
-@@ -113,6 +127,9 @@ class ELF {
- // ABI.
- PyAddresses GetAddresses(PyABI *abi);
-
-+ // Extract the base load address from the Program Header table
-+ addr_t GetBaseAddress();
-+
- private:
- void *addr_;
- size_t length_;
-@@ -122,6 +139,16 @@ class ELF {
- return reinterpret_cast<const ehdr_t *>(addr_);
- }
-
-+ inline const phdr_t *phdr(int idx) const {
-+ if (idx < 0) {
-+ std::ostringstream ss;
-+ ss << "Illegal phdr index: " << idx;
-+ throw FatalException(ss.str());
-+ }
-+ return reinterpret_cast<const phdr_t *>(p() + hdr()->e_phoff +
-+ idx * hdr()->e_phentsize);
-+ }
-+
- inline const shdr_t *shdr(int idx) const {
- if (idx < 0) {
- std::ostringstream ss;
---
-2.14.1
-
diff --git a/meta-python/recipes-devtools/python/python-pyflame.inc b/meta-python/recipes-devtools/python/python-pyflame.inc
index 340aab74ef..b3b153c57b 100644
--- a/meta-python/recipes-devtools/python/python-pyflame.inc
+++ b/meta-python/recipes-devtools/python/python-pyflame.inc
@@ -5,7 +5,7 @@ LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://${S}/LICENSE;md5=2ee41112a44fe7014dce33e26468ba93"
DEPENDS = "python"
-SRC_URI = "git://github.com/uber/pyflame.git;protocol=https"
+SRC_URI = "git://github.com/uber/pyflame.git;protocol=https;nobranch=1"
S = "${WORKDIR}/git"
inherit pkgconfig autotools
@@ -13,3 +13,4 @@ inherit pkgconfig autotools
COMPATIBLE_HOST_libc-musl_class-target = "null"
COMPATIBLE_HOST_mipsarch_class-target = "null"
COMPATIBLE_HOST_aarch64_class-target = "null"
+COMPATIBLE_HOST_powerpc_class-target = "null"
diff --git a/meta-python/recipes-devtools/python/python-pyflame_1.6.6.bb b/meta-python/recipes-devtools/python/python-pyflame_1.6.6.bb
deleted file mode 100644
index 8dedb89286..0000000000
--- a/meta-python/recipes-devtools/python/python-pyflame_1.6.6.bb
+++ /dev/null
@@ -1,6 +0,0 @@
-require python-pyflame.inc
-
-# v1.6.6
-SRCREV = "8a9d8c2acc3b3bb027475b738134f1e6fff14e6c"
-SRC_URI += "file://0001-ptrace-Abstract-over-user_regs_struct-name-which-dif.patch"
-SRC_URI += "file://0001-symbol-Account-for-prelinked-shared-objects.patch"
diff --git a/meta-python/recipes-devtools/python/python-pyflame_1.6.7.bb b/meta-python/recipes-devtools/python/python-pyflame_1.6.7.bb
new file mode 100644
index 0000000000..cb08f30a67
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python-pyflame_1.6.7.bb
@@ -0,0 +1,4 @@
+require python-pyflame.inc
+
+# v1.6.7
+SRCREV = "c151d2f34737f28a1f5266a003b2b0720bbd9f96"
--
2.20.1
next prev parent reply other threads:[~2018-12-23 21:36 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-12-23 21:35 [meta-oe][PATCH 01/18] modemmanager: Fix build with gcc9 Khem Raj
2018-12-23 21:35 ` [meta-oe][PATCH 02/18] breakpad: Update to latest Khem Raj
2018-12-23 21:35 ` [meta-oe][PATCH 03/18] ltrace: Fix a NULL string use Khem Raj
2018-12-23 21:35 ` [meta-networking][PATCH 04/18] opensaf: Upgrade to 5.18.09 Khem Raj
2018-12-23 21:35 ` [meta-oe][PATCH 05/18] libgpiod: Rrecommend python3 only for PN-python package Khem Raj
2018-12-23 21:35 ` [meta-oe][PATCH 06/18] srecord: GPL-3.0 and LGPL-3.0 is correct license Khem Raj
2018-12-23 21:35 ` [meta-oe][PATCH 07/18] ttf-droid: Delete from staging install area instead of sources Khem Raj
2018-12-23 21:35 ` [meta-oe][PATCH 08/18] lio-utils: Switch SRC_URI to use datera mirror on github Khem Raj
2018-12-23 21:35 ` [meta-oe][PATCH 09/18] breakpad: Fix build with gcc9 on x86 Khem Raj
2018-12-23 21:35 ` [meta-networking][PATCH 10/18] miniupnpd: Fix cross compile on OE Khem Raj
2018-12-23 21:35 ` [meta-oe][PATCH 11/18] open-vm-tools: Upgrade to 10.3.5 Khem Raj
2018-12-23 21:35 ` [meta-multimedia][PATCH 12/18] tvheadend: Add dependency on dvb-apps Khem Raj
2018-12-23 21:35 ` [meta-oe][PATCH 13/18] mozjs: Remove -Werror=format from CXXFLAGS Khem Raj
2018-12-23 21:35 ` [meta-python][PATCH 14/18] python-msgpack: Upgrade to 0.6.0 Khem Raj
2018-12-23 21:35 ` [meta-python][PATCH 15/18] python-grpcio: Upgrade to 1.17.1 Khem Raj
2018-12-23 21:35 ` Khem Raj [this message]
2018-12-23 21:45 ` [meta-python][PATCH 16/18] python-pyflame: Upgrade to 1.6.7 Andrew Jeffery
2018-12-23 21:35 ` [meta-oe][PATCH 17/18] redis: Update to 4.0.12 Khem Raj
2018-12-23 21:35 ` [meta-oe][PATCH 18/18] android-tools: Disable for powerpc/powerpc64 Khem Raj
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20181223213557.7834-16-raj.khem@gmail.com \
--to=raj.khem@gmail.com \
--cc=openembedded-devel@lists.openembedded.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.