nuttx/libc/symtab
2015-08-23 09:05:40 -06:00
..
Kconfig Optional canned symtab inclusion to the build. When option CONFIG_LIBC_SYMTAB is selected and symbol table file libc/symtab/canned_symtab.inc is prepared then application can use system provided complete symbol table. The option has substantial effect on system image size. Mainly code/text. If loading of applications at runtime is not planned do not select this. From Pavel Pisa. 2015-08-23 08:38:58 -06:00
lib_symbtab.c Optional canned symtab inclusion to the build. When option CONFIG_LIBC_SYMTAB is selected and symbol table file libc/symtab/canned_symtab.inc is prepared then application can use system provided complete symbol table. The option has substantial effect on system image size. Mainly code/text. If loading of applications at runtime is not planned do not select this. From Pavel Pisa. 2015-08-23 08:38:58 -06:00
Make.defs Optional canned symtab inclusion to the build. When option CONFIG_LIBC_SYMTAB is selected and symbol table file libc/symtab/canned_symtab.inc is prepared then application can use system provided complete symbol table. The option has substantial effect on system image size. Mainly code/text. If loading of applications at runtime is not planned do not select this. From Pavel Pisa. 2015-08-23 08:38:58 -06:00
README.txt Define some symbol export conditions, correct errno and add sleep and usleep. From Pavel Pisa 2015-08-23 09:05:40 -06:00

symtab
======

This directory provide support for canned symbol table which provides
all/most of system and libc services/functions to the application and NSH.

The support is selected by CONFIG_LIBC_SYMTAB option and table has to be
prepared in advance manually.

It can be prepared from NuttX top level directory by next commands

  cat syscall/syscall.csv libc/libc.csv | sort >libc/symtab/canned_symtab.csv
  tools/mksymtab libc/symtab/canned_symtab.csv libc/symtab/canned_symtab.inc

Next code selectes canned symtab from application:

  #include <nuttx/binfmt/canned_symtab.h>
  ...
    canned_symtab_initialize();

The option can have substantial effect on system image size, mainly
code/text.  That is because the instructions to generate canned_symtab.inc
above will cause EVERY interface in the NuttX RTOS and the C library to be
included into build.  Add to that the size of a huge symbol table.

In order to reduce the code/text size, you may want to manually prune the
auto-generated canned_symtab.inc file to remove all interfaces that you do
not wish to include into the base FLASH image.