include/err: Enforce c linkage for err and warn functions. #9147
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.
Summary
This change ensures that xx_func names are not mangled by a c++ compiler and can be correctly resolved when loaded at runtime.
Impact
c++ applications which use
err
can be loaded correctly.Testing
The issue without this addition can be reproduced by following:
err
function from a c++ application:rv-virt:knsh32
:Program output when
helloxx
is ran from nsh:Using objdump
riscv64-unknown-elf-objdump apps/bin/helloxx -x | c++filt | less
With the additions included in the PR, the symbol is no longed undefined with the application building and launching successfully.