aboutsummaryrefslogtreecommitdiff
path: root/libgloss
diff options
context:
space:
mode:
authorClaudiu Zissulescu <claziss@gmail.com>2024-05-21 10:56:44 +0100
committerJeff Johnston <jjohnstn@redhat.com>2024-05-22 14:22:06 -0400
commitf84fed52916dae4d297f3a9b6b607cd6a1ed3ede (patch)
tree35b105f1118e44c814a19f68311dfde094ce84ec /libgloss
parent7d386b6dac5e958d5301daa9b32f0c979ef4030f (diff)
downloadnewlib-f84fed52916dae4d297f3a9b6b607cd6a1ed3ede.zip
newlib-f84fed52916dae4d297f3a9b6b607cd6a1ed3ede.tar.gz
newlib-f84fed52916dae4d297f3a9b6b607cd6a1ed3ede.tar.bz2
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 <claziss@gmail.com>
Diffstat (limited to 'libgloss')
-rw-r--r--libgloss/arc/nsim-syscalls.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/libgloss/arc/nsim-syscalls.c b/libgloss/arc/nsim-syscalls.c
index 7dd0af1..d299f8c 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))