[RFC] libstdc++: Generate error_constants.h from <errno.h> [PR104883]
Jonathan Wakely
jwakely@redhat.com
Tue Oct 4 18:05:21 GMT 2022
On Tue, 4 Oct 2022 at 17:51, Jonathan Wakely via Libstdc++
<libstdc++@gcc.gnu.org> wrote:
>
> Does anybody see any issues with generating the list of error numbers at
> build time?
>
>
> -- >8 --
>
> Instead of having several very similar target-specific headers with
> slightly different sets of enumerators, generate the error_constants.h
> file as part of the build. This ensures that all enumerators are always
> defined, with the value from the corresponding errno macro if present,
> or a libstdc++-specific alternative value.
>
> The libstdc++-specific values will be values greater than the positive
> integer _GLIBCXX_ERRC_ORIGIN, which defaults to 9999 but can be set in
> os_defines.h if a more suitable value exists for the OS (e.g. ELAST
> could be used for BSD targets).
...
> +${CXXCPP} -P -D_POSIX_C_SOURCE=200809L -x c++ "$constants_h" \
> + | sed -e '1,/^GLIBCXX ERROR CONSTANTS BELOW HERE$/d' \
> + >> "$output_h" || exit $?
Gah, this is the wrong version of the script! It's supposed to replace
unexpanded EXXX tokens with __LINE__ (which is why #line is used to
set the origin) but I seem to have committed the wrong version.
Let me dig that out of my git reflog ...
More information about the Libstdc++
mailing list