diff options
Diffstat (limited to 'dev-util')
| -rw-r--r-- | dev-util/android-tools/android-tools-33.0.3-r1.ebuild | 6 | ||||
| -rw-r--r-- | dev-util/android-tools/files/android-tools-33.0.3-adb-0023-Update-usage-of-usbdevfs_urb-to-match-new-kernel-UAP.patch | 120 | ||||
| -rw-r--r-- | dev-util/intel-graphics-compiler/intel-graphics-compiler-1.0.12260.1-r1.ebuild (renamed from dev-util/intel-graphics-compiler/intel-graphics-compiler-1.0.12260.1.ebuild) | 2 | ||||
| -rw-r--r-- | dev-util/lldb/Manifest | 1 | ||||
| -rw-r--r-- | dev-util/lldb/lldb-16.0.0_pre20221016.ebuild | 115 |
5 files changed, 243 insertions, 1 deletions
diff --git a/dev-util/android-tools/android-tools-33.0.3-r1.ebuild b/dev-util/android-tools/android-tools-33.0.3-r1.ebuild index ccd60e4a35a2..028b89fe9690 100644 --- a/dev-util/android-tools/android-tools-33.0.3-r1.ebuild +++ b/dev-util/android-tools/android-tools-33.0.3-r1.ebuild @@ -45,10 +45,16 @@ DOCS=() src_prepare() { eapply "${DISTDIR}/${PN}-31.0.3-no-gtest.patch" + cd "${S}/vendor/core" || die eapply "${S}/patches/core/0011-Remove-the-useless-dependency-on-gtest.patch" + cd "${S}/vendor/libziparchive" || die eapply "${S}/patches/libziparchive/0004-Remove-the-useless-dependency-on-gtest.patch" + + cd "${S}/vendor/adb" || die + eapply "${FILESDIR}/${P}-adb-0023-Update-usage-of-usbdevfs_urb-to-match-new-kernel-UAP.patch" + cd "${S}" rm -r patches || die cmake_src_prepare diff --git a/dev-util/android-tools/files/android-tools-33.0.3-adb-0023-Update-usage-of-usbdevfs_urb-to-match-new-kernel-UAP.patch b/dev-util/android-tools/files/android-tools-33.0.3-adb-0023-Update-usage-of-usbdevfs_urb-to-match-new-kernel-UAP.patch new file mode 100644 index 000000000000..25572574d834 --- /dev/null +++ b/dev-util/android-tools/files/android-tools-33.0.3-adb-0023-Update-usage-of-usbdevfs_urb-to-match-new-kernel-UAP.patch @@ -0,0 +1,120 @@ +https://github.com/anatol/android-tools/blob/2f8405a47909861c9359fe4797e7b4a0fba4dc12/patches/adb/0023-Update-usage-of-usbdevfs_urb-to-match-new-kernel-UAP.patch +https://github.com/nmeum/android-tools/issues/74 +https://bugs.gentoo.org/876328 + +From c830c90995fc0877348e2ed9cdeccf9b739138d2 Mon Sep 17 00:00:00 2001 +From: Anatol Pomozov <anatol.pomozov@gmail.com> +Date: Mon, 10 Oct 2022 10:47:57 -0700 +Subject: [PATCH] Update usage of usbdevfs_urb to match new kernel UAPI +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Linux kernel API has been changed by commit 94dfc73e7cf4 ("treewide: uapi: Replace zero-length arrays with flexible-array members") +where zero-length array iso_frame_desc in struct usbdevfs_urb was replaced with a proper flexible-array member. + +Current USB API usage causes a compilation error at Linux 6.0: + +In file included from /home/mae/.cache/kiss/proc/121205/build/android-tools/vendor/adb/client/usb_linux.cpp:28: +/usr/include/linux/usbdevice_fs.h:134:41: error: flexible array member ‘usbdevfs_urb::iso_frame_desc’ not at end of ‘struct usb_handle’ + 134 | struct usbdevfs_iso_packet_desc iso_frame_desc[]; + | ^~~~~~~~~~~~~~ +/home/mae/.cache/kiss/proc/121205/build/android-tools/vendor/adb/client/usb_linux.cpp:76:18: note: next member ‘usbdevfs_urb usb_handle::urb_out’ declared here + 76 | usbdevfs_urb urb_out; + | ^~~~~~~ +/home/mae/.cache/kiss/proc/121205/build/android-tools/vendor/adb/client/usb_linux.cpp:61:8: note: in the definition of ‘struct usb_handle’ + 61 | struct usb_handle { + | ^~~~~~~~~~ + +Fix it by using pointers to a struct with flexible-array members. +Current fix works both with the old and the new API. + +See https://github.com/nmeum/android-tools/issues/74 for more context. + +Tested: built on Linux against kernel 5.19 and 6.0; 'adb shell' over USB +cable +Acked-by: Gustavo A. R. Silva gustavoars@kernel.org +Change-Id: I7f0f7b35d9a3ab980d3520b541b60c7857a6b101 +Signed-off-by: Anatol Pomozov <anatol.pomozov@gmail.com> +--- a/client/usb_linux.cpp ++++ b/client/usb_linux.cpp +@@ -71,8 +71,8 @@ struct usb_handle { + unsigned zero_mask; + unsigned writeable = 1; + +- usbdevfs_urb urb_in; +- usbdevfs_urb urb_out; ++ usbdevfs_urb *urb_in; ++ usbdevfs_urb *urb_out; + + bool urb_in_busy = false; + bool urb_out_busy = false; +@@ -303,7 +303,7 @@ static int usb_bulk_write(usb_handle* h, const void* data, int len) { + std::unique_lock<std::mutex> lock(h->mutex); + D("++ usb_bulk_write ++"); + +- usbdevfs_urb* urb = &h->urb_out; ++ usbdevfs_urb* urb = h->urb_out; + memset(urb, 0, sizeof(*urb)); + urb->type = USBDEVFS_URB_TYPE_BULK; + urb->endpoint = h->ep_out; +@@ -342,7 +342,7 @@ static int usb_bulk_read(usb_handle* h, void* data, int len) { + std::unique_lock<std::mutex> lock(h->mutex); + D("++ usb_bulk_read ++"); + +- usbdevfs_urb* urb = &h->urb_in; ++ usbdevfs_urb* urb = h->urb_in; + memset(urb, 0, sizeof(*urb)); + urb->type = USBDEVFS_URB_TYPE_BULK; + urb->endpoint = h->ep_in; +@@ -387,7 +387,7 @@ static int usb_bulk_read(usb_handle* h, void* data, int len) { + } + D("[ urb @%p status = %d, actual = %d ]", out, out->status, out->actual_length); + +- if (out == &h->urb_in) { ++ if (out == h->urb_in) { + D("[ reap urb - IN complete ]"); + h->urb_in_busy = false; + if (urb->status != 0) { +@@ -396,7 +396,7 @@ static int usb_bulk_read(usb_handle* h, void* data, int len) { + } + return urb->actual_length; + } +- if (out == &h->urb_out) { ++ if (out == h->urb_out) { + D("[ reap urb - OUT compelete ]"); + h->urb_out_busy = false; + h->cv.notify_all(); +@@ -500,10 +500,10 @@ void usb_kick(usb_handle* h) { + ** but this ensures that a reader blocked on REAPURB + ** will get unblocked + */ +- ioctl(h->fd, USBDEVFS_DISCARDURB, &h->urb_in); +- ioctl(h->fd, USBDEVFS_DISCARDURB, &h->urb_out); +- h->urb_in.status = -ENODEV; +- h->urb_out.status = -ENODEV; ++ ioctl(h->fd, USBDEVFS_DISCARDURB, h->urb_in); ++ ioctl(h->fd, USBDEVFS_DISCARDURB, h->urb_out); ++ h->urb_in->status = -ENODEV; ++ h->urb_out->status = -ENODEV; + h->urb_in_busy = false; + h->urb_out_busy = false; + h->cv.notify_all(); +@@ -519,6 +519,8 @@ int usb_close(usb_handle* h) { + + D("-- usb close %p (fd = %d) --", h, h->fd); + ++ delete h->urb_in; ++ delete h->urb_out; + delete h; + + return 0; +@@ -572,6 +574,8 @@ static void register_device(const char* dev_name, const char* dev_path, unsigned + usb->ep_out = ep_out; + usb->zero_mask = zero_mask; + usb->max_packet_size = max_packet_size; ++ usb->urb_in = new usbdevfs_urb; ++ usb->urb_out = new usbdevfs_urb; + + // Initialize mark so we don't get garbage collected after the device scan. + usb->mark = true; diff --git a/dev-util/intel-graphics-compiler/intel-graphics-compiler-1.0.12260.1.ebuild b/dev-util/intel-graphics-compiler/intel-graphics-compiler-1.0.12260.1-r1.ebuild index 31e4f3898830..e5607ddaa35e 100644 --- a/dev-util/intel-graphics-compiler/intel-graphics-compiler-1.0.12260.1.ebuild +++ b/dev-util/intel-graphics-compiler/intel-graphics-compiler-1.0.12260.1-r1.ebuild @@ -24,7 +24,7 @@ IUSE="debug" DEPEND=" dev-libs/opencl-clang:${LLVM_MAX_SLOT}= dev-util/spirv-tools - =sys-devel/lld-${LLVM_MAX_SLOT}* + sys-devel/lld:${LLVM_MAX_SLOT}= sys-devel/llvm:${LLVM_MAX_SLOT}= " diff --git a/dev-util/lldb/Manifest b/dev-util/lldb/Manifest index 8a3c2004e9bb..12e49043ca01 100644 --- a/dev-util/lldb/Manifest +++ b/dev-util/lldb/Manifest @@ -1,5 +1,6 @@ DIST llvm-project-14.0.6.src.tar.xz 105618228 BLAKE2B ee67c5407df8cef493b9c0004f15e428f22a536a17e5f4e3eb29a003b8a8ec0abe0fa3e072591161d5f30ef7d8867c1ce34d1b341ad858e93c00263499941a99 SHA512 6fc6eeb60fac698702d1aac495fc0161eb7216a1f8db2020af8fccec5837831f7cc20dc2a169bf4f0b5f520748280b4a86621f3697d622aa58faaa45dbfaad13 DIST llvm-project-14.0.6.src.tar.xz.sig 566 BLAKE2B cb658ad43d8ab6c43a5773aedadf0569c97b5ee4b1bd58eceb10e1879a30880c741c3d66bedd462c892309b688fb7b2673115a62d1f74d71ee375a578de9547f SHA512 b4a7b368532a7a4a24376cfa7db8f6d3478f6d4446474342fc00b474ecf466330cd0f16783209263c4c72d5fc7ddedfb11b95578842e700cfb7ee0bb34cc95d6 +DIST llvm-project-14f996dca8a2b5b17d6917528bfd9ee71ba6192a.tar.gz 169054148 BLAKE2B a23af6658a6ea8a7cb4272faef151937da229e39383ec068d7ef81e72a25d2a46dc2a86255a7f1148b7385b339d1c17e62f627df834d8eccc39be8921575f88d SHA512 e719d296016e7af718d022424c337a5df8d7124fdb49b9f219ab2a5dc592e6a59f6c09064775ea9349bcf4eed9d72214abb648de649ab872174c35635c945c04 DIST llvm-project-15.0.2.src.tar.xz 112071864 BLAKE2B 96f2884d6c1007260d71e5dd41951eed029e8f50ff78f3c90f7194df13e1d4fb80ab7705c51c45a3e6b2a7714a98d9c5919fc7064d1d5f7c675e65b9b4229b65 SHA512 a0e815369c15bb4f8e8aa0fede29c3d557fcc5c8f2b39d457c03f1ef1d860082a41027238571b2aee9a158a87eb118deb08dc2ba94ce750320837a84e9908b8c DIST llvm-project-15.0.2.src.tar.xz.sig 438 BLAKE2B 37a3a7fbc2d74db9060e85f04e159b475cf818c95a6fe2e9f5f038eb990f414d94833ecac2f9c826825a69b752876399e37e70e6934def06363f7ccb18be033a SHA512 cfe3bc400a64536ad9181c2ede7227a0953a8632fdc777d1ea1d9225c1fc4e699d90ce0b99e057ee5b87c1272d5810c4b52fb0cac167ddd2aad88f1f3ef46ee8 DIST llvm-project-ebb258d3b0785f6dcc65e1f277d0690891ddc94d.tar.gz 168823463 BLAKE2B 111afe0f6ba6cef28c3d0162c9c650d15239f981949030768780ebe308418346d0ad367e0e58417832ae43e57b27bccaf56415f81e8221c6c5e78d1113f5617b SHA512 80351d7eeac77a15bf5613b289c71d718ecaccd8a6a4ea6736ed8bfc15c8154099c771564f99ea6c8b491f99bf1ca3a45fac977d638f6a03d7f7b42ba522fa20 diff --git a/dev-util/lldb/lldb-16.0.0_pre20221016.ebuild b/dev-util/lldb/lldb-16.0.0_pre20221016.ebuild new file mode 100644 index 000000000000..8e5a4e94e162 --- /dev/null +++ b/dev-util/lldb/lldb-16.0.0_pre20221016.ebuild @@ -0,0 +1,115 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{7,8,9,10} ) +inherit cmake llvm llvm.org python-single-r1 + +DESCRIPTION="The LLVM debugger" +HOMEPAGE="https://llvm.org/" + +LICENSE="Apache-2.0-with-LLVM-exceptions UoI-NCSA" +SLOT="0/${LLVM_SOABI}" +KEYWORDS="" +IUSE="debug +libedit lzma ncurses +python test +xml" +RESTRICT="test" +REQUIRED_USE=${PYTHON_REQUIRED_USE} + +DEPEND=" + libedit? ( dev-libs/libedit:0= ) + lzma? ( app-arch/xz-utils:= ) + ncurses? ( >=sys-libs/ncurses-5.9-r3:0= ) + xml? ( dev-libs/libxml2:= ) + ~sys-devel/clang-${PV} + ~sys-devel/llvm-${PV} +" +RDEPEND=" + ${DEPEND} + python? ( + $(python_gen_cond_dep ' + dev-python/six[${PYTHON_USEDEP}] + ') + ${PYTHON_DEPS} + ) +" +BDEPEND=" + ${PYTHON_DEPS} + >=dev-util/cmake-3.16 + python? ( + >=dev-lang/swig-3.0.11 + $(python_gen_cond_dep ' + dev-python/six[${PYTHON_USEDEP}] + ') + ) + test? ( + $(python_gen_cond_dep " + ~dev-python/lit-${PV}[\${PYTHON_USEDEP}] + dev-python/psutil[\${PYTHON_USEDEP}] + ") + sys-devel/lld + ) +" + +LLVM_COMPONENTS=( lldb cmake ) +LLVM_TEST_COMPONENTS=( llvm/lib/Testing/Support llvm/utils/unittest ) +llvm.org_set_globals + +pkg_setup() { + LLVM_MAX_SLOT=${LLVM_MAJOR} llvm_pkg_setup + python-single-r1_pkg_setup +} + +src_configure() { + # LLVM_ENABLE_ASSERTIONS=NO does not guarantee this for us, #614844 + use debug || local -x CPPFLAGS="${CPPFLAGS} -DNDEBUG" + + local mycmakeargs=( + -DLLDB_ENABLE_CURSES=$(usex ncurses) + -DLLDB_ENABLE_LIBEDIT=$(usex libedit) + -DLLDB_ENABLE_PYTHON=$(usex python) + -DLLDB_ENABLE_LZMA=$(usex lzma) + -DLLDB_ENABLE_LIBXML2=$(usex xml) + -DLLDB_USE_SYSTEM_SIX=1 + -DLLVM_ENABLE_TERMINFO=$(usex ncurses) + + -DLLDB_INCLUDE_TESTS=$(usex test) + + -DCLANG_LINK_CLANG_DYLIB=ON + # TODO: fix upstream to detect this properly + -DHAVE_LIBDL=ON + -DHAVE_LIBPTHREAD=ON + + # normally we'd have to set LLVM_ENABLE_TERMINFO, HAVE_TERMINFO + # and TERMINFO_LIBS... so just force FindCurses.cmake to use + # ncurses with complete library set (including autodetection + # of -ltinfo) + -DCURSES_NEED_NCURSES=ON + + -DLLDB_EXTERNAL_CLANG_RESOURCE_DIR="${BROOT}/usr/lib/clang/${LLVM_VERSION}" + + -DPython3_EXECUTABLE="${PYTHON}" + ) + use test && mycmakeargs+=( + -DLLVM_BUILD_TESTS=$(usex test) + -DLLVM_MAIN_SRC_DIR="${WORKDIR}/llvm" + -DLLVM_EXTERNAL_LIT="${EPREFIX}/usr/bin/lit" + -DLLVM_LIT_ARGS="$(get_lit_flags)" + ) + + cmake_src_configure +} + +src_test() { + local -x LIT_PRESERVES_TMP=1 + cmake_build check-lldb-{shell,unit} + # failures + hangs + #use python && cmake_build check-lldb-api +} + +src_install() { + cmake_src_install + find "${D}" -name '*.a' -delete || die + + use python && python_optimize +} |
