From f84fed52916dae4d297f3a9b6b607cd6a1ed3ede Mon Sep 17 00:00:00 2001 From: Claudiu Zissulescu Date: Tue, 21 May 2024 10:56:44 +0100 Subject: [PATCH] arc: libgloss: Use long calls attribute for exit_halt According to GCC documentation for ARC, a function marked with the long_call attribute is always called using register-indirect jump-and-link instructions, thereby enabling the called function to be placed anywhere within the 32-bit address space. exit_halt function is provided by crt0.S and it's used in nsim-syscalls.c. Thus, we want to ensure that a linkage issue will not arise. Signed-off-by: Claudiu Zissulescu --- libgloss/arc/nsim-syscalls.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libgloss/arc/nsim-syscalls.c b/libgloss/arc/nsim-syscalls.c index 7dd0af10f..d299f8cdc 100644 --- a/libgloss/arc/nsim-syscalls.c +++ b/libgloss/arc/nsim-syscalls.c @@ -1,5 +1,5 @@ /* - Copyright (c) 2015, Synopsys, Inc. All rights reserved. + Copyright (c) 2015-2024, Synopsys, Inc. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: @@ -100,7 +100,7 @@ _open (const char * pathname, int flags, int mode) } /* Should be provided by crt0.S. */ -extern void __attribute__((noreturn)) _exit_halt (); +extern void __attribute__((noreturn, long_call)) _exit_halt (); void __attribute__((noreturn))