diff options
author | Claudiu Zissulescu <claziss@gmail.com> | 2024-05-21 10:56:44 +0100 |
---|---|---|
committer | Jeff Johnston <jjohnstn@redhat.com> | 2024-05-22 14:22:06 -0400 |
commit | f84fed52916dae4d297f3a9b6b607cd6a1ed3ede (patch) | |
tree | 35b105f1118e44c814a19f68311dfde094ce84ec /libgloss | |
parent | 7d386b6dac5e958d5301daa9b32f0c979ef4030f (diff) | |
download | newlib-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.c | 4 |
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)) |