• R/O
  • HTTP
  • SSH
  • HTTPS

Commit

Tags
Keine Tags

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

Commit MetaInfo

Revision01961b12bc71d6eb4d9bda3632d73bb6764b8e85 (tree)
Zeit2022-07-20 18:47:17
AutorVladimir Murzin <vladimir.murzin@arm....>
CommiterWaldemar Brodkorb

Log Message

linuxthread/arm: Unlock ldrex/strex varsion of testandset for ARM_ARCH >= 7

Thomas has repored failure building ARM 32-bit systems for ARMv8 cores

CC libpthread/linuxthreads/mutex.os

/tmp/ccn8SFKU.s: Assembler messages:
/tmp/ccn8SFKU.s:162: Error: swp{b} use is obsoleted for ARMv8 and later
/tmp/ccn8SFKU.s:186: Error: swp{b} use is obsoleted for ARMv8 and later
/tmp/ccn8SFKU.s:203: Error: swp{b} use is obsoleted for ARMv8 and later
/tmp/ccn8SFKU.s:224: Error: swp{b} use is obsoleted for ARMv8 and later
make[1]: *** [Makerules:369: libpthread/linuxthreads/mutex.os] Error 1

This is due to libpthread/linuxthreads/sysdeps/arm/pt-machine.h which
uses the swp instruction that is not allowed on ARMv8.

All ARM_ARCH >= 7 support ldrex/strex instructions, so unlock
testandset() varaint for them.

Reported-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Vladimir Murzin <vladimir.murzin@arm.com>

Ändern Zusammenfassung

Diff

--- a/libpthread/linuxthreads/sysdeps/arm/pt-machine.h
+++ b/libpthread/linuxthreads/sysdeps/arm/pt-machine.h
@@ -28,7 +28,7 @@
2828 # define PT_EI __extern_always_inline
2929 #endif
3030
31-#if defined(__thumb2__)
31+#if __ARM_ARCH >= 7 || defined(__thumb2__)
3232 /* Spinlock implementation; required. */
3333 PT_EI long int
3434 testandset (int *spinlock)