[libc] Fill out generated malloc.h and related stdlib.h extensions (#127293)

This updates the generated stdlib.h and malloc.h headers to
include the subsets of extenion functions declared by glibc that
are also supported by Scudo and that use only simple types.
Scudo's extensions not declared by glibc are omitted.  glibc's
extensions not implemented by Scudo are omitted.  The mallinfo
and mallinfo2 functions are omitted (at least for now) since they
need struct definitions for their return types.
This commit is contained in:
Roland McGrath
2025-02-15 16:32:30 -08:00
committed by GitHub
parent 963ff1c305
commit ed48398431
3 changed files with 41 additions and 8 deletions

View File

@@ -9,6 +9,12 @@ macros:
- macro_name: M_PURGE_ALL
macro_header: malloc-macros.h
functions:
- name: malloc_usable_size
standards:
- gnu
return_type: size_t
arguments:
- type: void *
- name: mallopt
standards:
- gnu
@@ -16,3 +22,10 @@ functions:
arguments:
- type: int
- type: int
- name: pvalloc
standards:
- bsd
- gnu
return_type: void *
arguments:
- type: size_t

View File

@@ -1,4 +1,10 @@
# This file has declarations that appear both in <stdlib.h> and in <malloc.h>.
# These include the subset of GNU extensions that Scudo supports.
#
# Note: glibc's <stdlib.h> and <malloc.h> both also have `reallocarray`,
# which Scudo does not support and is omitted here. (Each of those glibc
# headers also has related functions the other lacks, but those should be
# covered separately in stdlib.yaml and malloc.yaml instead.)
functions:
- name: aligned_alloc
@@ -27,6 +33,13 @@ functions:
return_type: void *
arguments:
- type: size_t
- name: memalign
standards:
- gnu
return_type: void *
arguments:
- type: size_t
- type: size_t
- name: realloc
standards:
- stdc
@@ -34,11 +47,10 @@ functions:
arguments:
- type: void *
- type: size_t
# Note: glibc's <stdlib.h> and <malloc.h> both have these, which are
# currently missing here:
# - name: reallocarray
# - name: memalign
# - name: valloc
# Each of those glibc headers also has related functions the other lacks.
# Only the common subset is mentioned here for future consideration.
- name: valloc
standards:
- bsd
- gnu
return_type: void *
arguments:
- type: size_t

View File

@@ -127,6 +127,14 @@ functions:
arguments:
- type: long long
- type: long long
- name: posix_memalign
standards:
- posix
return_type: int
arguments:
- type: void **
- type: size_t
- type: size_t
- name: qsort
standards:
- stdc