Michael Jung
4227d2aaa5
binfmt/: Fix FLAT build with BUILTIN support. Fixes problems introduced in a recent commit.
2019-08-25 08:58:30 -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
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
Xiang Xiao
377eb30129
binfmt: Add binfmt_initialize(). All binary formats are now registered centrally vs. in board-specific logic. This simplifies the usage of the binfmt subsystem.
2018-08-23 09:09:39 -06:00
Gregory Nutt
4becaea8e3
This commit extends support for the two-pass build. Its primary purpose is to incorporate source logic generated by applications into the kernel phase of the build.
...
In the two pass build, the application logic is built during the first phase, pass 1. In that phase, the application may generate and install source files in the pass1/directory. The operating system is built during phase 2 of the build. At that time, those source files in the pass1/ directory will be built and incorporated into the kernel address space.
The primary purpose of the pass1/ directory is to such application-generated kernel symbol tables. For an example of the use of this feature, look at apps/examples/module/drivers/Makefile. Kernel symbol tables are needed to support kernel modules. Of course, addition board-specific logic in, say, configs/<board>/src would have to be included to make use of the application-installed symbol tables.
2018-08-07 08:31:00 -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
e523c93391
Several Makefiles: Add .PHONY definitions to prevent 'clean up to date' message weirdness.
2016-05-10 15:44:06 -06:00
Gregory Nutt
e8d0f85c8b
Modules: Add mod_setsymtab to set global symtol table once. Now we can remove symbol table parameters from the insmod call. This will make implementing an NSH insmod command much easier
2015-12-13 08:10:01 -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
4a7fb2cbc1
binfmt: Cosmetic -- rename binfmt_internal.h to binfmt.h. Move related argument copy logic into new file, binfmt_copyargv.c
2015-11-14 07:29:47 -06:00
Gregory Nutt
da7a440b35
execv() is a basic system interface. It should not be in libc/ but rather in sched/task. Its symboltable helper logic also belongs in the kernel but belings in binfmt/ with the other symbol table logic
2014-09-15 10:15:19 -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
Gregory Nutt
f8024cf409
More trailing whilespace removal
2014-04-13 16:22:22 -06:00
patacongo
956bded9c1
Add logic to automatically unload module on exit; Several patches from Mike Smith
...
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5528 42af7a65-404d-4744-a932-0658087f49c3
2013-01-17 14:43:55 +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
f7bc20f341
ZNEO now (almost) builds in Windows native environment
...
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5402 42af7a65-404d-4744-a932-0658087f49c3
2012-11-29 22:27:22 +00:00
patacongo
ef504df1bc
A few more Windows native build fixes for eZ80
...
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5383 42af7a65-404d-4744-a932-0658087f49c3
2012-11-22 21:21:48 +00:00
patacongo
970d030e10
A few more fixes for ez80 Windows Native build (still not enough)
...
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5381 42af7a65-404d-4744-a932-0658087f49c3
2012-11-21 23:22:38 +00:00
patacongo
469ec154c0
Missing comma in EVERY DELFILE/DELDIR macro call in every Makefile
...
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5373 42af7a65-404d-4744-a932-0658087f49c3
2012-11-20 15:47:41 +00:00
patacongo
26c9112ad2
Most of the changes needed to support Windows native clean; distclean is has a problem
...
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5367 42af7a65-404d-4744-a932-0658087f49c3
2012-11-17 18:54:53 +00:00
patacongo
f751d36eee
Move some (hopefully) un-necessary quotes in Makefiles for Mike
...
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5356 42af7a65-404d-4744-a932-0658087f49c3
2012-11-15 17:43:29 +00:00
patacongo
4ee266d94b
Centralized the definition of the INCDIR script in tools/Config.mk
...
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5346 42af7a65-404d-4744-a932-0658087f49c3
2012-11-13 20:24:30 +00:00
patacongo
a5f761c24e
Correct some issues with last check-in; ez80 still does not build
...
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5339 42af7a65-404d-4744-a932-0658087f49c3
2012-11-11 23:44:31 +00:00
patacongo
a1cf659333
Completes removal bash ARCHIVE loop; Adds basic Makefile for native windows build
...
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5338 42af7a65-404d-4744-a932-0658087f49c3
2012-11-11 18:36:28 +00:00
patacongo
3d2879fc4e
Partial change: Removing bash ARCHIVE loop
...
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5335 42af7a65-404d-4744-a932-0658087f49c3
2012-11-11 15:42:12 +00:00
patacongo
8b6ea4c174
A little more ELF loader logic
...
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5257 42af7a65-404d-4744-a932-0658087f49c3
2012-10-25 16:18:20 +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
7a9457bb07
Email address change in nuttx/
...
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5145 42af7a65-404d-4744-a932-0658087f49c3
2012-09-13 18:32:24 +00:00
patacongo
29899e1069
Added exec()
...
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1979 42af7a65-404d-4744-a932-0658087f49c3
2009-07-12 18:43:59 +00:00
patacongo
2cf61be243
Fix a problem that was causing tools/incdir.sh to generate inappropriate paths for Cygwin tools
...
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1941 42af7a65-404d-4744-a932-0658087f49c3
2009-06-24 20:57:34 +00:00
patacongo
66c91ff194
Add symbol table support
...
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1917 42af7a65-404d-4744-a932-0658087f49c3
2009-06-20 19:17:08 +00:00
patacongo
2afd39df07
Fixes for compilation with ez80
...
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1898 42af7a65-404d-4744-a932-0658087f49c3
2009-06-17 22:20:51 +00:00
patacongo
4a1221f35d
Add exec_module
...
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1895 42af7a65-404d-4744-a932-0658087f49c3
2009-06-17 20:25:27 +00:00
patacongo
8ce89fe17d
Add basic module management logic
...
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1894 42af7a65-404d-4744-a932-0658087f49c3
2009-06-17 18:45:48 +00:00
patacongo
fdca08128e
Easing in binfmt support
...
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1892 42af7a65-404d-4744-a932-0658087f49c3
2009-06-17 16:28:50 +00:00
patacongo
c344589c85
Added NXFLAT a bit at a time
...
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1889 42af7a65-404d-4744-a932-0658087f49c3
2009-06-16 22:08:59 +00:00