Skip to content

Commit 7e19962

Browse files
glibc: add changes to make riscv64-linux-gnu works
1 parent 5c0766b commit 7e19962

File tree

6 files changed

+34
-2
lines changed

6 files changed

+34
-2
lines changed

lib/libc/glibc/csu/elf-init-2.33.c

+1
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
<https://www.gnu.org/licenses/>. */
3535

3636
#include <stddef.h>
37+
#include <elf-initfini.h>
3738

3839

3940
/* These magic symbols are provided by the linker. */
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
#define NO_INITFINI 1

lib/libc/glibc/sysdeps/generic/sysdep.h

+6
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,12 @@
5656
# define cfi_personality(enc, exp) .cfi_personality enc, exp
5757
# define cfi_lsda(enc, exp) .cfi_lsda enc, exp
5858

59+
# ifndef __clang__
60+
# define cfi_label(label) .cfi_label label
61+
# else
62+
# define cfi_label(label)
63+
# endif
64+
5965
#else /* ! ASSEMBLER */
6066

6167
# define CFI_STRINGIFY(Name) CFI_STRINGIFY2 (Name)

lib/libc/glibc/sysdeps/riscv/start-2.33.S

+1-1
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@
4545
ENTRY (ENTRY_POINT)
4646
/* Terminate call stack by noting ra is undefined. Use a dummy
4747
.cfi_label to force starting the FDE. */
48-
.cfi_label .Ldummy
48+
cfi_label (.Ldummy)
4949
cfi_undefined (ra)
5050
call load_gp
5151
mv a5, a0 /* rtld_fini. */

lib/libc/glibc/sysdeps/riscv/start.S

+1-1
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@
4545
ENTRY (ENTRY_POINT)
4646
/* Terminate call stack by noting ra is undefined. Use a dummy
4747
.cfi_label to force starting the FDE. */
48-
.cfi_label .Ldummy
48+
cfi_label (.Ldummy)
4949
cfi_undefined (ra)
5050
call load_gp
5151
mv a5, a0 /* rtld_fini. */
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
/* This file is automatically generated.
2+
It defines a symbol `__stub_FUNCTION' for each function
3+
in the C library which is a stub, meaning it will fail
4+
every time called, usually setting errno to ENOSYS. */
5+
6+
#ifdef _LIBC
7+
# error Applications may not define the macro _LIBC
8+
#endif
9+
10+
#define __stub___compat_bdflush
11+
#define __stub___compat_create_module
12+
#define __stub___compat_get_kernel_syms
13+
#define __stub___compat_query_module
14+
#define __stub___compat_uselib
15+
#define __stub_chflags
16+
#define __stub_fchflags
17+
#define __stub_fedisableexcept
18+
#define __stub_feenableexcept
19+
#define __stub_fegetexcept
20+
#define __stub_gtty
21+
#define __stub_revoke
22+
#define __stub_setlogin
23+
#define __stub_sigreturn
24+
#define __stub_stty

0 commit comments

Comments
 (0)