[PATCH][AArch32] Fix the build for M class semihosting
Tamar Christina <[email protected]>
| Newsgroups | gmane.comp.lib.newlib |
|---|---|
| Message-ID | <DB6PR0802MB23094BE16F74E11BF188F735FF690@DB6PR0802MB2309.eurprd08.prod.outlook.com> |
Hi All, The M class cores don't support Semihosting v2 mixed mode, but we were accidentally using the new immediates for it. My last patch changed the immediates which broke the build because doing a full multi-lib build including M architectures now results in an assembler error instead of silently doing the wrong thing. This fixes the issue by changing the defines around such that According to the specs any M class build uses the normal semihosting instructions always. Regtested on arm-none-eabi and no issues, using a build with m class multilibs too. Ok for master? PS, I don't have commit rights so if OK can someone commit for me? Thanks, Tamar --
0001-AArch32-Fix-the-build-for-M-class-semihosting.patch
(text/x-diff, 1.4 KB)
From fa0b6a2ccdc65c4b32d7b50367ff6e9714ab4ac0 Mon Sep 17 00:00:00 2001 From: Tamar Christina <[email protected]> Date: Fri, 8 Feb 2019 17:13:24 +0000 Subject: [PATCH] AArch32: Fix the build for M class semihosting The M class cores don't support Semihosting v2 mixed mode, but we were accidentally using the new immediates for it. My last patch changed the immediates which broke the build because doing a full multi-lib build including M architectures now results in an assembler error instead of silently doing the wrong thing. This fixes the issue by changing the defines around such that According to the specs any M class build uses the normal semihosting instructions. Regtested on arm-none-eabi and no issues, using a build with m class multilibs too. --- libgloss/arm/swi.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/libgloss/arm/swi.h b/libgloss/arm/swi.h index 8f50ee7d9b..267d164d22 100644 --- a/libgloss/arm/swi.h +++ b/libgloss/arm/swi.h @@ -30,7 +30,9 @@ /* Now the SWI numbers and reason codes for RDI (Angel) monitors. */ -#if defined (SEMIHOST_V2) && defined (SEMIHOST_V2_MIXED_MODE) +#if defined (SEMIHOST_V2) \ + && defined (SEMIHOST_V2_MIXED_MODE) \ + && !defined (THUMB_VXM) #define AngelSWI_ARM 0xE10F0070 /* HLT #0xF000 A32. */ #ifdef __thumb__ #define AngelSWI 0xBABC /* HLT #0x3c T32. */ -- 2.20.1