Xiang Xiao
6a3c2aded6
Fix wait loop and void cast ( #24 )
...
* Simplify EINTR/ECANCEL error handling
1. Add semaphore uninterruptible wait function
2 .Replace semaphore wait loop with a single uninterruptible wait
3. Replace all sem_xxx to nxsem_xxx
* Unify the void cast usage
1. Remove void cast for function because many place ignore the returned value witout cast
2. Replace void cast for variable with UNUSED macro
2020-01-02 10:54:43 -06:00
Gregory Nutt
2925c28f8f
All linker scripts: Preface all _edata defininitions with . = ALIGN(4). Otherwise, the last bytes in the .data section may not be initialized properly. Also convert all linker scripts indent in units of 8-spaces to units of 4-spaces.
2019-09-15 17:22:16 -06:00
Gregory Nutt
da1a561b6e
binfmt/libelf/libelf_bind.c: Make naming of internal type compliant with coding standard. Yes, the ELF32 types do not follow the standard for historical reasons (and will be fixed someday), but let's not perpetuate the naming violation.
2019-03-20 09:34:08 -06:00
Xiang Xiao
64252a298f
arch/: Unify the cache interface for all architectures
2019-03-19 10:37:13 -06:00
anchao
6e69dba341
binfmt/libelf/ and libs/libc/modlib: Add symbol buffer table to reduce filesystem access.
2019-03-19 09:13:50 -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
c17145e550
Revert "binfmt/libelf/libelf_load.c: Remove the guard(CONFIG_BUILD_KERNEL) for umm_initialize()"
...
This commit has to be reverted because it causes errors in build testing.
This reverts commit b9c7a9a18f
.
2019-02-03 18:08:46 -06:00
Xiang Xiao
b9c7a9a18f
binfmt/libelf/libelf_load.c: Remove the guard(CONFIG_BUILD_KERNEL) for umm_initialize()
2019-01-28 06:19:48 -06:00
Gregory Nutt
78c8485b0d
Fix some warnings found in build testing.
2019-01-27 17:23:01 -06:00
Xiang Xiao
b7f958a02e
binfmt/, binfmt/libelf: binfmt/elf: Call umm_initialize as soon as possible otherwise elf_loadctors/elf_loaddtors will fail to allocate memory.
2019-01-26 11:36:38 -06:00
Xiang Xiao
0edcd6b85e
binfmt/libelf, libs/libc/modlib: Optimize elf load speed: (1) Don't zero out memory, (2) Reduce the initial buffer size to 32 bytes.
2019-01-26 11:34:40 -06:00
Xiang Xiao
264a7164bc
binfmt/: If there is an address environment (CONFIG_ARCH_ADDRENV), binfmt/elf doesn't need to free ctor/dtor alloc since freeing the address environment releases the heap automatically.
2019-01-26 11:29:08 -06:00
Xiang Xiao
38ffb98f1b
Kconfig files, binfmt/libelf, libs/libc/machin, libs/libxx: Correct libcxx exception handling by introducing the generic config(CXX_EXCEPTION and CXX_LIBSUPCXX)
2019-01-26 11:23:31 -06:00
Xiang Xiao
095e28d45e
binfmt/, binfmt/libelf/, include/nuttx, libs/libc/machine, libs/libc/modlib, and others: Move elf related arch function to include/nuttx/elf.h because the implementation is located in libs/libc/machine and in order to avoid the conflict with the 3rd party libraries and clean up the file inclusion: (1) Remove redundant elf32.h, (2) Remove nuttx/binfmt/elf.h in libs/libc/machine, (2) Remove nuttx/binfmt/elf.h in modlib, and (4) Rmove nuttx/module.h in modlib.
2019-01-26 11:18:45 -06:00
Gregory Nutt
a7fd58c4db
Squashed commit of the following:
...
many locations: Change occurences of open() followed by file_detach() to file_open(). Change most non-controversion calls to open() to nx_open().
fs/inode/fs_fileopen.c: Flesh out file_open() with some interim, placeholder logic.
fs/inode/fs_fileopen.c: Add a framework for a file_open() implementation (no real logic in place yet).
fs/vfs/fs_open.c: Add nx_open() which is the same as open() except that it does not create a cancellation point nor does it modify the errno variable.
2018-09-15 10:49:41 -06:00
Gregory Nutt
3521aaf944
Squashed commit of the following:
...
binfmt/, configs/, grahics/, libc/, mm/, net/, sched/: OS references to the errno variable should always use the set_errno(), get_errno() macros
arch/arm/src/stm32 and stm32f7: Architecture-specific code is not permitted to modify the errno variable. drivers/ and libc/: OS references to the errno variable should always use the set_errno(), get_errno() macros
2018-01-30 17:57:36 -06:00
Gregory Nutt
181875f3ba
fs/vfs: Add new internal OS interface nx_read(). nx_read() is functionally equivalent to read() except that it does not modify the errno variable and it is not a cancellation point. Changed all references to read() in the OS to nx_read().
2017-10-11 12:13:41 -06:00
Cristian Condurache
2ea054fead
Merged in ccondurache/nuttx/fix_elf_arm_checkarch (pull request #422 )
...
Fix ELF loader up_checkarch on ARM arch
Approved-by: Gregory Nutt <gnutt@nuttx.org>
2017-06-28 16:19:51 +00:00
Cristian Condurache
d4add14823
Fix ELF loader up_checkarch on ARM arch
2017-06-28 18:11:39 +03:00
Yasuhiro Osaki
b1008477ac
binfmt: Fix .dtor memory allocation
...
Jira: PDFW15IS-265
Coverity-ID: 11053
Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>
2017-05-19 17:01:48 +09:00
Yasuhiro Osaki
c109e92962
binfmt: Fix offset value when calling elf_read() in elf_sectname()
...
Jira: PDFW15IS-3030
Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>
2017-04-28 17:23:02 +09:00
Yasuhiro Osaki
dd2efb909a
binfmt: Fix offset value when calling elf_read() in elf_symname()
...
Jira: PDFW15IS-1650
Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>
2017-04-26 14:46:34 +09:00
Gregory Nutt
3fa41c0f18
Kconfig files: Fix some dependencies that have CONFIG_ in the variable name
2016-06-17 19:30:19 -06:00
Gregory Nutt
a1469a3e95
Add CONFIG_DEBUG_ERROR. Change names of *dbg() * *err()
2016-06-11 15:50:49 -06:00
Gregory Nutt
1cdc746726
Rename CONFIG_DEBUG to CONFIG_DEBUG_FEATURES
2016-06-11 14:14:08 -06:00
Gregory Nutt
fc3540cffe
Replace all occurrences of vdbg with vinfo
2016-06-11 11:59:51 -06:00
Gregory Nutt
3a74a438d9
Rename CONFIG_DEBUG_VERBOSE to CONFIG_DEBUG_INFO
2016-06-11 11:50:18 -06:00
Gregory Nutt
05cb7a9043
Call initializer entry point on start-up; do not create a task
2015-12-11 07:27:45 -06:00
Gregory Nutt
45eebacbb4
binfmt/: More spacing/alignment fixes
2015-10-08 19:20:17 -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
c704a5289c
Comment out references to fstat(). It is not yet supported.
2015-06-02 11:43:44 -06:00
Gregory Nutt
6068820bf3
Add support uClibc++ excpetions. This involves additional handling for relative relation types, additional support for unwinding, as well as additional changes. The culmination of a big effort fromo Leo Aloe3132
2015-06-01 14:16:18 -06:00
Gregory Nutt
56dee97fbf
Fix a misnamed symbol in a linker script. I don't think that this symbol is used
2015-05-04 13:45:24 -06:00
Gregory Nutt
916ccc78bb
binfmt: Fix a debug statement that does not have the correct number of arguments. From Leo aloe3132
2015-04-30 14:31:04 -06:00
Gregory Nutt
48271cca05
Make some file section headers more consistent with standard
2015-04-08 08:29:03 -06:00
Gregory Nutt
179fabb019
Add description of work queues to the porting guide. Update comments
2014-10-14 10:21:18 -06:00
Gregory Nutt
dd9e42ec0c
Fix a compile problem noted by Marco Cruz
2014-10-13 12:07:40 -06:00
Gregory Nutt
2311a97ad6
Remaining files under nuttx/binfmt changed to use the corrected syslog interfaces
2014-10-08 15:34:51 -06:00
Gregory Nutt
dadbbb8ac5
Fix some misleading debug output
2014-09-26 14:58:03 -06:00
Gregory Nutt
1329c29ecd
ELF: Critical bugfix.. BSS was not being cleared
2014-09-12 10:32:23 -06:00
Gregory Nutt
205c23b9d6
Add logic to initialize the per-process user heap when each user process is started
2014-09-10 15:55:36 -06:00
Gregory Nutt
c458e72b70
ELF relocations. Some relocation types do not have a named symbol associated with them. The design did not account for that case
2014-09-09 16:52:51 -06:00
Gregory Nutt
b63eea45b6
Improved binfmt debug output
2014-09-07 13:47:01 -06:00
Gregory Nutt
39c95050ab
Fix typo in ELF variable name (only see it when C++ support is enabled)
2014-09-07 13:46:13 -06:00
Gregory Nutt
205260d5e2
Reanem kzalloc to kmm_zalloc for consistency
2014-08-31 17:34:44 -06:00
Gregory Nutt
1780810d3d
Rename kmalloc to kmm_malloc for consistency
2014-08-31 17:26:36 -06:00
Gregory Nutt
54fa3b0b59
Rename kfree to kmm_free for consistency with other naming conventions
2014-08-31 17:04:02 -06:00
Gregory Nutt
9aca0c1c84
Rename kumalloc to kumm_malloc and kuzalloc to kumm_zalloc for consistency with other naming
2014-08-31 16:24:24 -06:00
Gregory Nutt
9ad7dae4c1
Rename kufree to kumm_free for consistency with other naming
2014-08-31 16:15:11 -06:00
Gregory Nutt
9cd1ddada4
Rename kmemalign to kmm_memalign and krealloc to kmm_realooc for consistency with other naming
2014-08-31 15:27:37 -06:00
Gregory Nutt
0db7da1858
Add up_addrenv_coherent which will be called before address environment switches
2014-08-26 14:53:19 -06:00
Gregory Nutt
d52599fe8e
Change when address environment is instantiated; there are/were locations where access is made to the allocation address environment when it is not yet in place
2014-08-26 07:57:30 -06:00
Gregory Nutt
66a5328a68
Cortex-A address environment: Fix some section mapping and address increments
2014-08-26 06:33:26 -06:00
Gregory Nutt
1725946447
Misc changed to get the SAMA5 ELF configuration with address environments working
2014-08-25 13:28:13 -06:00
Gregory Nutt
e0a48b60b6
Change naming of ELF interfaces from arch_ to up_ for consistency
2014-08-25 06:47:14 -06:00
Gregory Nutt
7aea220ebf
After cached related fix, the ELF example is now functional
2014-08-24 14:12:45 -06:00
Gregory Nutt
1708a133f5
Fix some compilation errors in ELF logic that were introduced in a recent commit
2014-08-24 12:57:02 -06:00
Gregory Nutt
241a7e17bd
addrenv interface changes: up_addrenv_create() may need to create .text and .bss/.data separately because of differing access privileges (read/execute vs read/write). And, as a consequence, up_addrenv_vaddr() needs to be split into up_addrenv_vtext(0 and up_addrenv_vdata().
2014-08-24 11:54:14 -06:00
Gregory Nutt
1624e2fbcf
Change CONFIG_ADDRENV to CONFIG_ARCH_ADDRENV; change how it is selected -- the architecure must first declare support
2014-08-24 06:42: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
Gregory Nutt
f8024cf409
More trailing whilespace removal
2014-04-13 16:22:22 -06:00
Gregory Nutt
303cc1902b
Make sure that there is one space between if and condition
2014-04-12 12:53:19 -06:00
Gregory Nutt
91b002a043
Many changes to reduce complaints from CppCheck. Several latent bugs fixes, but probably some new typos introduced
2014-02-10 18:08:49 -06:00
Gregory Nutt
bc46b447dc
Fix all occurrences of "the the" in documentation and comments
2013-08-27 09:40:19 -06:00
patacongo
1c52dce216
More changes for a kernel-mode allocator (more to be done)
...
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5724 42af7a65-404d-4744-a932-0658087f49c3
2013-03-09 21:12:20 +00:00
patacongo
ad430fc198
Add syslog.h; rename lib_rawprintf() to syslog()
...
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5578 42af7a65-404d-4744-a932-0658087f49c3
2013-01-28 21:55:16 +00:00
patacongo
2545f5c1a9
Verify PATH variable in apps/examples/elf
...
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5445 42af7a65-404d-4744-a932-0658087f49c3
2012-12-19 22:18:30 +00:00
patacongo
a160442b78
Incorporate address environment interfaces in binfmt/ logic
...
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5443 42af7a65-404d-4744-a932-0658087f49c3
2012-12-19 17:54:26 +00:00
patacongo
08404c8492
Add documentation for the binary loader
...
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5278 42af7a65-404d-4744-a932-0658087f49c3
2012-10-30 14:32:52 +00:00
patacongo
948b57f2af
C++ static destructors work with ELF load too now
...
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5274 42af7a65-404d-4744-a932-0658087f49c3
2012-10-29 20:43:35 +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
0f70f8c9e1
Finish implemention of ELF loader static constructor support. Still some issues.
...
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5272 42af7a65-404d-4744-a932-0658087f49c3
2012-10-29 00:52:23 +00:00
patacongo
2fc26f191d
The ELF loader is basically functional (needs more testing)
...
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5265 42af7a65-404d-4744-a932-0658087f49c3
2012-10-27 00:04:47 +00:00
patacongo
49ed90be32
ARM and ARMv7-M ELF support; STM32F4Discovery ELF loader test configuration
...
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5264 42af7a65-404d-4744-a932-0658087f49c3
2012-10-26 19:53:20 +00:00
patacongo
14dae62821
Rename elf.h to elf32.h; Additional ELF loader changes
...
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5263 42af7a65-404d-4744-a932-0658087f49c3
2012-10-26 02:42:39 +00:00
patacongo
abf9559979
More ELF loader changes
...
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5261 42af7a65-404d-4744-a932-0658087f49c3
2012-10-25 22:10:56 +00:00
patacongo
87e9dbc4c8
Finishes basic coding of ELF file support
...
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5259 42af7a65-404d-4744-a932-0658087f49c3
2012-10-25 19:21:47 +00:00
patacongo
86618a177b
Add x86 ELF support
...
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5258 42af7a65-404d-4744-a932-0658087f49c3
2012-10-25 16:37:31 +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
bba464fd29
A little more ELF loader logic
...
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5256 42af7a65-404d-4744-a932-0658087f49c3
2012-10-25 03:13:11 +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
bff206a49b
A little more ELF loader logic
...
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5254 42af7a65-404d-4744-a932-0658087f49c3
2012-10-25 01:23:03 +00:00
patacongo
00ad1f0f4a
A little more ELF loader logic
...
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5253 42af7a65-404d-4744-a932-0658087f49c3
2012-10-24 23:40:31 +00:00
patacongo
b8f437ef4b
Move binfmt.h, nxflat.h, elf.h, and symtab.h to include/nuttx/binfmt/
...
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5252 42af7a65-404d-4744-a932-0658087f49c3
2012-10-24 20:19:44 +00:00
patacongo
fd01281b68
Flesh out include/elf.h
...
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5251 42af7a65-404d-4744-a932-0658087f49c3
2012-10-24 18:22:15 +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