diff --git a/srcpkgs/libgpg-error/template b/srcpkgs/libgpg-error/template
index 800b6bc789..700e82daa2 100644
--- a/srcpkgs/libgpg-error/template
+++ b/srcpkgs/libgpg-error/template
@@ -1,7 +1,7 @@
 # Template file for 'libgpg-error'
 pkgname=libgpg-error
 version=1.36
-revision=2
+revision=3
 build_style=gnu-configure
 short_desc="Library for error values used by GnuPG component"
 maintainer="Juan RP <xtraeme@voidlinux.org>"
@@ -10,10 +10,18 @@ homepage="https://www.gnupg.org"
 distfiles="https://www.gnupg.org/ftp/gcrypt/${pkgname}/${pkgname}-${version}.tar.bz2"
 checksum=babd98437208c163175c29453f8681094bcaf92968a15cafb1a276076b33c97c
 
+if [ "$CROSS_BUILD" ]; then
+	hostmakedepends="qemu-user-static"
+fi
+
 post_configure() {
+	local lock_obj_pub=src/syscfg/lock-obj-pub.${XBPS_CROSS_TRIPLET#*-}.h
 	if [ "$CROSS_BUILD" ]; then
-		cp ${FILESDIR}/lock-obj-pub.arm.h \
-			src/syscfg/lock-obj-pub.${XBPS_CROSS_TRIPLET#*-}.h
+		$CC -DHAVE_CONFIG_H -I. -pthread -o gen-posix-lock-obj src/gen-posix-lock-obj.c
+		qemu-${XBPS_TARGET_QEMU_MACHINE}-static -L ${XBPS_CROSS_BASE} \
+			gen-posix-lock-obj > $lock_obj_pub
+		msg_normal "Generated $lock_obj_pub ...\n"
+		cat $lock_obj_pub
 	fi
 }