> Date: Mon, 25 Oct 2021 12:37:41 +0200 (CEST)
> From: Mark Kettenis <[email protected]>
>
> > Date: Mon, 25 Oct 2021 12:01:11 +0200
> > From: Patrick Wildt <[email protected]>
> >
> > Hi,
> >
> > mortimer@ has this diff in his tree for LLVM 13. I actually haven't
> > tried to see if it works fine with LLVM 11, but I feel it needs to be
> > sent out and not just be blindly committed.
> >
> > If someone wants to take care of this, it would be nice, so I can take
> > care of the remaining parts of sending out the LLVM 13 diff.
>
> > diff --git a/lib/libc/arch/amd64/sys/brk.S b/lib/libc/arch/amd64/sys/brk.S
> > index ce69679e389..ee1c11f7643 100644
> > --- a/lib/libc/arch/amd64/sys/brk.S
> > +++ b/lib/libc/arch/amd64/sys/brk.S
> > @@ -48,7 +48,6 @@ __minbrk:
> > END(__minbrk)
> > .type __minbrk,@object
> >
> > - .weak brk
> > ENTRY(brk)
> > cmpq %rdi,__minbrk(%rip)
> > jb 1f
> > diff --git a/lib/libc/arch/amd64/sys/sbrk.S b/lib/libc/arch/amd64/sys/sbrk.S
> > index 8d7d68909b2..db53a6bb643 100644
> > --- a/lib/libc/arch/amd64/sys/sbrk.S
> > +++ b/lib/libc/arch/amd64/sys/sbrk.S
> > @@ -53,7 +53,6 @@ __curbrk:
> > END(__curbrk)
> > .type __curbrk,@object
> >
> > - .weak sbrk
> > ENTRY(sbrk)
> > movq __curbrk(%rip),%rax
> > movslq %edi,%rsi
>
> These functions are supposed to be weak, like they are on
> architectures that use a C implementation. I suppose the .weak
> directive needs to come *after* the .global emitted by ENTRY().
> Putting it after the END() works.
So I think the diff below is what we want here.
ok?
Index: lib/libc/arch/amd64/sys/brk.S
===================================================================
RCS file: /cvs/src/lib/libc/arch/amd64/sys/brk.S,v
retrieving revision 1.10
diff -u -p -r1.10 brk.S
--- lib/libc/arch/amd64/sys/brk.S 19 Aug 2017 18:24:06 -0000 1.10
+++ lib/libc/arch/amd64/sys/brk.S 25 Oct 2021 12:13:57 -0000
@@ -48,7 +48,6 @@ __minbrk:
END(__minbrk)
.type __minbrk,@object
- .weak brk
ENTRY(brk)
cmpq %rdi,__minbrk(%rip)
jb 1f
@@ -63,3 +62,4 @@ ENTRY(brk)
SET_ERRNO
ret
END(brk)
+ .weak brk
Index: lib/libc/arch/amd64/sys/sbrk.S
===================================================================
RCS file: /cvs/src/lib/libc/arch/amd64/sys/sbrk.S,v
retrieving revision 1.10
diff -u -p -r1.10 sbrk.S
--- lib/libc/arch/amd64/sys/sbrk.S 19 Aug 2017 18:24:06 -0000 1.10
+++ lib/libc/arch/amd64/sys/sbrk.S 25 Oct 2021 12:13:57 -0000
@@ -53,7 +53,6 @@ __curbrk:
END(__curbrk)
.type __curbrk,@object
- .weak sbrk
ENTRY(sbrk)
movq __curbrk(%rip),%rax
movslq %edi,%rsi
@@ -68,3 +67,4 @@ ENTRY(sbrk)
SET_ERRNO
ret
END(sbrk)
+ .weak sbrk