mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-11-01 17:08:10 +00:00
f3c003f72d
As commit a9468f30b5
"ARM: 7333/2: jump label: detect %c
support for ARM", this patch detects the same thing for ARM64
because some ARM64 GCC versions have the same issue.
Some versions of ARM64 GCC which do support asm goto, do not
support the %c specifier. Since we need the %c to support jump
labels on ARM64, detect that too in the asm goto detection script
to avoid build errors with these versions.
Acked-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Jiang Liu <liuj97@gmail.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
21 lines
495 B
Bash
21 lines
495 B
Bash
#!/bin/sh
|
|
# Test for gcc 'asm goto' support
|
|
# Copyright (C) 2010, Jason Baron <jbaron@redhat.com>
|
|
|
|
cat << "END" | $@ -x c - -c -o /dev/null >/dev/null 2>&1 && echo "y"
|
|
int main(void)
|
|
{
|
|
#if defined(__arm__) || defined(__aarch64__)
|
|
/*
|
|
* Not related to asm goto, but used by jump label
|
|
* and broken on some ARM GCC versions (see GCC Bug 48637).
|
|
*/
|
|
static struct { int dummy; int state; } tp;
|
|
asm (".long %c0" :: "i" (&tp.state));
|
|
#endif
|
|
|
|
entry:
|
|
asm goto ("" :::: entry);
|
|
return 0;
|
|
}
|
|
END
|