nicolas71640 commented on issue #11863:
URL: https://github.com/apache/nuttx/issues/11863#issuecomment-1999881291

   Hi everyone ! 
   After a bit of investigation, I'm beginning to understand how the simulator 
work, and therefore how it compiled/linked. 
   If you allow me, I'll sum up what I've understood and I haven't... 
   
   As the simulator runs on the host, it must replace some of its symbols by 
nuttx symbol. For instance, the method puts, shouldn't print something on the 
output but use the "mocked" serial console of nuttx (passing through the UART 
for instance). This map of symbols is defined in nuttx-names.in. 
   
   So the first step of the linking, is to make a "partially linked" lib 
(nuttx.rel) containing nuttx code, replacing the libc symbols by its own. Then 
the second step is to take this nuttx.rel lib and link it to the interface with 
the host (all the HOSTOBJS). An other object is linked in this final binary is 
the sim_head.o, containing the entry point of the simulator. 
   
   Did I understand correctly what's happening here ? 
   
   Now, for the export. My first though was that we needed this nuttx.rel to be 
linked on the final target. So put that nuttx.rel in the archive. Apparently 
this is not the strategy. I see that we export the nuttx-names.dat in the 
archive (in libs/ ). Why not, but I can't find  where this file is used to 
replace the symbols in the import scripts... An idea ? 
   
   Therefore, I have absolutely no idea how the simulator export could work...
   


-- 
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]

Reply via email to