package/tcf-agent: fix uClibc-ng compile on ARM

When a shared build is used, we can use getauxval and no ARM only
instuctions are in use.

When a static build is used, we need to override CFLAGS to use
arm instructions, as uClibc-ng only supports getauxval for shared case.

Fixes:
 - http://autobuild.buildroot.net/results/3b5/3b5c5519a3e5ee490308bc1a1b9579ce13417235

Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
Signed-off-by: Arnout Vandecappelle <arnout@mind.be>
This commit is contained in:
Waldemar Brodkorb
2023-08-17 16:51:38 +02:00
committed by Arnout Vandecappelle
parent a532772468
commit 408352207c
2 changed files with 34 additions and 0 deletions

View File

@@ -0,0 +1,27 @@
From a78007cd139e1dea3d893f5fe1d1c3a47503e6a2 Mon Sep 17 00:00:00 2001
From: Waldemar Brodkorb <wbx@openadk.org>
Date: Sat, 12 Aug 2023 18:27:02 +0200
Subject: [PATCH] fix uClibc-ng compile
Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
Upstream: N/A only mail available
---
agent/machine/arm/tcf/cpudefs-mdep.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/agent/machine/arm/tcf/cpudefs-mdep.c b/agent/machine/arm/tcf/cpudefs-mdep.c
index 051631a0..7c4fbf3e 100644
--- a/agent/machine/arm/tcf/cpudefs-mdep.c
+++ b/agent/machine/arm/tcf/cpudefs-mdep.c
@@ -21,7 +21,7 @@
#ifndef USE_getauxval
# include <features.h>
-# define USE_getauxval (defined(__GLIBC__) && (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 16)))
+# define USE_getauxval (defined(__GLIBC__) && (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 16)) || (defined(__UCLIBC__) && defined(__HAVE_SHARED__)))
#endif
#include <stddef.h>
--
2.39.2

View File

@@ -20,6 +20,13 @@ TCF_AGENT_CONF_OPTS = \
-DBUILD_SHARED_LIBS=OFF \
-DTCF_MACHINE=$(call qstrip,$(BR2_PACKAGE_TCF_AGENT_ARCH))
# tcf-agent uses some arm instructions in case getauxval is not available.
# unfortunately the uClibc-ng implementation of getauxval uses some features
# of ld.so to work
ifeq ($(BR2_STATIC_LIBS)$(BR2_TOOLCHAIN_USES_UCLIBC)$(BR2_ARM_INSTRUCTIONS_THUMB),yyy)
TCF_AGENT_CONF_OPTS += -DCMAKE_C_FLAGS="$(TARGET_CFLAGS) -marm"
endif
define TCF_AGENT_INSTALL_INIT_SYSTEMD
$(INSTALL) -D -m 644 package/tcf-agent/tcf-agent.service \
$(TARGET_DIR)/usr/lib/systemd/system/tcf-agent.service