openocd: Enable aarch64 builds

This commit is contained in:
Hernan Martinez 2025-04-17 20:54:40 -06:00
parent 04923e67fa
commit ac8ad89eb5
No known key found for this signature in database
GPG Key ID: 71A1D8ABDDEB6807
2 changed files with 52 additions and 8 deletions

View File

@ -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

View File

@ -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
}