Skip to content

Conversation

@hajimef
Copy link

@hajimef hajimef commented Nov 15, 2025

When running the Arduino_JSON library (https://github.com/arduino-libraries/Arduino_JSON), I encountered the error "llext: Undefined symbol with no entry in symbol table."
So I added the necessary symbols.

@CLAassistant
Copy link

CLAassistant commented Nov 15, 2025

CLA assistant check
All committers have signed the CLA.

@facchinm
Copy link
Member

Hi @hajimef , thanks for the contribution! I'd move strtod ans strtod at the very top of the file in the "strings" section, and the other two under CONFIG_CPP section.

Copy link
Member

@facchinm facchinm left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As per comment, plus need to fix the commit message before merging

Copy link
Author

@hajimef hajimef left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for comment.
I moved the line as you suggested.
I then tried the Adafruit NeoPixel library and found that I also needed to add strtol, so I added that line as well.

@facchinm facchinm changed the title Modified loader/llext.c for Arduino_JSON library loader: export symbols for Arduino_JSON library Nov 18, 2025
libc shouldn't be linked in dynamic build, while it's needed when the
validation step is executed.

Validated against the previous patch, nigthly arduino-cli and
~/Arduino/libraries/Arduino_JSON/examples/JSONArray/ example
build.link_command="{compiler.path}{compiler.c.elf.cmd}" "-L{build.path}" "-L{build.variant.path}" {compiler.c.elf.flags} {compiler.c.elf.extra_flags} {build.extra_flags} {build.extra_ldflags} {compiler.zephyr.common_ldflags} --specs=picolibc.specs --specs=nosys.specs {compiler.ldflags} {object_files} -Wl,--start-group "{build.path}/{archive_file}" {compiler.zephyr.extra_ldflags} {compiler.libraries.ldflags} -Wl,--end-group {build.link_args.{build.link_mode}}

build.check_command-dynamic={build.link_command} {build.link_args.check-dynamic} -o "{build.path}/{build.project_name}_check.tmp"
build.check_command-dynamic={build.link_command} -lc -lm -lgcc {build.link_args.check-dynamic} -o "{build.path}/{build.project_name}_check.tmp"
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Those added libraries are not used in the final link stage, so this change masks actual build errors AFAICS. What am I missing?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I built it with the 0.51.0 tag.
And the target was arduino_uno_q.
This may be the cause.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants