JianyuWang0623 opened a new pull request, #2581:
URL: https://github.com/apache/nuttx-apps/pull/2581

   ## Summary
   -  Exclude symbols that dynamic modules in bin/ call each other. - 
be3a91e87d4b60a296ed372bf2293a55f0447dcf (by @anjiahao1 )
       - Bugfix: Add check for sed expression. - 
1973f15aca063e555562be325a812f035f3ad96a
   - Support adding additional symbols that are not in undefined list. - 
b4d995f916ede75f6a95d30d5389ecae6c8ec1a6
       - For apps to be built in the future, the required symbols may not be 
included in the symbol table, and you will need to rebuild the NuttX kernel to 
run it.
       - With this patch, you can add symbols may be used in the future 
manually to the symbol table.
       - Extended usage:  - e3844a1b43182e6fa6343f8f74bcc4da2e11cbaa
           - The lines start with "," make no effects(as comments)
           - Support symbol name overriding
       - See commit message for more details.
   
   ## Impact
   Build scripts that using mksymtab.sh to generate symbol tables.
   
   ## Testing
   - b4d995f916ede75f6a95d30d5389ecae6c8ec1a6
   ```
   $ nm ./hello_world.o | grep " U "
                 U __aeabi_unwind_cpp_pr1
                 U chreGetTime
                 U chreGetVersion
                 U chreLog
                 U __stack_chk_fail
                 U __stack_chk_guard
   
   $ cat additional.txt -n
         1  test_symbol
         2  test_symbol
   
   $ /PATH/TO/APPS/tools/mksymtab.sh ./hello_world.o MY_PREFIX -a additional.txt
   #include <nuttx/compiler.h>
   #include <nuttx/symtab.h>
   
   extern void *__aeabi_unwind_cpp_pr1;
   extern void *__stack_chk_fail;
   extern void *__stack_chk_guard;
   extern void *chreGetTime;
   extern void *chreGetVersion;
   extern void *chreLog;
   extern void *test_symbol;
   
   const struct symtab_s MY_PREFIX_exports[] =
   {
     {"__aeabi_unwind_cpp_pr1", &__aeabi_unwind_cpp_pr1},
     {"__stack_chk_fail", &__stack_chk_fail},
     {"__stack_chk_guard", &__stack_chk_guard},
     {"chreGetTime", &chreGetTime},
     {"chreGetVersion", &chreGetVersion},
     {"chreLog", &chreLog},
     {"test_symbol", &test_symbol},
   };
   
   const int MY_PREFIX_nexports = sizeof(MY_PREFIX_exports) / sizeof(struct 
symtab_s);
   ```
   
   - e3844a1b43182e6fa6343f8f74bcc4da2e11cbaa
   ```
   $ cat exports.txt | grep atan2
   atan2Override,atan2
   
   $ /PATH/TO/APPS/tools/mksymtab.sh FOO BAR exports.txt | grep atan2
   extern void *atan2Override;
   {"atan2", &atan2Override},
   ```


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