Re: sbrk

From: Bakul Shah <bakul_at_iitbombay.org>
Date: Sun, 26 Nov 2023 03:58:07 UTC
On Nov 25, 2023, at 7:47 PM, Warner Losh <imp@bsdimp.com> wrote:
> 
> On Sat, Nov 25, 2023, 8:44 PM <joseph@josephholsten.com <mailto:joseph@josephholsten.com>> wrote:
>> Yes, it’s no longer included. It’s long been deprecated, but that does make porting things like the original vi a bit challenging.
>> 
>> Is there a particular project you’re trying to use it for?
> 
> 
> It was never included in FreeBSD/arm64 due to the fact that the address space is complicated now and there no longer is an area beyond bss that you can expand into... let alone contract...
> 
> Emacs was not happy with it...

Thanks. Note that linux does provide it (may be not perfect but I thought FreeBSD cared more about compatibility....). 

This came up in trying to compile the v language
https://github.com/vlang/v

It uses a libgc which seems to be derived from some ancestor of BDW GC and there are so many defines my eyes glaze over.

> 
> Warner
> 
>> --
>> Joseph Holsten
>> On Nov 25, 2023 at 19:41 -0800, Bakul Shah <bakul@iitbombay.org <mailto:bakul@iitbombay.org>>, wrote:
>>> Does sbrk not exist on FreeBSD-14 on arm64? Is this by design?
>>> 
>>> $ cat sb.c
>>> #include <unistd.h>
>>> #include <stdio.h>
>>> int main(int c, char**v) {
>>>         void *x = sbrk(102400);
>>>         printf("%p\n", x);
>>> }
>>> $ cc sb.c
>>> ld: error: undefined symbol: sbrk
>>> >>> referenced by sb.c
>>> >>>               /tmp/sb-e97caf.o:(main)
>>> cc: error: linker command failed with exit code 1 (use -v to see invocation)
>>>