From ac8ad89eb58d5396148a668663597b14e1372b22 Mon Sep 17 00:00:00 2001 From: Hernan Martinez Date: Thu, 17 Apr 2025 20:54:40 -0600 Subject: [PATCH] openocd: Enable aarch64 builds --- .../001-aarch64-no-parport.patch | 20 ++++++++++ mingw-w64-openocd/PKGBUILD | 40 +++++++++++++++---- 2 files changed, 52 insertions(+), 8 deletions(-) create mode 100644 mingw-w64-openocd/001-aarch64-no-parport.patch diff --git a/mingw-w64-openocd/001-aarch64-no-parport.patch b/mingw-w64-openocd/001-aarch64-no-parport.patch new file mode 100644 index 0000000000..8f4c169ccf --- /dev/null +++ b/mingw-w64-openocd/001-aarch64-no-parport.patch @@ -0,0 +1,20 @@ +diff -bur openocd-0.12.0-o/src/helper/replacements.h openocd-0.12.0/src/helper/replacements.h +--- openocd-0.12.0-o/src/helper/replacements.h 2025-04-17 20:15:14.086226500 -0600 ++++ openocd-0.12.0/src/helper/replacements.h 2025-04-17 20:39:35.602843900 -0600 +@@ -142,6 +142,8 @@ + #endif + + #if IS_MINGW == 1 ++ ++#ifndef __aarch64__ + static inline unsigned char inb(unsigned short int port) + { + unsigned char _v; +@@ -153,6 +155,7 @@ + { + __asm__ __volatile__ ("outb %b0,%w1" : : "a" (value), "Nd" (port)); + } ++#endif // __aarch64__ + + /* mingw does not have ffs, so use gcc builtin types */ + #define ffs __builtin_ffs diff --git a/mingw-w64-openocd/PKGBUILD b/mingw-w64-openocd/PKGBUILD index 0928b2e096..5411cab668 100644 --- a/mingw-w64-openocd/PKGBUILD +++ b/mingw-w64-openocd/PKGBUILD @@ -6,10 +6,10 @@ _realname=openocd pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" pkgver=0.12.0 -pkgrel=3 +pkgrel=4 pkgdesc="OpenOCD - Open On-Chip Debugger (mingw-w64)" arch=('any') -mingw_arch=('mingw64' 'ucrt64' 'clang64') +mingw_arch=('mingw64' 'ucrt64' 'clang64' 'clangarm64') url="https://openocd.org/" license=("spdx:GPL-2.0-or-later") depends=("${MINGW_PACKAGE_PREFIX}-hidapi" @@ -20,12 +20,39 @@ depends=("${MINGW_PACKAGE_PREFIX}-hidapi" makedepends=("${MINGW_PACKAGE_PREFIX}-cc" "${MINGW_PACKAGE_PREFIX}-libtool" "${MINGW_PACKAGE_PREFIX}-pkgconf") -source=("https://downloads.sourceforge.net/sourceforge/${_realname}/${_realname}-${pkgver}.tar.bz2") -sha256sums=("af254788be98861f2bd9103fe6e60a774ec96a8c374744eef9197f6043075afa") +source=("https://downloads.sourceforge.net/sourceforge/${_realname}/${_realname}-${pkgver}.tar.bz2" + "001-aarch64-no-parport.patch") +sha256sums=('af254788be98861f2bd9103fe6e60a774ec96a8c374744eef9197f6043075afa' + 'd9a484624ce70cd831757cae5ae18d179261777f09a3b033a498e40f0fde50fc') + +apply_patch_with_msg() { + for _patch in "$@" + do + msg2 "Applying ${_patch}" + patch -Nbp1 -i "${srcdir}/${_patch}" + done +} + +prepare() { + + cd "${srcdir}/${_realname}-${pkgver}" + apply_patch_with_msg \ + 001-aarch64-no-parport.patch +} build() { cd ${_realname}-${pkgver} + declare -a _extra_config + + # On ARM64 do not build the drivers that require Parallel Port access + if [[ ${CARCH} != aarch64 ]]; then + _extra_config+=("--enable-amtjtagaccel") + _extra_config+=("--enable-parport") + _extra_config+=("--enable-parport-giveio") + _extra_config+=("--enable-gw16012") + fi + ./configure \ --prefix=${MINGW_PREFIX} \ --build=${MINGW_CHOST} \ @@ -35,10 +62,7 @@ build() { --enable-dummy \ --enable-jtag_vpi \ --enable-remote-bitbang \ - --enable-amtjtagaccel \ - --enable-gw16012 \ - --enable-parport \ - --enable-parport-giveio + "${_extra_config[@]}" \ make }