Re: CFT: snmalloc as libc malloc (the source_location issue)

From: Mark Millard <marklmi_at_yahoo.com>
Date: Sat, 11 Feb 2023 18:32:48 UTC
On Feb 11, 2023, at 09:13, David Chisnall <theraven@FreeBSD.org> wrote:

> On 10 Feb 2023, at 21:34, Mark Millard <marklmi@yahoo.com> wrote:
>> 
>> # find / -name source_location -print | more
>> /usr/obj/DESTDIRs/main-amd64-chroot/usr/local/lib/gcc12/include/c++/experimental/source_location
>> /usr/obj/DESTDIRs/main-amd64-chroot/usr/local/lib/gcc12/include/c++/source_location
>> /usr/local/lib/gcc12/include/c++/experimental/source_location
>> /usr/local/lib/gcc12/include/c++/source_location
>> 
>> So, none for FreeBSD and its llvm15.
>> 
>> This makes sense, https://libcxx.llvm.org/Status/Cxx20.html shows:
>> 
>> P1208R6 LWG Adopt source_location for C++20 Cologne Complete 16.0
>> 
>> So, likely FreeBSD will not have this until it progresses to
>> LLVM16 . It just changed to LLVM15 in main [so: FreeBSD 14].
> 
> The include of source_location is guarded under an #if __has_include, it should be used only if it exists.  If it doesn’t, there’s a stub implementation.  If you have GCC includes in your include path, is it possible that it’s finding a source_location that is then guarded behind a check for a compiler builtin that clang doesn’t have?

I was just looking at Shawn's hardenedbsd log and FreeBSD source
(source from after the llvm15 update). Shawn's log shows an example
of:

/data/src/hardenedbsd/contrib/snmalloc/src/snmalloc/override/../global/../backend/../backend_helpers/../mem/../ds/../pal/../aal/../ds_core/defines.h:114:12: fatal error: 'source_location' file not found
# include <source_location>

(I do not have hardenedbsd source around, nor an install. Just
FreeBSD.) The gcc12 present in my search is from/for port building,
not for buildworld or buildkernel for FreeBSD.

I have not tried to do anything with snmalloc myself. I was just
looking at part of the context Shawn presented based on the
request:

QUOTE
Any non-XKCD[138]-conforming pointers would be appreciated. ;-)
END QUOTE

As to how helpful --or not-- Shawn found my notes and responses to
my notes, I do not know. I did not expect my notes to be a complete
classification of everything involved, just a possible start.

===
Mark Millard
marklmi at yahoo.com