Commit Graph

32 Commits

Author SHA1 Message Date
Byron Ellacott c9db653c8d symtabs: improve handling of symbol lookups
When CONFIG_SYMTAB_ORDEREDBYNAME is selected most code will use
the ordered search function. When it is not selected no code will
use the ordered search function. This change merges the two
functions and varies its behaviour based on the config setting,
such that all callers can simply call the one search function
and get the best behaviour.

An additional configuration option allows leading underscores to
be stripped from symbols being relocated in loaded objects. This
allows toolchains which prefix C symbol with underscores to make
loadable ELF objects.
2021-03-16 10:18:17 -07:00
Abdelatif Guettouche d85c432278 Few typos fixes in binfmt and libc/machine.
Signed-off-by: Abdelatif Guettouche <abdelatif.guettouche@espressif.com>
2021-03-11 10:35:40 +08:00
Xiang Xiao b932b653dd arch: Select 64bit elf base on the architecture characteristic
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
Change-Id: I09eec5a76f255016a910cfec3b3f70cd7577525e
2020-05-31 21:38:32 -07:00
YAMAMOTO Takashi 24c9fa3cd9 Kconfig: Move ELF_64BIT out of !BINFMT_DISABLE
Because it's also used by LIBC_MODLIB.
2020-03-27 00:04:36 -05:00
Gregory Nutt 677b0bf47e Remove all support for the ancient Pascal compiler and pcode interpreter. 2019-11-21 06:58:38 -06:00
Xiang Xiao 2d794f4102 Configuration: Auto-select CONFIG_BUILD_LOADABLE when either CONFIG_BUILD_KERNEL or CONFIG_BINFMT_LOADABLE is selected. 2019-09-30 06:57:16 -06:00
Gregory Nutt dd97fb991b This commit moves shared builtin information out of binfmt/libbuiltin and into libs/libc/builtin where it can be shared. This should permit builtin application in the PROTECTED build where binfmt/libbuiltin is not available in user space.
Squashed commit of the following:

    Correct some additional compile-related issues.

    Move  include/nuttx/binfmt/builtin.h to include/nuttx/lib/builtin.h.  Move apps/builtin/lib_builtin_forindex.c to libs/libc/builtin/lib_builtin_forindex.c.

    Move binfmt/libbuiltin to libs/libc/builtin.  There are calls made directly from apps/nshlib into this logic and hence, must be part of a library that can be shared between the OS and applications.
2019-08-23 09:07:40 -06:00
anchao 2f2d432f7c binfmt/libelf and libs/libc/modlib: Add relocation buffer table to reduce access fs. 2019-03-19 08:57:13 -06:00
Gregory Nutt 6e64b05ef3 Update some Kconfig comments. 2019-01-26 13:34:01 -06:00
nchao 6509a0c0ca binfmt/ and libs/libc: Make exepath_*() more common:
1. Move exepath_*() related code to libc/misc
  1. Rename exepath_ to envpath_
  2. Rename BINFMT_EXEPATH to LIB_ENVPATH

libs/libc/modlib:  Add pre module library symbol table support
2018-11-08 07:27:14 -06:00
Gregory Nutt 20a86dfc1b binfmt/ and sched/group: Re-architect the way that loadable ELF or NXFLAT modules are unloaded. Memory resources must be recovered when the task loaded into memory exits. The originmal implementatino used the death-of-child SIGCHLD signal to perform the unload. There are several problems with this: It is overly complex, it requires that the parent task stay resident while the loaded task runs, and it has fatal logic flaws in the protected and kernel model builds because the user signal handler attempts to run in the kernel address space. This commit corrects with using a mindlessly simply BINFMT callback when the task exits. 2018-08-05 08:09:54 -06:00
Gregory Nutt 664af2a69b Default for CONFIG_EXECFUNCS_HAVE_SYMTAB should be 'not set' 2018-07-13 14:56:45 -06:00
Alan Carvalho de Assis 283b73edc5 Fix lots of typos in C comments and Kconfig help text 2018-07-08 18:24:45 -06:00
Gregory Nutt edd9186540 ELF: Move ARMv7-A and ARMv7-R versions of ELF relocation logic to libc/machine 2017-01-21 14:40:26 -06:00
Gregory Nutt 378b22ec07 binfmt: Remove PCODE dependency on apps/pcode.h 2016-06-30 11:25:59 -06:00
Gregory Nutt 49554fe4fc Move module support from binfmt/ to sched/ so that it can be configured and built independently from binfmt features 2015-12-12 07:09:17 -06:00
Gregory Nutt 44e45f0f91 insmod is code complete and ready for test 2015-12-11 10:55:21 -06:00
Gregory Nutt 342f5fe33d Fix references to the no-longer-existent misc/ directory in comments, README files, and documentation 2015-06-28 08:08:57 -06:00
Gregory Nutt e3ff0689bb Rename CONFIG_NUTTX_KERNEL to CONFIG_BUILD_PROTECTED; Partially integrate new CONFIG_BUILD_KERNEL 2014-08-29 14:47:22 -06:00
Gregory Nutt a3e2598d90 Move P-Code execution logic from interpreters/prun to system/prun 2014-05-09 11:09:43 -06:00
Gregory Nutt 415500c6d9 Make sure apps/examples/pashello still builds; update comments; refresh configurations 2014-05-09 10:33:23 -06:00
Gregory Nutt ed2e4a15dc Create P-Code execution helper in apps/interpreters/prun; The P-Code binary format is functional except that there are still some modularity and kernel build issues that need to be addressed. 2014-05-09 08:52:11 -06:00
Gregory Nutt b6f264488a BINFMT: A framework to support a P-code binary format (a work in progress) 2014-05-07 13:47:52 -06:00
patacongo 151dfee1f9 Add a start hook that can be setup to call a function in the context of a new thread before the new threads main() has been called.
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5571 42af7a65-404d-4744-a932-0658087f49c3
2013-01-27 15:52:58 +00:00
patacongo e5908285c4 Rename apps/include/apps.h to builtin.h. Move parts of apps/builtins/exec_builtin.c to binfmt/libbuiltin/libbuiltin_utils.c
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5524 42af7a65-404d-4744-a932-0658087f49c3
2013-01-16 17:05:00 +00:00
patacongo c2be20d319 Add basic hooks to support a PATH variable (more is needed)
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5440 42af7a65-404d-4744-a932-0658087f49c3
2012-12-16 21:15:27 +00:00
patacongo 0f218d0e00 Add support for the Z180 MMU and generic hooks for processes
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5428 42af7a65-404d-4744-a932-0658087f49c3
2012-12-11 18:04:04 +00:00
patacongo ef6dcd6f90 C++ constructors work with ELF load now
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5273 42af7a65-404d-4744-a932-0658087f49c3
2012-10-29 19:32:05 +00:00
patacongo e6137637d3 Fix Kconfig files broken by last check-in
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5255 42af7a65-404d-4744-a932-0658087f49c3
2012-10-25 01:34:21 +00:00
patacongo b49a2605d0 Add framework to support loadable ELF modules (not much logic in place yet)
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5250 42af7a65-404d-4744-a932-0658087f49c3
2012-10-24 16:46:12 +00:00
patacongo 330b89ca0e Add kconfig documentation
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@4567 42af7a65-404d-4744-a932-0658087f49c3
2012-04-06 16:45:52 +00:00
patacongo 4b8c0c41c8 Adding skeleton Kconfig files (part 1 of 2)
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@4564 42af7a65-404d-4744-a932-0658087f49c3
2012-04-06 15:49:35 +00:00