Improve -DNO_SHORT_NAMES handling #23812
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This option has been broken for a long time, but this p.r. goes a long way to fixing that.
It works by creating a new file
long_names.c
that is automatically generated byregen/embed.pl
. This file contains the API elements that normally are macros that don't have a separate long name. when NO_SHORT_NAMES is defined, those macros are suppressed, and instead the long-name functions in this file get compiledThe next yak (maybe the only one) needing to be shaved after this is inline functions that use short names. Since they currently are included in the user space, those short names need to be defined, but we're compiling without short names, so it doesn't work.
We could require inline functions to use long names, but I don't like that, and I suspect you don't either.
To me, the easiest other option is to just not have inline functions outside the core when short names are forbidden. We could easily convert them from being inline, and only include them from long_names.c. Thus they would become like any other function in the file.