clang emits this warning when compiling brk.S and sbrk.S on riscv64:
/tmp/sbrk-06c40b.s:46:2: warning: sbrk changed binding to STB_WEAK .weak sbrk Let's avoid this using the "ENTRY_NB" approach implemented by guenther@ on other archs. Diff tailored to reduce the differences with arm64/include/asm.h (that's why I swapped .p2align and .type). ok? Index: sys/arch/riscv64/include/asm.h =================================================================== RCS file: /cvs/src/sys/arch/riscv64/include/asm.h,v retrieving revision 1.6 diff -u -p -r1.6 asm.h --- sys/arch/riscv64/include/asm.h 2 Dec 2022 12:27:08 -0000 1.6 +++ sys/arch/riscv64/include/asm.h 2 Dec 2022 20:00:49 -0000 @@ -53,6 +53,11 @@ # define _ALIGN_TEXT .align 0 #endif +/* NB == No Binding: use .globl or .weak as necessary */ +#define _ENTRY_NB(x) \ + .text; .p2align 1; .type x,@function; x: +#define _ENTRY(x) .globl x; _ENTRY_NB(x) + #if defined(PROF) || defined(GPROF) // XXX Profiler Support #define _PROF_PROLOGUE \ @@ -81,10 +86,9 @@ #define RETGUARD_SYMBOL(x) #endif -#define _ENTRY(x) \ - .text; .globl x; .type x,@function; .p2align 1; x: #define ENTRY(y) _ENTRY(y); _PROF_PROLOGUE #define ENTRY_NP(y) _ENTRY(y) +#define ENTRY_NB(y) _ENTRY_NB(y); _PROF_PROLOGUE #define ASENTRY(y) _ENTRY(y); _PROF_PROLOGUE #define ASENTRY_NP(y) _ENTRY(y) #define END(y) .size y, . - y Index: lib/libc/arch/riscv64/sys/brk.S =================================================================== RCS file: /cvs/src/lib/libc/arch/riscv64/sys/brk.S,v retrieving revision 1.3 diff -u -p -r1.3 brk.S --- lib/libc/arch/riscv64/sys/brk.S 2 Dec 2022 12:27:08 -0000 1.3 +++ lib/libc/arch/riscv64/sys/brk.S 2 Dec 2022 16:25:32 -0000 @@ -26,7 +26,7 @@ __minbrk: .dword _end -ENTRY(brk) +ENTRY_NB(brk) RETGUARD_SETUP(brk, t6) lla t1, __minbrk ld t5, 0(t1) Index: lib/libc/arch/riscv64/sys/sbrk.S =================================================================== RCS file: /cvs/src/lib/libc/arch/riscv64/sys/sbrk.S,v retrieving revision 1.3 diff -u -p -r1.3 sbrk.S --- lib/libc/arch/riscv64/sys/sbrk.S 2 Dec 2022 12:27:08 -0000 1.3 +++ lib/libc/arch/riscv64/sys/sbrk.S 2 Dec 2022 16:25:50 -0000 @@ -28,7 +28,7 @@ __curbrk: .dword _end END(__curbrk) -ENTRY(sbrk) +ENTRY_NB(sbrk) RETGUARD_SETUP(sbrk, t6) lla t1, __curbrk -- jca | PGP : 0x1524E7EE / 5135 92C1 AD36 5293 2BDF DDCC 0DFA 74AE 1524 E7EE