Stuart Ianna
6492f0172e
binfmt/elf: Allow the userspace ELF type to be defined by board configuration.
...
This change allows boards to define an additional kconfig option, which specifies the final link format of application executables.
By selecting `CONFIG_BINFMT_ELF_RELOCATABLE`, and providing an appropriate linker script, applications can be fully linked, removing the need to process relocations.
2023-06-28 15:16:28 +08:00
Xiang Xiao
5025fbef8d
Rename LIB_ to LIBC_ for all libc Kconfig
...
follow other libc component naming convention
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2021-08-05 19:45:24 +02:00
jordi
f3af6edf93
Kconfig: add quotes in source to clean warnings from setconfig
...
To avoid the setconfig warning "style: quotes recommended around xxx in
source xxx"
2021-07-23 02:32:19 -07:00
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