mirror of
git://git.openwrt.org/openwrt/openwrt.git
synced 2024-12-26 16:42:47 +00:00
iucode-tool: fix host-compile on macos and non-x86 linux
iucode-tool/host is used by intel-microcode to manipulate with microcode.bin file. iucode-tool requires cpuid.h at compile time for autodection feature, but non-x86 build hosts does not have this header file (e.g. ubuntu 20.04 aarch64) or this header generates compile time error (#error macro) (e.g. macos arm64). This patch provides compat cpuid.h to build iucode-tool/host on non-x86 linux hosts and macos. CPU autodectection is not required for intel-microcode package build so compat cpuid.h is ok for OpenWrt purposes. glibc and argp lib are not present in macos so iucode-tool/host build fails. This patch adds argp-standalone/host as build dependency if host os is macos. Generated ucode (intel-microcode package) is exactly the same on Linux x86_64 (Ubuntu 20.04), Linux aarch64 (Ubuntu 20.04) and Darwin arm64 (MacOS 11.6) build hosts. Signed-off-by: Sergey V. Lobanov <sergey@lobanov.in>
This commit is contained in:
parent
64d159cdad
commit
e6a4f30ed7
@ -9,13 +9,14 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=iucode-tool
|
||||
PKG_VERSION:=2.3.1
|
||||
PKG_RELEASE:=1
|
||||
PKG_RELEASE:=2
|
||||
|
||||
PKG_SOURCE:=iucode-tool_$(PKG_VERSION).tar.xz
|
||||
PKG_SOURCE_URL:=https://gitlab.com/iucode-tool/releases/raw/latest
|
||||
PKG_HASH:=12b88efa4d0d95af08db05a50b3dcb217c0eb2bfc67b483779e33d498ddb2f95
|
||||
|
||||
PKG_BUILD_DEPENDS:=USE_UCLIBC:argp-standalone USE_MUSL:argp-standalone
|
||||
HOST_BUILD_DEPENDS:=HOST_OS_MACOS:argp-standalone/host
|
||||
|
||||
PKG_MAINTAINER:=Zoltan HERPAI <wigyori@uid0.hu>
|
||||
PKG_LICENSE:=GPL-2.0
|
||||
@ -41,6 +42,18 @@ define Package/iucode-tool/install
|
||||
$(INSTALL_BIN) $(PKG_BUILD_DIR)/iucode_tool $(1)/usr/bin/
|
||||
endef
|
||||
|
||||
# List of build hosts with working cpuid.h
|
||||
IUT_NATIVE_HOST_OS_ARCH := \
|
||||
linux/x86_64 linux/amd64 linux/i386 linux/i686
|
||||
|
||||
IUT_HOST_OS_ARCH := $(call tolower,$(HOST_OS))/$(HOST_ARCH)
|
||||
|
||||
# Use cpuid.h compat header if build host does not have working cpuid.h
|
||||
ifeq ($(filter $(IUT_HOST_OS_ARCH),$(IUT_NATIVE_HOST_OS_ARCH)),)
|
||||
HOST_CFLAGS += \
|
||||
-I$(HOST_BUILD_DIR)/cpuid-compat
|
||||
endif
|
||||
|
||||
define Host/Install
|
||||
$(INSTALL_BIN) $(HOST_BUILD_DIR)/iucode_tool $(STAGING_DIR_HOST)/bin/iucode_tool
|
||||
endef
|
||||
|
@ -0,0 +1,31 @@
|
||||
From a21e75da32c0016f1575ea29775565934a67660d Mon Sep 17 00:00:00 2001
|
||||
From: "Sergey V. Lobanov" <sergey@lobanov.in>
|
||||
Date: Sat, 5 Feb 2022 13:10:23 +0300
|
||||
Subject: [PATCH] Add cpuid compatibility header to build on non-x86 hosts
|
||||
|
||||
Signed-off-by: Sergey V. Lobanov <sergey@lobanov.in>
|
||||
---
|
||||
cpuid-compat/cpuid.h | 17 +++++++++++++++++
|
||||
1 file changed, 17 insertions(+)
|
||||
create mode 100644 cpuid-compat/cpuid.h
|
||||
|
||||
--- /dev/null
|
||||
+++ b/cpuid-compat/cpuid.h
|
||||
@@ -0,0 +1,17 @@
|
||||
+// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
+/*
|
||||
+ * cpuid compatibility header to build iucode-tool on non-x86 hosts
|
||||
+ *
|
||||
+ * Copyright (C) 2022 Sergey V. Lobanov <sergey@lobanov.in>
|
||||
+ */
|
||||
+
|
||||
+#ifdef __APPLE__
|
||||
+# include <limits.h>
|
||||
+#endif
|
||||
+
|
||||
+static __inline int __get_cpuid (unsigned int leaf,
|
||||
+ unsigned int *eax, unsigned int *ebx,
|
||||
+ unsigned int *ecx, unsigned int *edx)
|
||||
+{
|
||||
+ return 0;
|
||||
+}
|
Loading…
Reference in New Issue
Block a user