diff options
author | Visa Hankala <visa@cvs.openbsd.org> | 2019-04-19 09:19:23 +0000 |
---|---|---|
committer | Visa Hankala <visa@cvs.openbsd.org> | 2019-04-19 09:19:23 +0000 |
commit | f690be6b981ffee6b364f8359f60d7f46cbc6a75 (patch) | |
tree | f39df8458269bc5f366e52d56ef0a4be12c1f62a /sys/arch/mips64/include | |
parent | 006c40ffca12a26e3a47be1c111f0bbff412877e (diff) |
Work around a limitation of clang integrated assembler on mips64.
The assembler does not handle undeclared local symbols properly
and generates R_MIPS_CALL16 relocations where it should generate
local GOT references. For now, get along with the problem by
declaring local symbols where necessary.
OK kettenis@ guenther@
Diffstat (limited to 'sys/arch/mips64/include')
-rw-r--r-- | sys/arch/mips64/include/profile.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/arch/mips64/include/profile.h b/sys/arch/mips64/include/profile.h index 4b48e1c436e..bca5942418f 100644 --- a/sys/arch/mips64/include/profile.h +++ b/sys/arch/mips64/include/profile.h @@ -1,4 +1,4 @@ -/* $OpenBSD: profile.h,v 1.4 2011/03/23 16:54:36 pirofti Exp $ */ +/* $OpenBSD: profile.h,v 1.5 2019/04/19 09:19:22 visa Exp $ */ /* * Copyright (c) 1992, 1993 @@ -55,6 +55,7 @@ "sd $1,0($29);" \ "sd $31,8($29);" \ "move $5,$31;" \ + ".local ___mcount;" \ "jal ___mcount;" \ "move $4,$1;" \ "ld $4,16($29);" \ |