I'm going a bit out-of-order to report a build failure in a test:
Mark Brown broonie@kernel.org writes:
+// Recurse x20 times +.macro recurse id
I get an assembler error here:
gcc -nostdlib gcs-stress-thread.S -o /home/thiago.bauermann/src/linux/tools/testing/selftests/arm64/gcs/gcs-stress-thread gcs-stress-thread.S: Assembler messages: gcs-stress-thread.S:236: Error: unexpected end of file in macro `recurse' definition make[2]: *** [Makefile:24: /home/thiago.bauermann/src/linux/tools/testing/selftests/arm64/gcs/gcs-stress-thread] Error 1
This is with gas from Ubuntu 22.04, which ships binutils 2.38.
+function recurse\id
- stp x29, x30, [sp, #-16]!
 - mov x29, sp
 - cmp x20, 0
 - beq 1f
 - sub x20, x20, 1
 - bl recurse\id
 +1:
- ldp x29, x30, [sp], #16
 - // Do a syscall immediately prior to returning to try to provoke
 - // scheduling and migration at a point where coherency issues
 - // might trigger.
 - mov x8, #__NR_getpid
 - svc #0
 - ret
 +endfunction +.endmacro
+// Generate and use two copies so we're changing the GCS contents +recurse 1 +recurse 2