Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update HP libunwind to v1.7.0 #87426

Merged
merged 1 commit into from
Jun 21, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 5 additions & 19 deletions src/native/external/libunwind-version.txt
Original file line number Diff line number Diff line change
@@ -1,20 +1,6 @@
v1.6.2
https://github.com/libunwind/libunwind/commit/b3ca1b59a795a617877c01fe5d299ab7a07ff29d
v1.7.0
https://github.com/libunwind/libunwind/commit/688caaf6ef9853cc26ad8bd1706804d48a0df0bc

Apply https://github.com/libunwind/libunwind/pull/317
Apply https://github.com/libunwind/libunwind/pull/330
Apply https://github.com/libunwind/libunwind/pull/333
Apply https://github.com/libunwind/libunwind/pull/342
Apply https://github.com/libunwind/libunwind/pull/353
Apply https://github.com/libunwind/libunwind/pull/358
Apply https://github.com/libunwind/libunwind/commit/7cf6e84bb86ff5840896b4910ccc3865d4f00ffb
Apply https://github.com/libunwind/libunwind/pull/365
Apply https://github.com/libunwind/libunwind/pull/377
Apply https://github.com/libunwind/libunwind/pull/382
Apply https://github.com/libunwind/libunwind/pull/398
Apply https://github.com/libunwind/libunwind/pull/400
Apply https://github.com/libunwind/libunwind/pull/414
Apply https://github.com/libunwind/libunwind/pull/416

For LoongArch64:
Apply https://github.com/libunwind/libunwind/pull/316 and https://github.com/libunwind/libunwind/pull/322
Apply https://github.com/libunwind/libunwind/pull/457
Apply https://github.com/libunwind/libunwind/pull/455
Apply https://github.com/libunwind/libunwind/pull/460
4 changes: 2 additions & 2 deletions src/native/external/libunwind.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ set(libunwind_la_SOURCES_generic
# the source is excluded here to prevent name clash
#mi/Gget_accessors.c
mi/Gget_proc_info_by_ip.c mi/Gget_proc_name.c
mi/Gget_proc_info_in_range.c
dwarf/Gget_proc_info_in_range.c
mi/Gput_dynamic_unwind_info.c mi/Gdestroy_addr_space.c
mi/Gget_reg.c mi/Gset_reg.c
mi/Gget_fpreg.c mi/Gset_fpreg.c
Expand Down Expand Up @@ -117,7 +117,7 @@ set(libunwind_la_SOURCES_local_nounwind
mi/Ldyn-extract.c mi/Lfind_dynamic_proc_info.c
mi/Lget_accessors.c
mi/Lget_proc_info_by_ip.c mi/Lget_proc_name.c
mi/Lget_proc_info_in_range.c
dwarf/Lget_proc_info_in_range.c
mi/Lput_dynamic_unwind_info.c mi/Ldestroy_addr_space.c
mi/Lget_reg.c mi/Lset_reg.c
mi/Lget_fpreg.c mi/Lset_fpreg.c
Expand Down
129 changes: 129 additions & 0 deletions src/native/external/libunwind/.github/workflows/CI-unix.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,129 @@
name: CI - Unix

on:
pull_request:
paths:
- '**'
- '!README'
- '!INSTALL'
- '!NEWS'
- '!doc/**'
- '!.**'
- '.github/workflows/CI-unix.yml'
push:
branches:
- v[0-9].*
- master

jobs:
build:
runs-on: ubuntu-latest
name: build-${{ join(matrix.*, ' ') }}
strategy:
fail-fast: false
matrix:
HOST:
- x86_64-linux-gnu
- x86-linux-gnu
- arm-linux-gnueabihf
- aarch64-linux-gnu
- mipsel-linux-gnu
- powerpc64-linux-gnu
OPT:
- O0
- O3
steps:
- uses: actions/checkout@v2
- name: Setup
run: |
HOST=${{ matrix.HOST }}
if [ $HOST = 'x86-linux-gnu' ]; then
sudo apt-get update
sudo apt-get install -yqq -o=Dpkg::Use-Pty=0 g++-multilib
elif [ $HOST != 'x86_64-linux-gnu' ]; then
sudo apt-get update
sudo apt-get install -yqq -o=Dpkg::Use-Pty=0 g++-$HOST
fi
- name: Configure
run: |
set -x
HOST=${{ matrix.HOST }}
BUILD=x86_64-linux-gnu
if [ $HOST = 'x86-linux-gnu' ]; then
CFLAGS="-m32"
CXXFLAGS="-m32"
BUILD=x86-linux-gnu
fi
export CFLAGS="$CFLAGS -${{ matrix.OPT }}"
export CXXFLAGS="$CXXFLAGS -${{ matrix.OPT}}"
autoreconf -i
./configure --build=$BUILD --host=$HOST
make -j8
- name: Test (native)
if: ${{ success() && (matrix.HOST == 'x86_64-linux-gnu' || matrix.HOST == 'x86-linux-gnu') }}
run: |
set -x
sudo bash -c 'echo core.%p.%p > /proc/sys/kernel/core_pattern'
ulimit -c unlimited
make check -j32
- name: Show Logs
if: ${{ failure() }}
run: |
cat tests/test-suite.log 2>/dev/null

build-cross-qemu:
runs-on: ubuntu-latest
name: build-cross-qemu-${{ matrix.config.target }}

strategy:
fail-fast: false
matrix:
config:
- {target: arm, toolchain: g++-arm-linux-gnueabi, host: arm-linux-gnueabi, qemu: arm }
- {target: armhf, toolchain: g++-arm-linux-gnueabihf, host: arm-linux-gnueabihf, qemu: arm }
- {target: aarch64, toolchain: g++-aarch64-linux-gnu, host: aarch64-linux-gnu, qemu: aarch64 }
- {target: riscv64, toolchain: g++-riscv64-linux-gnu, host: riscv64-linux-gnu, qemu: riscv64 }
- {target: ppc, toolchain: g++-powerpc-linux-gnu, host: powerpc-linux-gnu, qemu: ppc }
- {target: ppc64, toolchain: g++-powerpc64-linux-gnu, host: powerpc64-linux-gnu, qemu: ppc64 }
- {target: ppc64le, toolchain: g++-powerpc64le-linux-gnu, host: powerpc64le-linux-gnu, qemu: ppc64le }
- {target: s390x, toolchain: g++-s390x-linux-gnu, host: s390x-linux-gnu, qemu: s390x }
- {target: mips, toolchain: g++-mips-linux-gnu, host: mips-linux-gnu, qemu: mips }
- {target: mips64, toolchain: g++-mips64-linux-gnuabi64, host: mips64-linux-gnuabi64, qemu: mips64 }
- {target: mipsel, toolchain: g++-mipsel-linux-gnu, host: mipsel-linux-gnu, qemu: mipsel }
- {target: mips64el,toolchain: g++-mips64el-linux-gnuabi64, host: mips64el-linux-gnuabi64,qemu: mips64el }

steps:
- uses: actions/checkout@v2
- name: Install QEMU
# this ensure install latest qemu on ubuntu, apt get version is old
env:
QEMU_SRC: "http://archive.ubuntu.com/ubuntu/pool/universe/q/qemu"
QEMU_VER: "qemu-user-static_4\\.2-.*_amd64.deb$"
run: |
DEB=`curl -s $QEMU_SRC/ | grep -o -E 'href="([^"#]+)"' | cut -d'"' -f2 | grep $QEMU_VER | tail -1`
wget $QEMU_SRC/$DEB
sudo dpkg -i $DEB
- name: Install ${{ matrix.config.toolchain }}
run: |
sudo apt update
sudo apt install ${{ matrix.config.toolchain }} -y
- name: Configure with ${{ matrix.config.cc }}
run: |
set -x
autoreconf -i
BUILD=x86_64-linux-gnu
./configure --build=$BUILD --host=${{ matrix.config.host }} --with-testdriver=$(pwd)/scripts/qemu-test-driver
- name: Build
run: |
make -j8
- name: Test
run: |
set -x
sudo bash -c 'echo core.%p.%p > /proc/sys/kernel/core_pattern'
ulimit -c unlimited
CROSS_LIB="/usr/${{ matrix.config.host }}"
make -j8 check LOG_DRIVER_FLAGS="--qemu-arch ${{ matrix.config.qemu }}" LDFLAGS="-L$CROSS_LIB/lib -static" QEMU_LD_PREFIX="$CROSS_LIB"
- name: Show Logs
if: ${{ failure() }}
run: |
cat tests/test-suite.log 2>/dev/null
37 changes: 37 additions & 0 deletions src/native/external/libunwind/.github/workflows/CI-win.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
name: CI - Windows

on:
pull_request:
paths:
- '**'
- '!README'
- '!INSTALL'
- '!NEWS'
- '!doc/**'
- '!.**'
- '.github/workflows/CI-win.yml'
push:
branches:
- v[0-9].*
- master

jobs:
build-windows:
runs-on: windows-${{ matrix.config.server }}
name: build ${{ matrix.config.TARGET }}
strategy:
fail-fast: false
matrix:
config:
- {toolchain: Visual Studio 17 2022, arch: Win32, server: 2022, TARGET: arm-linux-gnueabihf}
- {toolchain: Visual Studio 17 2022, arch: x64, server: 2022, TARGET: aarch64-linux-gnu}
- {toolchain: Visual Studio 17 2022, arch: x64, server: 2022, TARGET: x86_64-linux-gnu}
steps:
- uses: actions/checkout@v2
- name: Build
shell: cmd
env:
TARGET: ${{ matrix.config.TARGET }}
run: |
cmake -G "${{ matrix.config.toolchain }}" -A ${{ matrix.config.arch }} -S . -B bin/windows-${{ matrix.config.arch }}/${{ matrix.config.TARGET }}
cmake --build bin/windows-${{ matrix.config.arch }}/${{ matrix.config.TARGET }}
84 changes: 0 additions & 84 deletions src/native/external/libunwind/.travis.yml

This file was deleted.

1 change: 1 addition & 0 deletions src/native/external/libunwind/Makefile.am
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
ACLOCAL_AMFLAGS = -I m4
include_HEADERS = include/libunwind-dynamic.h

if BUILD_PTRACE
Expand Down
26 changes: 13 additions & 13 deletions src/native/external/libunwind/NEWS
Original file line number Diff line number Diff line change
Expand Up @@ -28,11 +28,11 @@

* News for v1.0:

** Fast unwind (rbp, rsp, rip only) on x86_64 with a fallback to
** Fast unwind (rbp, rsp, rip only) on x86_64 with a fallback to
slow code path (Lassi Tuura)
** Improved local and remote unwinding on ARM (Ken Werner)
** Testing, stability and many fixes on x86 (Paul Pluzhnikov)
** FreeBSD port and clean separation of OS specific bits
** FreeBSD port and clean separation of OS specific bits
(Konstantin Belousov)
** Thanks for all the bug reports, contributions and testing!

Expand Down Expand Up @@ -108,15 +108,15 @@
* News for v0.98:

** Update libunwind to be compliant with the updated/expanded
ia64 unwind specificiation by HJ Lu [1]. This is needed for
ia64 unwind specification by HJ Lu [1]. This is needed for
GCC 3.4 compatibility.

[1] http://www.kernel.org/pub/linux/devel/gcc/unwind/

** Initial support for x86-64 has been added courtesy of Max Asbock.
Along with this came a bunch of DWARF2 unwinder fixes.

** A new rountine unw_strerror() has been added courtesy of
** A new routine unw_strerror() has been added courtesy of
Thomas Hallgren.

** Including <libunwind.h> now defines 4 macros that can be used
Expand Down Expand Up @@ -188,40 +188,40 @@
at IBM and it is expected that this support will be merged into the
official tree soon.


* News for v0.96:

** _Unwind_*() routines defined by the C++ ABI are now included in
libunwind.


* News for v0.95:

** Bigger, better, faster, or so the theory goes.


* News for v0.93:

** More bug-fixes & improved HP-UX support.


* News for v0.92:

** Bug-fix release. IA-64 unwinder can now be built with Intel compiler (ECC).


* News for v0.91:

** Lots of documentation updates
** Some portability fixes.


* News for v0.9:

** The libunwind API is mostly feature-complete at this point (hence the
version jump from v0.2 to v0.9).


* News for v0.2:

** Automated configuration/build with autoconf and automake.
Expand All @@ -236,12 +236,12 @@
e.g., useful for building a debugger that can support multiple targets
such as x86, ia64, etc.)


* News for v0.1:

** Added support for exception handling.


* News for v0.0:

** It's a brand new package.
Loading