casaroli opened a new pull request, #3693: URL: https://github.com/apache/nuttx-apps/pull/3693
## Summary `examples/fdpicxip` and `testing/fs/xipfs` assert that each running instance of a module gets its own copy of a library named in `DT_NEEDED`: two instances adding their own seed each saw a total of `seed * 3`. That was true of the loader that walked `DT_NEEDED` itself. The loader now hands the work to `dlopen()`, which returns the object already in the module registry rather than loading a second copy, so there is one library and one set of its globals, shared by every module that names it. The module's own data stays private per instance, because `exec()` loads the module afresh each time. What an instance can still assert on its own is that every add it made landed in the library, so that is what it checks. The test additionally checks the consequences: the library is pinned once rather than once per instance, and its destructor runs once, at the last close, holding what both instances built up. The embedded module blobs are regenerated from the sources beside them. Depends-on: apache/nuttx#19673 ## Testing Run in full on QEMU `mps2-an500` and on a Pimoroni Pico Plus 2 (RP2350), against apache/nuttx#19673. ``` xipfs_test 131 passed, 0 failed xipfs_test fdpic 34 passed, 0 failed xipfs_test reject 7 passed, 0 failed fdpicxip qsort | solib | cxx | jmprel ``` -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
