From 2866fc83fd1b93cff0874d1f6eae5bdf53a94aae Mon Sep 17 00:00:00 2001 From: wangmy Date: Mon, 27 Jun 2022 14:59:18 +0800 Subject: gperftools: upgrade 2.9.1 -> 2.10 ppc-musl.patch refreshed for new version. Changelog: ========== * Matt T. Proud contributed documentation fix to call Go programming language by it's true name instead of golang. * Robert Scott contributed debugallocator feature to use readable (PROT_READ) fence pages. This is activated by TCMALLOC_PAGE_FENCE_READABLE environment veriable. * User stdpain contributed fix for cmake detection of libunwind. * Natale Patriciello contributed fix for OSX Monterey support. * Volodymyr Nikolaichuk contributed support for returning memory back to OS by using mmap with MAP_FIXED and PROT_NONE. It is off by default and enabled by preprocessor define: FREE_MMAP_PROT_NONE. This should help OSes that don't support Linux-style madvise MADV_DONTNEED or BSD-style MADV_FREE. * Jingyun Hua has contributed basic support for LoongArch. * Github issue #1338 of failing to build on some recent musl versions has been fixed. * Github issue #1321 of failing to ship cmake bits with .tar.gz archive has been fixed. Signed-off-by: Wang Mingyu Signed-off-by: Khem Raj --- .../gperftools/gperftools/ppc-musl.patch | 19 +++++- .../recipes-support/gperftools/gperftools_2.10.bb | 67 ++++++++++++++++++++++ .../recipes-support/gperftools/gperftools_2.9.1.bb | 67 ---------------------- 3 files changed, 84 insertions(+), 69 deletions(-) create mode 100644 meta-oe/recipes-support/gperftools/gperftools_2.10.bb delete mode 100644 meta-oe/recipes-support/gperftools/gperftools_2.9.1.bb (limited to 'meta-oe') diff --git a/meta-oe/recipes-support/gperftools/gperftools/ppc-musl.patch b/meta-oe/recipes-support/gperftools/gperftools/ppc-musl.patch index 4cf182ad64..d06b6af229 100644 --- a/meta-oe/recipes-support/gperftools/gperftools/ppc-musl.patch +++ b/meta-oe/recipes-support/gperftools/gperftools/ppc-musl.patch @@ -1,10 +1,21 @@ -Compatibility fixes for musl. +From 328805fd16930deefda400a77e9c2c5d17d04d29 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Sat, 13 Mar 2021 00:42:25 -0800 +Subject: [PATCH] Compatibility fixes for musl. +--- + m4/pc_from_ucontext.m4 | 4 +++- + src/getpc.h | 3 +++ + src/stacktrace_powerpc-linux-inl.h | 8 ++++++-- + 3 files changed, 12 insertions(+), 3 deletions(-) + +diff --git a/m4/pc_from_ucontext.m4 b/m4/pc_from_ucontext.m4 +index 7f09dd7..5f4ee8c 100644 --- a/m4/pc_from_ucontext.m4 +++ b/m4/pc_from_ucontext.m4 @@ -34,6 +34,7 @@ AC_DEFUN([AC_PC_FROM_UCONTEXT], + pc_fields="$pc_fields uc_mcontext.gregs[[R15]]" # Linux (arm old [untested]) pc_fields="$pc_fields uc_mcontext.arm_pc" # Linux (arm arch 5) - pc_fields="$pc_fields uc_mcontext.cr0_hi" # Linux (e2k) pc_fields="$pc_fields uc_mcontext.gp_regs[[PT_NIP]]" # Suse SLES 11 (ppc64) + pc_fields="$pc_fields uc_mcontext.gregs[[PT_NIP]]" pc_fields="$pc_fields uc_mcontext.mc_eip" # FreeBSD (i386) @@ -20,6 +31,8 @@ Compatibility fixes for musl. [ucontext_t u; return u.$pc_field == 0;], AC_DEFINE_UNQUOTED(PC_FROM_UCONTEXT, $pc_field, How to access the PC from a struct ucontext) +diff --git a/src/getpc.h b/src/getpc.h +index 9605363..cd8ccfa 100644 --- a/src/getpc.h +++ b/src/getpc.h @@ -68,6 +68,9 @@ @@ -32,6 +45,8 @@ Compatibility fixes for musl. // Take the example where function Foo() calls function Bar(). For // many architectures, Bar() is responsible for setting up and tearing +diff --git a/src/stacktrace_powerpc-linux-inl.h b/src/stacktrace_powerpc-linux-inl.h +index a301a46..efca426 100644 --- a/src/stacktrace_powerpc-linux-inl.h +++ b/src/stacktrace_powerpc-linux-inl.h @@ -186,7 +186,7 @@ static int GET_STACK_TRACE_OR_FRAMES { diff --git a/meta-oe/recipes-support/gperftools/gperftools_2.10.bb b/meta-oe/recipes-support/gperftools/gperftools_2.10.bb new file mode 100644 index 0000000000..602a7e263a --- /dev/null +++ b/meta-oe/recipes-support/gperftools/gperftools_2.10.bb @@ -0,0 +1,67 @@ +SUMMARY = "Fast, multi-threaded malloc() and nifty performance analysis tools" +HOMEPAGE = "https://github.com/gperftools/gperftools" +DESCRIPTION = "The gperftools, previously called google-perftools, package contains some \ +utilities to improve and analyze the performance of C++ programs. \ +Included are an optimized thread-caching malloc() and cpu and heap profiling utilities. \ +" + +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://COPYING;md5=762732742c73dc6c7fbe8632f06c059a" + +DEPENDS:append:libc-musl = " libucontext" + +SRCREV = "bf8b714bf5075d0a6f2f28504b43095e2b1e11c5" +SRC_URI = "git://github.com/gperftools/gperftools;branch=master;protocol=https \ + file://0001-Support-Atomic-ops-on-clang.patch \ + file://0001-fix-build-with-musl-libc.patch \ + file://0001-disbale-heap-checkers-and-debug-allocator-on-musl.patch \ + file://disable_libunwind_aarch64.patch \ + file://sgidef.patch \ + " + +SRC_URI:append:libc-musl = " file://ppc-musl.patch" + +inherit autotools + +S = "${WORKDIR}/git" + +# On mips, we have the following error. +# do_page_fault(): sending SIGSEGV to ls for invalid read access from 00000008 +# Segmentation fault (core dumped) +COMPATIBLE_HOST:mipsarch = "null" +COMPATIBLE_HOST:riscv64 = "null" +COMPATIBLE_HOST:riscv32 = "null" + +# Disable thumb1 +# {standard input}: Assembler messages: +# {standard input}:434: Error: lo register required -- `ldr pc,[sp]' +# Makefile:4538: recipe for target 'src/base/libtcmalloc_la-linuxthreads.lo' failed +ARM_INSTRUCTION_SET:armv5 = "arm" +ARM_INSTRUCTION_SET:toolchain-clang:arm = "arm" + +EXTRA_OECONF:append:libc-musl:powerpc64le = " --disable-cpu-profiler" +EXTRA_OECONF:append:libc-musl:powerpc = " --disable-cpu-profiler" +PACKAGECONFIG ?= "libunwind static" +PACKAGECONFIG:remove:arm:libc-musl = "libunwind" +PACKAGECONFIG:remove:riscv64 = "libunwind" +PACKAGECONFIG:remove:riscv32 = "libunwind" + +PACKAGECONFIG[libunwind] = "--enable-libunwind,--disable-libunwind,libunwind" +PACKAGECONFIG[static] = "--enable-static,--disable-static," + +PACKAGE_BEFORE_PN += "libtcmalloc-minimal" +FILES:libtcmalloc-minimal = "${libdir}/libtcmalloc_minimal*${SOLIBS} ${libdir}/libtcmalloc_minimal_debug*${SOLIBS}" + +# pprof tool requires Getopt::long and POSIX perl5 modules. +# Also runs `objdump` on each cpuprofile data file +RDEPENDS:${PN} += " \ + binutils \ + curl \ + perl-module-carp \ + perl-module-cwd \ + perl-module-getopt-long \ + perl-module-overloading \ + perl-module-posix \ +" + +RDEPENDS:${PN} += "libtcmalloc-minimal (= ${EXTENDPKGV})" diff --git a/meta-oe/recipes-support/gperftools/gperftools_2.9.1.bb b/meta-oe/recipes-support/gperftools/gperftools_2.9.1.bb deleted file mode 100644 index d056622b2b..0000000000 --- a/meta-oe/recipes-support/gperftools/gperftools_2.9.1.bb +++ /dev/null @@ -1,67 +0,0 @@ -SUMMARY = "Fast, multi-threaded malloc() and nifty performance analysis tools" -HOMEPAGE = "https://github.com/gperftools/gperftools" -DESCRIPTION = "The gperftools, previously called google-perftools, package contains some \ -utilities to improve and analyze the performance of C++ programs. \ -Included are an optimized thread-caching malloc() and cpu and heap profiling utilities. \ -" - -LICENSE = "BSD-3-Clause" -LIC_FILES_CHKSUM = "file://COPYING;md5=762732742c73dc6c7fbe8632f06c059a" - -DEPENDS:append:libc-musl = " libucontext" - -SRCREV = "f7c6fb6c8e99d6b1b725e5994373bcd19ffdf8fd" -SRC_URI = "git://github.com/gperftools/gperftools;branch=master;protocol=https \ - file://0001-Support-Atomic-ops-on-clang.patch \ - file://0001-fix-build-with-musl-libc.patch \ - file://0001-disbale-heap-checkers-and-debug-allocator-on-musl.patch \ - file://disable_libunwind_aarch64.patch \ - file://sgidef.patch \ - " - -SRC_URI:append:libc-musl = " file://ppc-musl.patch" - -inherit autotools - -S = "${WORKDIR}/git" - -# On mips, we have the following error. -# do_page_fault(): sending SIGSEGV to ls for invalid read access from 00000008 -# Segmentation fault (core dumped) -COMPATIBLE_HOST:mipsarch = "null" -COMPATIBLE_HOST:riscv64 = "null" -COMPATIBLE_HOST:riscv32 = "null" - -# Disable thumb1 -# {standard input}: Assembler messages: -# {standard input}:434: Error: lo register required -- `ldr pc,[sp]' -# Makefile:4538: recipe for target 'src/base/libtcmalloc_la-linuxthreads.lo' failed -ARM_INSTRUCTION_SET:armv5 = "arm" -ARM_INSTRUCTION_SET:toolchain-clang:arm = "arm" - -EXTRA_OECONF:append:libc-musl:powerpc64le = " --disable-cpu-profiler" -EXTRA_OECONF:append:libc-musl:powerpc = " --disable-cpu-profiler" -PACKAGECONFIG ?= "libunwind static" -PACKAGECONFIG:remove:arm:libc-musl = "libunwind" -PACKAGECONFIG:remove:riscv64 = "libunwind" -PACKAGECONFIG:remove:riscv32 = "libunwind" - -PACKAGECONFIG[libunwind] = "--enable-libunwind,--disable-libunwind,libunwind" -PACKAGECONFIG[static] = "--enable-static,--disable-static," - -PACKAGE_BEFORE_PN += "libtcmalloc-minimal" -FILES:libtcmalloc-minimal = "${libdir}/libtcmalloc_minimal*${SOLIBS} ${libdir}/libtcmalloc_minimal_debug*${SOLIBS}" - -# pprof tool requires Getopt::long and POSIX perl5 modules. -# Also runs `objdump` on each cpuprofile data file -RDEPENDS:${PN} += " \ - binutils \ - curl \ - perl-module-carp \ - perl-module-cwd \ - perl-module-getopt-long \ - perl-module-overloading \ - perl-module-posix \ -" - -RDEPENDS:${PN} += "libtcmalloc-minimal (= ${EXTENDPKGV})" -- cgit v1.2.3-54-g00ecf