diff options
author | Simon Reiser | 2020-12-19 23:24:32 +0100 |
---|---|---|
committer | Simon Reiser | 2020-12-19 23:24:32 +0100 |
commit | bfa2a9159797f77a4bab16d86fef6337607d7dee (patch) | |
tree | e9055328fe6d468f4aa28d81815bfa3865b7eb7e | |
download | aur-java11-openjdk-hsdis.tar.gz |
v11.0.8
-rw-r--r-- | .SRCINFO | 19 | ||||
-rw-r--r-- | .gitignore | 6 | ||||
-rw-r--r-- | PKGBUILD | 82 | ||||
-rw-r--r-- | binutils-compat.patch | 12 | ||||
-rw-r--r-- | binutils.patch | 25 |
5 files changed, 144 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO new file mode 100644 index 000000000000..ba796549e584 --- /dev/null +++ b/.SRCINFO @@ -0,0 +1,19 @@ +pkgbase = java11-openjdk-hsdis + pkgdesc = Disassembler for HotSpot + pkgver = 11.0.8 + pkgrel = 1 + url = http://openjdk.java.net/ + arch = i686 + arch = x86_64 + license = GPL2 + source = openjdk-jdk-11.0.8+10.tar.gz::http://hg.openjdk.java.net/jdk-updates/jdk11u/archive/jdk-11.0.8+10.tar.gz + source = http://ftp.gnu.org/gnu/binutils/binutils-2.34.tar.bz2 + source = binutils-compat.patch + source = binutils.patch + sha256sums = 7fc124b5e20428cd5df42d78b001abc663558b0881e66a5def0892b98265b6e9 + sha256sums = 89f010078b6cf69c23c27897d686055ab89b198dddf819efb0a4f2c38a0b36e6 + sha256sums = 3b1bd383cdfef4a6cfd9ed0dafeeee956670ad7fb797323f72e56bb7bc0cebaa + sha256sums = e3a91a6f0183a6c554d04f9bca230635393bfcd4e4f87cb1a0b73f86505bbbf0 + +pkgname = java11-openjdk-hsdis + diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000000..135c48a4ff2f --- /dev/null +++ b/.gitignore @@ -0,0 +1,6 @@ +/*.tar.bz2 +/*.tar.gz +/*.tar.xz +/binutils-gdb/ +/pkg/ +/src/ diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 000000000000..7166790c22dc --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,82 @@ +# Maintainer: Danila Kiver <danila.kiver@mail.ru> +# Contributor: Tavian Barnes <tavianator@tavianator.com> + +pkgname=java11-openjdk-hsdis +_java_major=11 +_java_minor=0 +_java_patch=8 +_java_build=10 +_binutils_ver=2.34 +pkgver=${_java_major}.${_java_minor}.${_java_patch} +_repo_ver=jdk-${_java_major}.${_java_minor}.${_java_patch}+${_java_build} +pkgrel=1 +pkgdesc="Disassembler for HotSpot" +arch=('i686' 'x86_64') +url='http://openjdk.java.net/' +license=('GPL2') +_url_src=http://hg.openjdk.java.net/jdk-updates/jdk11u +source=(openjdk-${_repo_ver}.tar.gz::${_url_src}/archive/${_repo_ver}.tar.gz + http://ftp.gnu.org/gnu/binutils/binutils-${_binutils_ver}.tar.bz2 + binutils-compat.patch + binutils.patch) +sha256sums=('7fc124b5e20428cd5df42d78b001abc663558b0881e66a5def0892b98265b6e9' + '89f010078b6cf69c23c27897d686055ab89b198dddf819efb0a4f2c38a0b36e6' + '3b1bd383cdfef4a6cfd9ed0dafeeee956670ad7fb797323f72e56bb7bc0cebaa' + 'e3a91a6f0183a6c554d04f9bca230635393bfcd4e4f87cb1a0b73f86505bbbf0') + +prepare() { + cd "${srcdir}/binutils-${_binutils_ver}" + + # hack! - libiberty configure tests for header files using "$CPP $CPPFLAGS" + sed -i "/ac_cpp=/s/\$CPPFLAGS/\$CPPFLAGS -O2/" libiberty/configure + + cd "${srcdir}/jdk11u-${_repo_ver}/src/utils/hsdis" + mkdir -p build + ln -sf "${srcdir}/binutils-${_binutils_ver}" build/binutils + + # The upstream is currently stuck with binutils 2.31. This patch provides the + # compatibility with least recent binutils versions. Remove it once the upstream + # updates the binutils version in use. + cd "${srcdir}/jdk11u-${_repo_ver}" + patch -N -p 1 -i "${srcdir}/binutils-compat.patch" + patch -N -p 1 -i "${srcdir}/binutils.patch" +} + +build() { + cd "${srcdir}/jdk11u-${_repo_ver}/src/utils/hsdis" + + if [ "$CARCH" = "x86_64" ]; then + mkdir -p build/linux-amd64 + cd build/linux-amd64 + else + mkdir -p build/linux-i586 + cd build/linux-i586 + fi + + ../binutils/configure --prefix=/usr \ + --with-lib-path=/usr/lib:/usr/local/lib \ + --with-bugurl=https://bugs.archlinux.org/ \ + --enable-threads --enable-shared --with-pic \ + --enable-ld=default --enable-gold --enable-plugins \ + --disable-werror --disable-gdb --disable-nls \ + CFLAGS="$CFLAGS -fPIC" + make all-opcodes + + cd ../.. + + if [ "$CARCH" = "x86_64" ]; then + make all LP64=1 + else + make all + fi +} + +package() { + cd "${srcdir}/jdk11u-${_repo_ver}/src/utils/hsdis" + + if [ "$CARCH" = "x86_64" ]; then + install -D -m755 build/linux-amd64/hsdis-amd64.so "${pkgdir}/usr/lib/jvm/java-11-openjdk/lib/hsdis-amd64.so" + else + install -D -m755 build/linux-i586/hsdis-i586.so "${pkgdir}/usr/lib/jvm/java-11-openjdk/lib/hsdis-i586.so" + fi +} diff --git a/binutils-compat.patch b/binutils-compat.patch new file mode 100644 index 000000000000..edb846f2a690 --- /dev/null +++ b/binutils-compat.patch @@ -0,0 +1,12 @@ +diff --unified --color --unified --recursive --text jdk14u-jdk-14.0.1+7/src/utils/hsdis/hsdis.c jdk14u-jdk-14.0.1+7-new/src/utils/hsdis/hsdis.c +--- jdk14u-jdk-14.0.1+7/src/utils/hsdis/hsdis.c 2019-11-28 23:32:27.000000000 +0300 ++++ jdk14u-jdk-14.0.1+7-new/src/utils/hsdis/hsdis.c 2020-05-30 03:14:15.355394159 +0300 +@@ -568,7 +568,7 @@ + dinfo->arch = bfd_get_arch(abfd); + dinfo->mach = bfd_get_mach(abfd); + dinfo->disassembler_options = disassembler_options; +- dinfo->octets_per_byte = bfd_octets_per_byte (abfd); ++ dinfo->octets_per_byte = bfd_octets_per_byte (abfd, NULL); + dinfo->skip_zeroes = sizeof(void*) * 2; + dinfo->skip_zeroes_at_end = sizeof(void*)-1; + dinfo->disassembler_needs_relocs = FALSE; diff --git a/binutils.patch b/binutils.patch new file mode 100644 index 000000000000..deaa403db006 --- /dev/null +++ b/binutils.patch @@ -0,0 +1,25 @@ +--- a/src/utils/hsdis/hsdis.c 2020-12-19 23:13:53.890379727 +0100 ++++ a/src/utils/hsdis/hsdis.c 2020-12-19 23:16:27.550368667 +0100 +@@ -30,6 +30,7 @@ + #include <config.h> /* required by bfd.h */ + #include <libiberty.h> + #include <bfd.h> ++#include <bfdver.h> + #include <dis-asm.h> + #include <inttypes.h> + #include <string.h> +@@ -313,7 +314,13 @@ + + /* Finish linking together the various callback blocks. */ + app_data->dinfo.application_data = (void*) app_data; +- app_data->dfn = disassembler(native_bfd); ++ app_data->dfn = disassembler( ++#if BFD_VERSION >= 229000000 ++ bfd_get_arch(native_bfd), ++ bfd_big_endian(native_bfd), ++ bfd_get_mach(native_bfd), ++#endif ++ native_bfd); + app_data->dinfo.print_address_func = hsdis_print_address_func; + app_data->dinfo.read_memory_func = hsdis_read_memory_func; + |