You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by "g2gps (via GitHub)" <gi...@apache.org> on 2023/06/29 12:23:15 UTC
[GitHub] [nuttx-apps] g2gps commented on pull request #1810: import/mk: Update ELF flags to represent build configuration type.
g2gps commented on PR #1810:
URL: https://github.com/apache/nuttx-apps/pull/1810#issuecomment-1613067415
Hi @acassis,
> Something I noticed is that the addon/Makefile looks for nuttx-export/System.map that is not exported anymore.
So, since you working on it, could you please help me to fix it?
I added #1816, which adds the System.map file back into the `import` directory. I can't guarantee it will fix the issue entirely, but at least the symbol table is there for external applications to build.
I had a look through your video, and it actually helped clarify a few things about the different ways Nuttx support building and launching applications.
As a brief summary (more for my understanding):
1. Nuttx can build applications using by resolving symbols against the addresses in the `System.map` file. This would only work in CONFIG_BUILD_FLAT (I believe). There are three variants of this method which you covered in your video.
2. Nuttx can load relocatable (partially linked) ELFs. This works in CONFIG_BUILD_KERNEL, however the kernel needs to process relocations for both library and application symbols. As a result, the application ELF files are much larger, take longer to load and are subject to unresolved symbols at load time.
3. Nuttx can load executable ELFs in `CONFIG_BUILD_KERNEL`. This relies on the application being linked correctly to match the virtual memory configuration of the target, and kernel.
I've been chipping away at adding support for (3) over the last couple of months, as the drawbacks of (2) were too much for our current application. As far as I know, the arty_a7 is the only platform which supports building applications in this manor. Loading fully linked applications should be supported generically.
> I think we need to move the scripts from https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=139629542 to apps/ to let people to test it easily.
I agree. The full extent of Nuttx's capability is not obvious, especially to a new-comer. Perhaps the first step would be to add a brief outline of the currently supported options to the Documentation, with an example of a board configuration which supports it?
--
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: commits-unsubscribe@nuttx.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org