<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/libc/include/stdlib.yaml, branch main</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/'/>
<entry>
<title>[libc] Move mbtowc, mbstowcs and inverse functions to stdlib.h (#168455)</title>
<updated>2025-11-17T23:43:42+00:00</updated>
<author>
<name>Alexey Samsonov</name>
<email>vonosmas@gmail.com</email>
</author>
<published>2025-11-17T23:43:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=da61dd28c6dd77901058580e391cb8c88bb506f2'/>
<id>da61dd28c6dd77901058580e391cb8c88bb506f2</id>
<content type='text'>
These functions should be declared in `stdlib.h`, not `wchar.h`, as
confusing as it is. Move them to the proper header file and matching
directories in src/ and test/ trees.

This was discovered while testing libc++ build against llvm-libc, which
re-declares functions like mbtowc in std-namespace in `&lt;cstdlib&gt;`
header, and then uses those functions in its locale implementation.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
These functions should be declared in `stdlib.h`, not `wchar.h`, as
confusing as it is. Move them to the proper header file and matching
directories in src/ and test/ trees.

This was discovered while testing libc++ build against llvm-libc, which
re-declares functions like mbtowc in std-namespace in `&lt;cstdlib&gt;`
header, and then uses those functions in its locale implementation.</pre>
</div>
</content>
</entry>
<entry>
<title>[libc][hdrgen] Sort identifiers with leading underscores specially (#165745)</title>
<updated>2025-10-30T18:49:22+00:00</updated>
<author>
<name>Roland McGrath</name>
<email>mcgrathr@google.com</email>
</author>
<published>2025-10-30T18:49:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=a24a7548b845eba93d8c03079f8c6fcd923306a6'/>
<id>a24a7548b845eba93d8c03079f8c6fcd923306a6</id>
<content type='text'>
This makes the sorting behavior more uniform: functions and
macros are always sorted (separately), not only when merging.

This changes the sort order used for functions and other things
sorted by their symbol names.  Symbols are sorted alphabetically
without regard to leading underscores, and then for identifiers
that differ only in the number of leading underscores, the fewer
underscores the earlier in the sort order.  For the functions
declared in a generated header, adjacent names with and without
underscores will be grouped together without blank lines.

This is implemented by factoring the name field, equality, and
sorting support out of the various entity classes into a new
common superclass (hdrgen.Symbol).

This uncovered YAML's requirement to quote the string "NULL" to
avoid pyyaml parsing it as None (equivalent to Javascript null)
rather than a string.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This makes the sorting behavior more uniform: functions and
macros are always sorted (separately), not only when merging.

This changes the sort order used for functions and other things
sorted by their symbol names.  Symbols are sorted alphabetically
without regard to leading underscores, and then for identifiers
that differ only in the number of leading underscores, the fewer
underscores the earlier in the sort order.  For the functions
declared in a generated header, adjacent names with and without
underscores will be grouped together without blank lines.

This is implemented by factoring the name field, equality, and
sorting support out of the various entity classes into a new
common superclass (hdrgen.Symbol).

This uncovered YAML's requirement to quote the string "NULL" to
avoid pyyaml parsing it as None (equivalent to Javascript null)
rather than a string.</pre>
</div>
</content>
</entry>
<entry>
<title>[libc] Add NULL macro definitions to header files (#142764)</title>
<updated>2025-06-11T16:51:34+00:00</updated>
<author>
<name>William</name>
<email>113542065+saturn691@users.noreply.github.com</email>
</author>
<published>2025-06-11T16:51:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=117e78fe5012087c1ee535b91936bf4d8e3c7785'/>
<id>117e78fe5012087c1ee535b91936bf4d8e3c7785</id>
<content type='text'>
By the C standard, &lt;locale.h&gt;, &lt;stddef.h&gt; &lt;stdio.h&gt;, &lt;stdlib.h&gt;,
&lt;string.h&gt;, &lt;time.h&gt;, and &lt;wchar.h&gt; require NULL to be defined.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
By the C standard, &lt;locale.h&gt;, &lt;stddef.h&gt; &lt;stdio.h&gt;, &lt;stdlib.h&gt;,
&lt;string.h&gt;, &lt;time.h&gt;, and &lt;wchar.h&gt; require NULL to be defined.</pre>
</div>
</content>
</entry>
<entry>
<title>stdlib.yaml: qsort_r() is in POSIX 2024 (aka issue 8). (#138572)</title>
<updated>2025-05-06T13:36:10+00:00</updated>
<author>
<name>enh-google</name>
<email>enh@google.com</email>
</author>
<published>2025-05-06T13:36:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=e79dc76b5f9131bd4af7ad807492537450a9ff2c'/>
<id>e79dc76b5f9131bd4af7ad807492537450a9ff2c</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[libc] Combine the function prototype `int (*compar)(const void *, const void *)` (#134238)</title>
<updated>2025-04-03T16:36:23+00:00</updated>
<author>
<name>Connector Switch</name>
<email>c8ef@outlook.com</email>
</author>
<published>2025-04-03T16:36:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=b738b82699e58fa50d15d76e1e26b58100ad344e'/>
<id>b738b82699e58fa50d15d76e1e26b58100ad344e</id>
<content type='text'>
Closes #134118.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Closes #134118.</pre>
</div>
</content>
</entry>
<entry>
<title>[libc] implement `memalignment` (#132493)</title>
<updated>2025-03-28T23:07:57+00:00</updated>
<author>
<name>Mohamed Emad</name>
<email>73320969+hulxv@users.noreply.github.com</email>
</author>
<published>2025-03-28T23:07:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=48408954670e1f564bd92eed6b54bf155238201c'/>
<id>48408954670e1f564bd92eed6b54bf155238201c</id>
<content type='text'>
This patch adds the `memalignment` function to LLVM-libc, following its
description in [WG14 N3220,
§7.24.2.1](https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf#page=387).

- [x] Add the implementation of `memalignment` in
[`/src/stdlib`](https://github.com/llvm/llvm-project/tree/main/libc/src/stdlib)
- [x] Add tests for `memalignment` in
[`/test/src/stdlib`](https://github.com/llvm/llvm-project/tree/main/libc/test/src/stdlib)
- [x] Add `memalignment` to
[`entrypoints.txt`](https://github.com/llvm/llvm-project/blob/main/libc/config/linux/x86_64/entrypoints.txt)
for at least x86_64 and whatever you're building on
- [x] Add `memalignment` to
[`include/stdlib.yaml`](https://github.com/llvm/llvm-project/blob/main/libc/include/stdlib.yaml)




Closes #132300

---------

Co-authored-by: Joseph Huber &lt;huberjn@outlook.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch adds the `memalignment` function to LLVM-libc, following its
description in [WG14 N3220,
§7.24.2.1](https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf#page=387).

- [x] Add the implementation of `memalignment` in
[`/src/stdlib`](https://github.com/llvm/llvm-project/tree/main/libc/src/stdlib)
- [x] Add tests for `memalignment` in
[`/test/src/stdlib`](https://github.com/llvm/llvm-project/tree/main/libc/test/src/stdlib)
- [x] Add `memalignment` to
[`entrypoints.txt`](https://github.com/llvm/llvm-project/blob/main/libc/config/linux/x86_64/entrypoints.txt)
for at least x86_64 and whatever you're building on
- [x] Add `memalignment` to
[`include/stdlib.yaml`](https://github.com/llvm/llvm-project/blob/main/libc/include/stdlib.yaml)




Closes #132300

---------

Co-authored-by: Joseph Huber &lt;huberjn@outlook.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>[libc] implement a64l (#128758)</title>
<updated>2025-02-25T21:57:13+00:00</updated>
<author>
<name>Michael Jones</name>
<email>michaelrj@google.com</email>
</author>
<published>2025-02-25T21:57:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=8beec9fc48194224779e5428b625fe341e617129'/>
<id>8beec9fc48194224779e5428b625fe341e617129</id>
<content type='text'>
Implement the posix function a64l.
Standard:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/a64l.html</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Implement the posix function a64l.
Standard:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/a64l.html</pre>
</div>
</content>
</entry>
<entry>
<title>[libc] Fill out generated malloc.h and related stdlib.h extensions (#127293)</title>
<updated>2025-02-16T00:32:30+00:00</updated>
<author>
<name>Roland McGrath</name>
<email>mcgrathr@google.com</email>
</author>
<published>2025-02-16T00:32:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=ed48398431afa477fc57fcabb6ae1f7d94df6012'/>
<id>ed48398431afa477fc57fcabb6ae1f7d94df6012</id>
<content type='text'>
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.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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.</pre>
</div>
</content>
</entry>
<entry>
<title>[libc] Share hdrgen declarations between stdlib.h and malloc.h (#127278)</title>
<updated>2025-02-15T00:46:56+00:00</updated>
<author>
<name>Roland McGrath</name>
<email>mcgrathr@google.com</email>
</author>
<published>2025-02-15T00:46:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=625cb5a18576dd5d193da8d0249585cb5245da5c'/>
<id>625cb5a18576dd5d193da8d0249585cb5245da5c</id>
<content type='text'>
This uses the new merge_yaml_files feature in hdrgen to share the
source of truth for the malloc suite of functions declared in
both stdlib.h and in malloc.h (without either header including
the other).  It also modernizes the malloc.yaml definition a bit,
including dropping the custom template malloc.h.def file in favor
of using the explicit macros list to generate the includes.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This uses the new merge_yaml_files feature in hdrgen to share the
source of truth for the malloc suite of functions declared in
both stdlib.h and in malloc.h (without either header including
the other).  It also modernizes the malloc.yaml definition a bit,
including dropping the custom template malloc.h.def file in favor
of using the explicit macros list to generate the includes.</pre>
</div>
</content>
</entry>
<entry>
<title>[libc] clean up duplicated includes in generated headers (#124524)</title>
<updated>2025-01-28T20:22:51+00:00</updated>
<author>
<name>Alex Prabhat Bara</name>
<email>alexpbara@gmail.com</email>
</author>
<published>2025-01-28T20:22:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=a255da0c5373f4ebd10c91b011cd572e4d2a6b4c'/>
<id>a255da0c5373f4ebd10c91b011cd572e4d2a6b4c</id>
<content type='text'>
Fixes: #124149</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fixes: #124149</pre>
</div>
</content>
</entry>
</feed>
