mirror of
https://github.com/apache/nuttx.git
synced 2026-02-05 19:56:43 +08:00
libc/elf: rename modlib to libelf
Renaming "modlib" to "libelf" is more in line with the implementation content, which makes it easier for individual developers to understand the capabilities of this module. CONFIG_LIBC_MODLIB -> CONFIG_LIBC_ELF Signed-off-by: chao an <anchao.archer@bytedance.com>
This commit is contained in:
@@ -54,9 +54,9 @@ options:
|
||||
|
||||
6. Linker scripts. You might also want to use a linker scripts to combine
|
||||
sections better. An example linker script is at
|
||||
``nuttx/binfmt/libelf/gnu-elf.ld``. That example might have to be tuned for
|
||||
``nuttx/binfmt/elf/gnu-elf.ld``. That example might have to be tuned for
|
||||
your particular linker output to position additional sections correctly. The
|
||||
GNU LD ``LDELFFLAGS`` then might be::
|
||||
|
||||
LDELFFLAGS = -r -e main -T$(TOPDIR)/binfmt/libelf/gnu-elf.ld
|
||||
LDELFFLAGS = -r -e main -T$(TOPDIR)/binfmt/elf/gnu-elf.ld
|
||||
|
||||
|
||||
@@ -55,8 +55,8 @@ configuration options:
|
||||
|
||||
6. Linker scripts. You might also want to use a linker scripts to combine
|
||||
sections better. An example linker script is at
|
||||
``nuttx/libc/modlib/gnu-elf.ld``. That example might have to be tuned for your
|
||||
``nuttx/libc/elf/gnu-elf.ld``. That example might have to be tuned for your
|
||||
particular linker output to position additional sections correctly. The GNU
|
||||
LD ``LDMODULEFLAGS`` then might be::
|
||||
|
||||
LDMODULEFLAGS = -r -e module_initialize -T$(TOPDIR)/libc/modlib/gnu-elf.ld
|
||||
LDMODULEFLAGS = -r -e module_initialize -T$(TOPDIR)/libc/elf/gnu-elf.ld
|
||||
|
||||
@@ -66,8 +66,8 @@ Test-specific configuration options:
|
||||
|
||||
6. Linker scripts. You might also want to use a linker scripts to combine
|
||||
sections better. An example linker script is at
|
||||
``nuttx/binfmt/libelf/gnu-elf.ld``. That example might have to be tuned for
|
||||
``nuttx/binfmt/elf/gnu-elf.ld``. That example might have to be tuned for
|
||||
your particular linker output to position additional sections correctly. The
|
||||
GNU LD ``LDELFFLAGS`` then might be::
|
||||
|
||||
LDELFFLAGS = -r -e main -T$(TOPDIR)/binfmt/libelf/gnu-elf.ld
|
||||
LDELFFLAGS = -r -e main -T$(TOPDIR)/binfmt/elf/gnu-elf.ld
|
||||
|
||||
@@ -53,8 +53,8 @@ system. At run time, the shared library is installed and exercised. Requires
|
||||
|
||||
6. Linker scripts. You might also want to use a linker scripts to combine
|
||||
sections better. An example linker script is at
|
||||
``nuttx/libc/modlib/gnu-elf.ld``. That example might have to be tuned for your
|
||||
``nuttx/libc/elf/gnu-elf.ld``. That example might have to be tuned for your
|
||||
particular linker output to position additional sections correctly. The GNU
|
||||
LD ``LDMODULEFLAGS`` then might be::
|
||||
|
||||
LDMODULEFLAGS = -r -e module_initialize -T$(TOPDIR)/libc/modlib/gnu-elf.ld
|
||||
LDMODULEFLAGS = -r -e module_initialize -T$(TOPDIR)/libc/elf/gnu-elf.ld
|
||||
|
||||
@@ -43,7 +43,7 @@ functions. So we have::
|
||||
inttypes - inttypes.h
|
||||
machine - Various architecture-specific implementations.
|
||||
math - math.h
|
||||
modlib - Part of module and shared library logic: nuttx/lib/modlib.h
|
||||
elf - Part of module and shared library logic: nuttx/lib/elf.h
|
||||
net - Various network-related header files: netinet/ether.h, arpa/inet.h
|
||||
pthread - pthread.h
|
||||
pwd - pwd.h
|
||||
|
||||
@@ -536,7 +536,7 @@ A macOS port is available at: <https://github.com/discoteq/flock>
|
||||
|
||||
* Xcode (the native compiler and the rest of the toolchain)
|
||||
|
||||
* ELF toolchain (if you want to build modules for CONFIG_LIBC_MODLIB)
|
||||
* ELF toolchain (if you want to build modules for CONFIG_LIBC_ELF)
|
||||
|
||||
brew install x86_64-elf-gcc
|
||||
|
||||
|
||||
@@ -1819,10 +1819,10 @@ Configuration sub-directories
|
||||
CONFIG_FS_ROMFS=y
|
||||
CONFIG_LIBC_ARCH_ELF=y
|
||||
CONFIG_MODULE=y
|
||||
CONFIG_LIBC_MODLIB=y
|
||||
CONFIG_MODLIB_ALIGN_LOG2=2
|
||||
CONFIG_MODLIB_BUFFERINCR=32
|
||||
CONFIG_MODLIB_BUFFERSIZE=128
|
||||
CONFIG_LIBC_ELF=y
|
||||
CONFIG_LIBC_ELF_ALIGN_LOG2=2
|
||||
CONFIG_LIBC_ELF_BUFFERINCR=32
|
||||
CONFIG_LIBC_ELF_BUFFERSIZE=128
|
||||
|
||||
Add the following for testing shared libraries in the FLAT
|
||||
build:
|
||||
|
||||
@@ -389,11 +389,11 @@ the nsh configuration include these additions to the configuration file::
|
||||
CONFIG_FS_ROMFS=y
|
||||
CONFIG_LIBC_ARCH_ELF=y
|
||||
CONFIG_MODULE=y
|
||||
CONFIG_LIBC_MODLIB=y
|
||||
CONFIG_MODLIB_MAXDEPEND=2
|
||||
CONFIG_MODLIB_ALIGN_LOG2=2
|
||||
CONFIG_MODLIB_BUFFERSIZE=128
|
||||
CONFIG_MODLIB_BUFFERINCR=32
|
||||
CONFIG_LIBC_ELF=y
|
||||
CONFIG_LIBC_ELF_MAXDEPEND=2
|
||||
CONFIG_LIBC_ELF_ALIGN_LOG2=2
|
||||
CONFIG_LIBC_ELF_BUFFERSIZE=128
|
||||
CONFIG_LIBC_ELF_BUFFERINCR=32
|
||||
|
||||
The could be followed may be added for testing shared libraries in the
|
||||
FLAT build using apps/examples/sotest (assuming that you also have SD
|
||||
@@ -448,10 +448,10 @@ NOTES:
|
||||
CONFIG_FS_ROMFS=y
|
||||
CONFIG_LIBC_ARCH_ELF=y
|
||||
CONFIG_MODULE=y
|
||||
CONFIG_LIBC_MODLIB=y
|
||||
CONFIG_MODLIB_ALIGN_LOG2=2
|
||||
CONFIG_MODLIB_BUFFERINCR=32
|
||||
CONFIG_MODLIB_BUFFERSIZE=128
|
||||
CONFIG_LIBC_ELF=y
|
||||
CONFIG_LIBC_ELF_ALIGN_LOG2=2
|
||||
CONFIG_LIBC_ELF_BUFFERINCR=32
|
||||
CONFIG_LIBC_ELF_BUFFERSIZE=128
|
||||
|
||||
Add the following for testing shared libraries in the FLAT
|
||||
build::
|
||||
|
||||
@@ -1438,11 +1438,11 @@ other NSH configurations include these additions to the configuration file::
|
||||
CONFIG_FS_ROMFS=y
|
||||
CONFIG_LIBC_ARCH_ELF=y
|
||||
CONFIG_MODULE=y
|
||||
CONFIG_LIBC_MODLIB=y
|
||||
CONFIG_MODLIB_MAXDEPEND=2
|
||||
CONFIG_MODLIB_ALIGN_LOG2=2
|
||||
CONFIG_MODLIB_BUFFERSIZE=128
|
||||
CONFIG_MODLIB_BUFFERINCR=32
|
||||
CONFIG_LIBC_ELF=y
|
||||
CONFIG_LIBC_ELF_MAXDEPEND=2
|
||||
CONFIG_LIBC_ELF_ALIGN_LOG2=2
|
||||
CONFIG_LIBC_ELF_BUFFERSIZE=128
|
||||
CONFIG_LIBC_ELF_BUFFERINCR=32
|
||||
|
||||
The could be followed may be added for testing shared libraries in the
|
||||
FLAT build using apps/examples/sotest (assuming that you also have SD
|
||||
|
||||
@@ -748,14 +748,14 @@ apps/interpreters/minibasic.
|
||||
module
|
||||
------
|
||||
|
||||
This is a configuration to test CONFIG_LIBC_MODLIB with 64-bit modules.
|
||||
This is a configuration to test CONFIG_LIBC_ELF with 64-bit modules.
|
||||
This has apps/examples/module enabled.
|
||||
This configuration is intended for 64-bit host OS.
|
||||
|
||||
module32
|
||||
--------
|
||||
|
||||
This is a configuration to test CONFIG_LIBC_MODLIB with CONFIG_SIM_M32
|
||||
This is a configuration to test CONFIG_LIBC_ELF with CONFIG_SIM_M32
|
||||
and 32-bit modules.
|
||||
This has apps/examples/module enabled.
|
||||
This configuration is intended for 64-bit host OS.
|
||||
@@ -1353,14 +1353,14 @@ with an MTD RAM driver to simulate the FLASH part.
|
||||
sotest
|
||||
------
|
||||
|
||||
This is a configuration to test CONFIG_LIBC_MODLIB with 64-bit modules.
|
||||
This is a configuration to test CONFIG_LIBC_ELF with 64-bit modules.
|
||||
This has apps/examples/sotest enabled.
|
||||
This configuration is intended for 64-bit host OS.
|
||||
|
||||
sotest32
|
||||
--------
|
||||
|
||||
This is a configuration to test CONFIG_LIBC_MODLIB with CONFIG_SIM_M32
|
||||
This is a configuration to test CONFIG_LIBC_ELF with CONFIG_SIM_M32
|
||||
and 32-bit modules.
|
||||
This has apps/examples/sotest enabled.
|
||||
This configuration is intended for 64-bit host OS.
|
||||
|
||||
2
Kconfig
2
Kconfig
@@ -801,7 +801,7 @@ endif # DEBUG_AUDIO
|
||||
config DEBUG_BINFMT
|
||||
bool "Binary Loader Debug Features"
|
||||
default n
|
||||
depends on !BINFMT_DISABLE || LIBC_MODLIB
|
||||
depends on !BINFMT_DISABLE || LIBC_ELF
|
||||
---help---
|
||||
Enable binary loader debug features.
|
||||
|
||||
|
||||
@@ -531,7 +531,7 @@ endif
|
||||
# Loadable module definitions
|
||||
|
||||
CMODULEFLAGS = $(CFLAGS) -fvisibility=hidden -mlong-calls # --target1-abs
|
||||
LDMODULEFLAGS = -r -T $(call CONVERT_PATH,$(TOPDIR)/libs/libc/modlib/gnu-elf.ld)
|
||||
LDMODULEFLAGS = -r -T $(call CONVERT_PATH,$(TOPDIR)/libs/libc/elf/gnu-elf.ld)
|
||||
|
||||
# ELF module definitions
|
||||
|
||||
@@ -558,7 +558,7 @@ ifneq ($(CONFIG_BUILD_KERNEL),y)
|
||||
LDELFFLAGS += $(TOPDIR)$(DELIM)arch$(DELIM)arm$(DELIM)src$(DELIM)crt0.o
|
||||
endif
|
||||
|
||||
LDELFFLAGS += -e __start -T $(call CONVERT_PATH,$(TOPDIR)$(DELIM)libs$(DELIM)libc$(DELIM)modlib$(DELIM)gnu-elf.ld)
|
||||
LDELFFLAGS += -e __start -T $(call CONVERT_PATH,$(TOPDIR)$(DELIM)libs$(DELIM)libc$(DELIM)elf$(DELIM)gnu-elf.ld)
|
||||
|
||||
# Zig toolchain
|
||||
|
||||
|
||||
@@ -240,7 +240,7 @@ endif
|
||||
# Loadable module definitions
|
||||
|
||||
CMODULEFLAGS = $(CFLAGS) -fvisibility=hidden # --target1-abs
|
||||
LDMODULEFLAGS = -r -T $(call CONVERT_PATH,$(TOPDIR)/libs/libc/modlib/gnu-elf.ld)
|
||||
LDMODULEFLAGS = -r -T $(call CONVERT_PATH,$(TOPDIR)/libs/libc/elf/gnu-elf.ld)
|
||||
|
||||
# ELF module definitions
|
||||
|
||||
@@ -254,4 +254,4 @@ ifneq ($(CONFIG_BUILD_KERNEL),y)
|
||||
|
||||
LDELFFLAGS += $(TOPDIR)$(DELIM)arch$(DELIM)arm64$(DELIM)src$(DELIM)crt0.o
|
||||
endif
|
||||
LDELFFLAGS += -T $(call CONVERT_PATH,$(TOPDIR)$(DELIM)libs$(DELIM)libc$(DELIM)modlib$(DELIM)gnu-elf.ld)
|
||||
LDELFFLAGS += -T $(call CONVERT_PATH,$(TOPDIR)$(DELIM)libs$(DELIM)libc$(DELIM)elf$(DELIM)gnu-elf.ld)
|
||||
|
||||
@@ -173,7 +173,7 @@ endif
|
||||
# Loadable module definitions
|
||||
|
||||
CMODULEFLAGS = $(CFLAGS) -fvisibility=hidden
|
||||
LDMODULEFLAGS = -r -T $(call CONVERT_PATH,$(TOPDIR)/libs/libc/modlib/gnu-elf.ld)
|
||||
LDMODULEFLAGS = -r -T $(call CONVERT_PATH,$(TOPDIR)/libs/libc/elf/gnu-elf.ld)
|
||||
|
||||
# ELF module definitions
|
||||
|
||||
@@ -181,4 +181,4 @@ CELFFLAGS = $(CFLAGS) -fvisibility=hidden
|
||||
CXXELFFLAGS = $(CXXFLAGS) -fvisibility=hidden
|
||||
|
||||
LDELFFLAGS = -r -e __start
|
||||
LDELFFLAGS += -T $(call CONVERT_PATH,$(TOPDIR)$(DELIM)libs$(DELIM)libc$(DELIM)modlib$(DELIM)gnu-elf.ld)
|
||||
LDELFFLAGS += -T $(call CONVERT_PATH,$(TOPDIR)$(DELIM)libs$(DELIM)libc$(DELIM)elf$(DELIM)gnu-elf.ld)
|
||||
|
||||
@@ -103,7 +103,7 @@ endif
|
||||
## Loadable module definitions
|
||||
|
||||
CMODULEFLAGS = $(CFLAGS) -fvisibility=hidden
|
||||
LDMODULEFLAGS = -r -T $(call CONVERT_PATH,$(TOPDIR)/libs/libc/modlib/gnu-elf.ld)
|
||||
LDMODULEFLAGS = -r -T $(call CONVERT_PATH,$(TOPDIR)/libs/libc/elf/gnu-elf.ld)
|
||||
|
||||
# ELF module definitions
|
||||
|
||||
@@ -111,4 +111,4 @@ CELFFLAGS = $(CFLAGS) -fvisibility=hidden
|
||||
CXXELFFLAGS = $(CXXFLAGS) -fvisibility=hidden
|
||||
|
||||
LDELFFLAGS = -r -e __start
|
||||
LDELFFLAGS += -T $(call CONVERT_PATH,$(TOPDIR)$(DELIM)libs$(DELIM)libc$(DELIM)modlib$(DELIM)gnu-elf.ld)
|
||||
LDELFFLAGS += -T $(call CONVERT_PATH,$(TOPDIR)$(DELIM)libs$(DELIM)libc$(DELIM)elf$(DELIM)gnu-elf.ld)
|
||||
|
||||
@@ -92,7 +92,7 @@ CPP = $(CROSSDEV)/cevaxccc -mquiet -Wa,-quiet -E -P -x c
|
||||
# Loadable module definitions
|
||||
|
||||
CMODULEFLAGS = $(CFLAGS) -fvisibility=hidden
|
||||
LDMODULEFLAGS = -r -T $(call CONVERT_PATH,$(TOPDIR)/libs/libc/modlib/gnu-elf.ld)
|
||||
LDMODULEFLAGS = -r -T $(call CONVERT_PATH,$(TOPDIR)/libs/libc/elf/gnu-elf.ld)
|
||||
|
||||
# ELF module definitions
|
||||
|
||||
@@ -100,4 +100,4 @@ CELFFLAGS = $(CFLAGS) -fvisibility=hidden
|
||||
CXXELFFLAGS = $(CXXFLAGS) -fvisibility=hidden
|
||||
|
||||
LDELFFLAGS = -r -e __start
|
||||
LDELFFLAGS += -T $(call CONVERT_PATH,$(TOPDIR)$(DELIM)libs$(DELIM)libc$(DELIM)modlib$(DELIM)gnu-elf.ld)
|
||||
LDELFFLAGS += -T $(call CONVERT_PATH,$(TOPDIR)$(DELIM)libs$(DELIM)libc$(DELIM)elf$(DELIM)gnu-elf.ld)
|
||||
|
||||
@@ -97,7 +97,7 @@ CPP = $(CROSSDEV)/cevaxm6cc -mquiet -Wa,-quiet -E -P -x c
|
||||
# Loadable module definitions
|
||||
|
||||
CMODULEFLAGS = $(CFLAGS) -fvisibility=hidden
|
||||
LDMODULEFLAGS = -r -T $(call CONVERT_PATH,$(TOPDIR)/libs/libc/modlib/gnu-elf.ld)
|
||||
LDMODULEFLAGS = -r -T $(call CONVERT_PATH,$(TOPDIR)/libs/libc/elf/gnu-elf.ld)
|
||||
|
||||
# ELF module definitions
|
||||
|
||||
@@ -105,4 +105,4 @@ CELFFLAGS = $(CFLAGS) -fvisibility=hidden
|
||||
CXXELFFLAGS = $(CXXFLAGS) -fvisibility=hidden
|
||||
|
||||
LDELFFLAGS = -r -e __start
|
||||
LDELFFLAGS += -T $(call CONVERT_PATH,$(TOPDIR)$(DELIM)libs$(DELIM)libc$(DELIM)modlib$(DELIM)gnu-elf.ld)
|
||||
LDELFFLAGS += -T $(call CONVERT_PATH,$(TOPDIR)$(DELIM)libs$(DELIM)libc$(DELIM)elf$(DELIM)gnu-elf.ld)
|
||||
|
||||
@@ -318,7 +318,7 @@ endif
|
||||
# Loadable module definitions
|
||||
|
||||
CMODULEFLAGS = $(CFLAGS) -fvisibility=hidden
|
||||
LDMODULEFLAGS = -r -T $(call CONVERT_PATH,$(TOPDIR)/libs/libc/modlib/gnu-elf.ld)
|
||||
LDMODULEFLAGS = -r -T $(call CONVERT_PATH,$(TOPDIR)/libs/libc/elf/gnu-elf.ld)
|
||||
|
||||
# ELF module definitions
|
||||
|
||||
@@ -326,4 +326,4 @@ CELFFLAGS = $(CFLAGS) -fvisibility=hidden
|
||||
CXXELFFLAGS = $(CXXFLAGS) -fvisibility=hidden
|
||||
|
||||
LDELFFLAGS = -r -e __start
|
||||
LDELFFLAGS += -T $(call CONVERT_PATH,$(TOPDIR)$(DELIM)libs$(DELIM)libc$(DELIM)modlib$(DELIM)gnu-elf.ld)
|
||||
LDELFFLAGS += -T $(call CONVERT_PATH,$(TOPDIR)$(DELIM)libs$(DELIM)libc$(DELIM)elf$(DELIM)gnu-elf.ld)
|
||||
|
||||
@@ -134,7 +134,7 @@ endif
|
||||
# Loadable module definitions
|
||||
|
||||
CMODULEFLAGS = $(CFLAGS) -fvisibility=hidden
|
||||
LDMODULEFLAGS = -r -T $(call CONVERT_PATH,$(TOPDIR)/libs/libc/modlib/gnu-elf.ld)
|
||||
LDMODULEFLAGS = -r -T $(call CONVERT_PATH,$(TOPDIR)/libs/libc/elf/gnu-elf.ld)
|
||||
|
||||
# ELF module definitions
|
||||
|
||||
@@ -142,4 +142,4 @@ CELFFLAGS = $(CFLAGS) -fvisibility=hidden
|
||||
CXXELFFLAGS = $(CXXFLAGS) -fvisibility=hidden
|
||||
|
||||
LDELFFLAGS = -r -e __start
|
||||
LDELFFLAGS += -T $(call CONVERT_PATH,$(TOPDIR)$(DELIM)libs$(DELIM)libc$(DELIM)modlib$(DELIM)gnu-elf.ld)
|
||||
LDELFFLAGS += -T $(call CONVERT_PATH,$(TOPDIR)$(DELIM)libs$(DELIM)libc$(DELIM)elf$(DELIM)gnu-elf.ld)
|
||||
|
||||
@@ -82,7 +82,7 @@ endif
|
||||
# Loadable module definitions
|
||||
|
||||
CMODULEFLAGS = $(CFLAGS) -fvisibility=hidden
|
||||
LDMODULEFLAGS = -r -T $(call CONVERT_PATH,$(TOPDIR)/libs/libc/modlib/gnu-elf.ld)
|
||||
LDMODULEFLAGS = -r -T $(call CONVERT_PATH,$(TOPDIR)/libs/libc/elf/gnu-elf.ld)
|
||||
|
||||
# ELF module definitions
|
||||
|
||||
@@ -90,4 +90,4 @@ CELFFLAGS = $(CFLAGS) -fvisibility=hidden
|
||||
CXXELFFLAGS = $(CXXFLAGS) -fvisibility=hidden
|
||||
|
||||
LDELFFLAGS = -r -e __start
|
||||
LDELFFLAGS += -T $(call CONVERT_PATH,$(TOPDIR)$(DELIM)libs$(DELIM)libc$(DELIM)modlib$(DELIM)gnu-elf.ld)
|
||||
LDELFFLAGS += -T $(call CONVERT_PATH,$(TOPDIR)$(DELIM)libs$(DELIM)libc$(DELIM)elf$(DELIM)gnu-elf.ld)
|
||||
|
||||
@@ -120,7 +120,7 @@ endif
|
||||
# Loadable module definitions
|
||||
|
||||
CMODULEFLAGS = $(CFLAGS) -fvisibility=hidden
|
||||
LDMODULEFLAGS = -r -T $(call CONVERT_PATH,$(TOPDIR)/libs/libc/modlib/gnu-elf.ld)
|
||||
LDMODULEFLAGS = -r -T $(call CONVERT_PATH,$(TOPDIR)/libs/libc/elf/gnu-elf.ld)
|
||||
|
||||
# ELF module definitions
|
||||
|
||||
@@ -128,4 +128,4 @@ CELFFLAGS = $(CFLAGS) -fvisibility=hidden
|
||||
CXXELFFLAGS = $(CXXFLAGS) -fvisibility=hidden
|
||||
|
||||
LDELFFLAGS = -r -e __start
|
||||
LDELFFLAGS += -T $(call CONVERT_PATH,$(TOPDIR)$(DELIM)libs$(DELIM)libc$(DELIM)modlib$(DELIM)gnu-elf.ld)
|
||||
LDELFFLAGS += -T $(call CONVERT_PATH,$(TOPDIR)$(DELIM)libs$(DELIM)libc$(DELIM)elf$(DELIM)gnu-elf.ld)
|
||||
|
||||
@@ -426,7 +426,7 @@ endif
|
||||
# Loadable module definitions
|
||||
|
||||
CMODULEFLAGS = $(CFLAGS) -fvisibility=hidden
|
||||
LDMODULEFLAGS = -r -T $(call CONVERT_PATH,$(TOPDIR)/libs/libc/modlib/gnu-elf.ld)
|
||||
LDMODULEFLAGS = -r -T $(call CONVERT_PATH,$(TOPDIR)/libs/libc/elf/gnu-elf.ld)
|
||||
|
||||
# ELF module definitions
|
||||
|
||||
@@ -445,7 +445,7 @@ else
|
||||
LDELFFLAGS += --oformat elf64-littleriscv
|
||||
endif
|
||||
|
||||
LDELFFLAGS += -T $(call CONVERT_PATH,$(TOPDIR)/libs/libc/modlib/gnu-elf.ld)
|
||||
LDELFFLAGS += -T $(call CONVERT_PATH,$(TOPDIR)/libs/libc/elf/gnu-elf.ld)
|
||||
|
||||
# Zig toolchain
|
||||
|
||||
|
||||
@@ -44,7 +44,7 @@ set_property(
|
||||
TARGET nuttx
|
||||
APPEND
|
||||
PROPERTY NUTTX_ELF_MODULE_LINK_OPTIONS -r -e module_initialize -T
|
||||
${NUTTX_DIR}/libs/libc/modlib/gnu-elf.ld)
|
||||
${NUTTX_DIR}/libs/libc/elf/gnu-elf.ld)
|
||||
|
||||
if(CONFIG_LIBC_ARCH_ELF_64BIT)
|
||||
# For amd64: It seems macOS/x86_64 loads the program text around
|
||||
|
||||
@@ -129,7 +129,7 @@ OBJDUMP = $(CROSSDEV)objdump
|
||||
# Loadable module definitions
|
||||
|
||||
CMODULEFLAGS = $(CFLAGS) -fvisibility=hidden
|
||||
LDMODULEFLAGS = -r -T $(call CONVERT_PATH,$(TOPDIR)/libs/libc/modlib/gnu-elf.ld)
|
||||
LDMODULEFLAGS = -r -T $(call CONVERT_PATH,$(TOPDIR)/libs/libc/elf/gnu-elf.ld)
|
||||
|
||||
# ELF module definitions
|
||||
|
||||
@@ -137,4 +137,4 @@ CELFFLAGS = $(CFLAGS) -fvisibility=hidden
|
||||
CXXELFFLAGS = $(CXXFLAGS) -fvisibility=hidden
|
||||
|
||||
LDELFFLAGS = -r -e __start
|
||||
LDELFFLAGS += -T $(call CONVERT_PATH,$(TOPDIR)$(DELIM)libs$(DELIM)libc$(DELIM)modlib$(DELIM)gnu-elf.ld)
|
||||
LDELFFLAGS += -T $(call CONVERT_PATH,$(TOPDIR)$(DELIM)libs$(DELIM)libc$(DELIM)elf$(DELIM)gnu-elf.ld)
|
||||
|
||||
@@ -131,7 +131,7 @@ ARCHOPTIMIZATION += --pass-c=--no-warnings=$(TASKING_WARNINGS)
|
||||
# Loadable module definitions
|
||||
|
||||
CMODULEFLAGS = $(CFLAGS) -fvisibility=hidden
|
||||
LDMODULEFLAGS = -r -T $(call CONVERT_PATH,$(TOPDIR)/libs/libc/modlib/gnu-elf.ld)
|
||||
LDMODULEFLAGS = -r -T $(call CONVERT_PATH,$(TOPDIR)/libs/libc/elf/gnu-elf.ld)
|
||||
|
||||
# ELF module definitions
|
||||
|
||||
@@ -139,4 +139,4 @@ CELFFLAGS = $(CFLAGS) -fvisibility=hidden
|
||||
CXXELFFLAGS = $(CXXFLAGS) -fvisibility=hidden
|
||||
|
||||
LDELFFLAGS = -r -e __start
|
||||
LDELFFLAGS += -T $(call CONVERT_PATH,$(TOPDIR)$(DELIM)libs$(DELIM)libc$(DELIM)modlib$(DELIM)gnu-elf.ld)
|
||||
LDELFFLAGS += -T $(call CONVERT_PATH,$(TOPDIR)$(DELIM)libs$(DELIM)libc$(DELIM)elf$(DELIM)gnu-elf.ld)
|
||||
|
||||
@@ -83,7 +83,7 @@ AFLAGS := $(CFLAGS) -D__ASSEMBLY__
|
||||
# Loadable module definitions
|
||||
|
||||
CMODULEFLAGS = $(CFLAGS) -fvisibility=hidden
|
||||
LDMODULEFLAGS = -r -T $(call CONVERT_PATH,$(TOPDIR)/libs/libc/modlib/gnu-elf.ld)
|
||||
LDMODULEFLAGS = -r -T $(call CONVERT_PATH,$(TOPDIR)/libs/libc/elf/gnu-elf.ld)
|
||||
|
||||
# ELF module definitions
|
||||
|
||||
@@ -91,4 +91,4 @@ CELFFLAGS = $(CFLAGS) -fvisibility=hidden
|
||||
CXXELFFLAGS = $(CXXFLAGS) -fvisibility=hidden
|
||||
|
||||
LDELFFLAGS = -r -e __start
|
||||
LDELFFLAGS += -T $(call CONVERT_PATH,$(TOPDIR)$(DELIM)libs$(DELIM)libc$(DELIM)modlib$(DELIM)gnu-elf.ld)
|
||||
LDELFFLAGS += -T $(call CONVERT_PATH,$(TOPDIR)$(DELIM)libs$(DELIM)libc$(DELIM)elf$(DELIM)gnu-elf.ld)
|
||||
|
||||
@@ -241,7 +241,7 @@ endif
|
||||
# Loadable module definitions
|
||||
|
||||
CMODULEFLAGS = $(CFLAGS) -fvisibility=hidden
|
||||
LDMODULEFLAGS = -r -T $(call CONVERT_PATH,$(TOPDIR)/libs/libc/modlib/gnu-elf.ld)
|
||||
LDMODULEFLAGS = -r -T $(call CONVERT_PATH,$(TOPDIR)/libs/libc/elf/gnu-elf.ld)
|
||||
|
||||
# ELF module definitions
|
||||
|
||||
@@ -256,7 +256,7 @@ ifneq ($(CONFIG_BUILD_KERNEL),y)
|
||||
LDELFFLAGS += $(TOPDIR)$(DELIM)arch$(DELIM)x86_64$(DELIM)src$(DELIM)crt0.o
|
||||
endif
|
||||
|
||||
LDELFFLAGS += -T $(call CONVERT_PATH,$(TOPDIR)$(DELIM)libs$(DELIM)libc$(DELIM)modlib$(DELIM)gnu-elf.ld)
|
||||
LDELFFLAGS += -T $(call CONVERT_PATH,$(TOPDIR)$(DELIM)libs$(DELIM)libc$(DELIM)elf$(DELIM)gnu-elf.ld)
|
||||
|
||||
# -fno-pic to avoid GOT relocations
|
||||
# -mcmodel=large to avoid out-of-range 32-bit relocations
|
||||
|
||||
@@ -210,7 +210,7 @@ endif
|
||||
# Loadable module definitions
|
||||
|
||||
CMODULEFLAGS = $(CFLAGS) -fvisibility=hidden -mtext-section-literals
|
||||
LDMODULEFLAGS = -r -T $(call CONVERT_PATH,$(TOPDIR)/libs/libc/modlib/gnu-elf.ld)
|
||||
LDMODULEFLAGS = -r -T $(call CONVERT_PATH,$(TOPDIR)/libs/libc/elf/gnu-elf.ld)
|
||||
|
||||
# ELF module definitions
|
||||
|
||||
@@ -218,4 +218,4 @@ CELFFLAGS = $(CFLAGS) -fvisibility=hidden -mtext-section-literals
|
||||
CXXELFFLAGS = $(CXXFLAGS) -fvisibility=hidden -mtext-section-literals
|
||||
|
||||
LDELFFLAGS = -r -e __start
|
||||
LDELFFLAGS += -T $(call CONVERT_PATH,$(TOPDIR)$(DELIM)libs$(DELIM)libc$(DELIM)modlib$(DELIM)gnu-elf.ld)
|
||||
LDELFFLAGS += -T $(call CONVERT_PATH,$(TOPDIR)$(DELIM)libs$(DELIM)libc$(DELIM)elf$(DELIM)gnu-elf.ld)
|
||||
|
||||
@@ -214,7 +214,7 @@ endif
|
||||
# Loadable module definitions
|
||||
|
||||
CMODULEFLAGS = $(CFLAGS) -fvisibility=hidden -mtext-section-literals
|
||||
LDMODULEFLAGS = -r -T $(call CONVERT_PATH,$(TOPDIR)/libs/libc/modlib/gnu-elf.ld)
|
||||
LDMODULEFLAGS = -r -T $(call CONVERT_PATH,$(TOPDIR)/libs/libc/elf/gnu-elf.ld)
|
||||
|
||||
# ELF module definitions
|
||||
|
||||
@@ -222,4 +222,4 @@ CELFFLAGS = $(CFLAGS) -fvisibility=hidden -mtext-section-literals
|
||||
CXXELFFLAGS = $(CXXFLAGS) -fvisibility=hidden -mtext-section-literals
|
||||
|
||||
LDELFFLAGS = -r -e __start
|
||||
LDELFFLAGS += -T $(call CONVERT_PATH,$(TOPDIR)$(DELIM)libs$(DELIM)libc$(DELIM)modlib$(DELIM)gnu-elf.ld)
|
||||
LDELFFLAGS += -T $(call CONVERT_PATH,$(TOPDIR)$(DELIM)libs$(DELIM)libc$(DELIM)elf$(DELIM)gnu-elf.ld)
|
||||
|
||||
@@ -111,7 +111,7 @@ EXEEXT = .hex
|
||||
# Loadable module definitions
|
||||
|
||||
CMODULEFLAGS = $(CFLAGS) -fvisibility=hidden
|
||||
LDMODULEFLAGS = -r -T $(call CONVERT_PATH,$(TOPDIR)/libs/libc/modlib/gnu-elf.ld)
|
||||
LDMODULEFLAGS = -r -T $(call CONVERT_PATH,$(TOPDIR)/libs/libc/elf/gnu-elf.ld)
|
||||
|
||||
# ELF module definitions
|
||||
|
||||
@@ -119,4 +119,4 @@ CELFFLAGS = $(CFLAGS) -fvisibility=hidden
|
||||
CXXELFFLAGS = $(CXXFLAGS) -fvisibility=hidden
|
||||
|
||||
LDELFFLAGS = -r -e main
|
||||
LDELFFLAGS += -T $(call CONVERT_PATH,$(TOPDIR)$(DELIM)libs$(DELIM)libc$(DELIM)modlib$(DELIM)gnu-elf.ld)
|
||||
LDELFFLAGS += -T $(call CONVERT_PATH,$(TOPDIR)$(DELIM)libs$(DELIM)libc$(DELIM)elf$(DELIM)gnu-elf.ld)
|
||||
|
||||
@@ -215,7 +215,7 @@ endif
|
||||
# Loadable module definitions
|
||||
|
||||
CMODULEFLAGS = $(CFLAGS) -fvisibility=hidden
|
||||
LDMODULEFLAGS = -r -T $(call CONVERT_PATH,$(TOPDIR)/libs/libc/modlib/gnu-elf.ld)
|
||||
LDMODULEFLAGS = -r -T $(call CONVERT_PATH,$(TOPDIR)/libs/libc/elf/gnu-elf.ld)
|
||||
|
||||
# ELF module definitions
|
||||
|
||||
@@ -223,4 +223,4 @@ CELFFLAGS = $(CFLAGS) -fvisibility=hidden
|
||||
CXXELFFLAGS = $(CXXFLAGS) -fvisibility=hidden
|
||||
|
||||
LDELFFLAGS = -r -e __start
|
||||
LDELFFLAGS += -T $(call CONVERT_PATH,$(TOPDIR)$(DELIM)libs$(DELIM)libc$(DELIM)modlib$(DELIM)gnu-elf.ld)
|
||||
LDELFFLAGS += -T $(call CONVERT_PATH,$(TOPDIR)$(DELIM)libs$(DELIM)libc$(DELIM)elf$(DELIM)gnu-elf.ld)
|
||||
|
||||
@@ -113,7 +113,7 @@ EXEEXT = .hex
|
||||
# Loadable module definitions
|
||||
|
||||
CMODULEFLAGS = $(CFLAGS) -fvisibility=hidden
|
||||
LDMODULEFLAGS = -r -T $(call CONVERT_PATH,$(TOPDIR)/libs/libc/modlib/gnu-elf.ld)
|
||||
LDMODULEFLAGS = -r -T $(call CONVERT_PATH,$(TOPDIR)/libs/libc/elf/gnu-elf.ld)
|
||||
|
||||
# ELF module definitions
|
||||
|
||||
@@ -121,4 +121,4 @@ CELFFLAGS = $(CFLAGS) -fvisibility=hidden
|
||||
CXXELFFLAGS = $(CXXFLAGS) -fvisibility=hidden
|
||||
|
||||
LDELFFLAGS = -r -e __start
|
||||
LDELFFLAGS += -T $(call CONVERT_PATH,$(TOPDIR)$(DELIM)libs$(DELIM)libc$(DELIM)modlib$(DELIM)gnu-elf.ld)
|
||||
LDELFFLAGS += -T $(call CONVERT_PATH,$(TOPDIR)$(DELIM)libs$(DELIM)libc$(DELIM)elf$(DELIM)gnu-elf.ld)
|
||||
|
||||
@@ -138,7 +138,7 @@ EXEEXT = .hex
|
||||
# Loadable module definitions
|
||||
|
||||
CMODULEFLAGS = $(CFLAGS) -fvisibility=hidden
|
||||
LDMODULEFLAGS = -r -T $(call CONVERT_PATH,$(TOPDIR)/libs/libc/modlib/gnu-elf.ld)
|
||||
LDMODULEFLAGS = -r -T $(call CONVERT_PATH,$(TOPDIR)/libs/libc/elf/gnu-elf.ld)
|
||||
|
||||
# ELF module definitions
|
||||
|
||||
@@ -146,4 +146,4 @@ CELFFLAGS = $(CFLAGS) -fvisibility=hidden
|
||||
CXXELFFLAGS = $(CXXFLAGS) -fvisibility=hidden
|
||||
|
||||
LDELFFLAGS = -r -e __start
|
||||
LDELFFLAGS += -T $(call CONVERT_PATH,$(TOPDIR)$(DELIM)libs$(DELIM)libc$(DELIM)modlib$(DELIM)gnu-elf.ld)
|
||||
LDELFFLAGS += -T $(call CONVERT_PATH,$(TOPDIR)$(DELIM)libs$(DELIM)libc$(DELIM)elf$(DELIM)gnu-elf.ld)
|
||||
|
||||
@@ -113,7 +113,7 @@ EXEEXT = .hex
|
||||
# Loadable module definitions
|
||||
|
||||
CMODULEFLAGS = $(CFLAGS) -fvisibility=hidden
|
||||
LDMODULEFLAGS = -r -T $(call CONVERT_PATH,$(TOPDIR)/libs/libc/modlib/gnu-elf.ld)
|
||||
LDMODULEFLAGS = -r -T $(call CONVERT_PATH,$(TOPDIR)/libs/libc/elf/gnu-elf.ld)
|
||||
|
||||
# ELF module definitions
|
||||
|
||||
@@ -121,4 +121,4 @@ CELFFLAGS = $(CFLAGS) -fvisibility=hidden
|
||||
CXXELFFLAGS = $(CXXFLAGS) -fvisibility=hidden
|
||||
|
||||
LDELFFLAGS = -r -e __start
|
||||
LDELFFLAGS += -T $(call CONVERT_PATH,$(TOPDIR)$(DELIM)libs$(DELIM)libc$(DELIM)modlib$(DELIM)gnu-elf.ld)
|
||||
LDELFFLAGS += -T $(call CONVERT_PATH,$(TOPDIR)$(DELIM)libs$(DELIM)libc$(DELIM)elf$(DELIM)gnu-elf.ld)
|
||||
|
||||
@@ -50,7 +50,7 @@ config ELF
|
||||
bool "Enable the ELF Binary Format"
|
||||
default n
|
||||
select BINFMT_LOADABLE
|
||||
select LIBC_MODLIB
|
||||
select LIBC_ELF
|
||||
---help---
|
||||
Enable support for the ELF binary format. Default: n
|
||||
|
||||
|
||||
24
binfmt/elf.c
24
binfmt/elf.c
@@ -44,11 +44,11 @@
|
||||
****************************************************************************/
|
||||
|
||||
/* CONFIG_DEBUG_FEATURES, CONFIG_DEBUG_INFO, and CONFIG_DEBUG_BINFMT
|
||||
* have to be defined or CONFIG_MODLIB_DUMPBUFFER does nothing.
|
||||
* have to be defined or CONFIG_LIBC_ELF_DUMPBUFFER does nothing.
|
||||
*/
|
||||
|
||||
#if !defined(CONFIG_DEBUG_INFO) || !defined(CONFIG_DEBUG_BINFMT)
|
||||
# undef CONFIG_MODLIB_DUMPBUFFER
|
||||
# undef CONFIG_LIBC_ELF_DUMPBUFFER
|
||||
#endif
|
||||
|
||||
#ifndef CONFIG_ELF_STACKSIZE
|
||||
@@ -102,8 +102,8 @@ static int elf_loadbinary(FAR struct binary_s *binp,
|
||||
|
||||
/* Initialize the ELF library to load the program binary. */
|
||||
|
||||
ret = modlib_initialize(filename, &loadinfo);
|
||||
modlib_dumploadinfo(&loadinfo);
|
||||
ret = libelf_initialize(filename, &loadinfo);
|
||||
libelf_dumploadinfo(&loadinfo);
|
||||
if (ret != 0)
|
||||
{
|
||||
berr("Failed to initialize to load ELF program binary: %d\n", ret);
|
||||
@@ -112,8 +112,8 @@ static int elf_loadbinary(FAR struct binary_s *binp,
|
||||
|
||||
/* Load the program binary */
|
||||
|
||||
ret = modlib_load_with_addrenv(&loadinfo);
|
||||
modlib_dumploadinfo(&loadinfo);
|
||||
ret = libelf_load_with_addrenv(&loadinfo);
|
||||
libelf_dumploadinfo(&loadinfo);
|
||||
if (ret != 0)
|
||||
{
|
||||
berr("Failed to load ELF program binary: %d\n", ret);
|
||||
@@ -124,7 +124,7 @@ static int elf_loadbinary(FAR struct binary_s *binp,
|
||||
|
||||
if (loadinfo.ehdr.e_type == ET_REL || loadinfo.gotindex >= 0)
|
||||
{
|
||||
ret = modlib_bind(&binp->mod, &loadinfo, exports, nexports);
|
||||
ret = libelf_bind(&binp->mod, &loadinfo, exports, nexports);
|
||||
if (ret != 0)
|
||||
{
|
||||
berr("Failed to bind symbols program binary: %d\n", ret);
|
||||
@@ -209,7 +209,7 @@ static int elf_loadbinary(FAR struct binary_s *binp,
|
||||
binp->mode = loadinfo.filemode;
|
||||
#endif
|
||||
|
||||
modlib_dumpentrypt(&loadinfo);
|
||||
libelf_dumpentrypt(&loadinfo);
|
||||
#ifdef CONFIG_PIC
|
||||
if (loadinfo.gotindex >= 0)
|
||||
{
|
||||
@@ -227,13 +227,13 @@ static int elf_loadbinary(FAR struct binary_s *binp,
|
||||
}
|
||||
#endif
|
||||
|
||||
modlib_uninitialize(&loadinfo);
|
||||
libelf_uninitialize(&loadinfo);
|
||||
return OK;
|
||||
|
||||
errout_with_load:
|
||||
modlib_unload(&loadinfo);
|
||||
libelf_unload(&loadinfo);
|
||||
errout_with_init:
|
||||
modlib_uninitialize(&loadinfo);
|
||||
libelf_uninitialize(&loadinfo);
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -248,7 +248,7 @@ errout_with_init:
|
||||
static int elf_unloadbinary(FAR struct binary_s *binp)
|
||||
{
|
||||
binfo("Unloading %p\n", binp);
|
||||
modlib_uninit(&binp->mod);
|
||||
libelf_uninit(&binp->mod);
|
||||
|
||||
return OK;
|
||||
}
|
||||
|
||||
@@ -53,4 +53,4 @@ LDNXFLATFLAGS = -e main -s 2048
|
||||
CMODULEFLAGS = $(CFLAGS) -mlong-calls # --target1-abs
|
||||
|
||||
LDMODULEFLAGS = -r -e module_initialize
|
||||
LDMODULEFLAGS += -T $(call CONVERT_PATH,$(TOPDIR)/libs/libc/modlib/gnu-elf.ld)
|
||||
LDMODULEFLAGS += -T $(call CONVERT_PATH,$(TOPDIR)/libs/libc/elf/gnu-elf.ld)
|
||||
|
||||
@@ -50,4 +50,4 @@ LDNXFLATFLAGS = -e main -s 2048
|
||||
CMODULEFLAGS = $(CFLAGS) -mlong-calls # --target1-abs
|
||||
|
||||
LDMODULEFLAGS = -r -e module_initialize
|
||||
LDMODULEFLAGS += -T $(call CONVERT_PATH,$(TOPDIR)/libs/libc/modlib/gnu-elf.ld)
|
||||
LDMODULEFLAGS += -T $(call CONVERT_PATH,$(TOPDIR)/libs/libc/elf/gnu-elf.ld)
|
||||
|
||||
@@ -57,11 +57,11 @@ CONFIG_LC823450_UART1=y
|
||||
CONFIG_LC823450_WDT=y
|
||||
CONFIG_LCD=y
|
||||
CONFIG_LCD_ST7565=y
|
||||
CONFIG_LIBC_ELF_BUFFERSIZE=512
|
||||
CONFIG_LIBC_KBDCODEC=y
|
||||
CONFIG_LIBC_MAX_EXITFUNS=32
|
||||
CONFIG_LIBC_MEMSET_OPTSPEED=y
|
||||
CONFIG_LIBM=y
|
||||
CONFIG_MODLIB_BUFFERSIZE=512
|
||||
CONFIG_MQ_MAXMSGSIZE=64
|
||||
CONFIG_MTD=y
|
||||
CONFIG_NAME_MAX=255
|
||||
|
||||
@@ -62,6 +62,8 @@ CONFIG_INIT_ENTRYPOINT="nsh_main"
|
||||
CONFIG_INIT_STACKSIZE=4096
|
||||
CONFIG_INTELHEX_BINARY=y
|
||||
CONFIG_LIBC_DLFCN=y
|
||||
CONFIG_LIBC_ELF_ALIGN_LOG2=3
|
||||
CONFIG_LIBC_ELF_BUFFERSIZE=128
|
||||
CONFIG_LIBC_ENVPATH=y
|
||||
CONFIG_LIBC_STRERROR=y
|
||||
CONFIG_LPC17_40_CAN2=y
|
||||
@@ -91,8 +93,6 @@ CONFIG_M25P_SUBSECTOR_ERASE=y
|
||||
CONFIG_MMCSD=y
|
||||
CONFIG_MMCSD_SDIO=y
|
||||
CONFIG_MM_REGIONS=3
|
||||
CONFIG_MODLIB_ALIGN_LOG2=3
|
||||
CONFIG_MODLIB_BUFFERSIZE=128
|
||||
CONFIG_MTD=y
|
||||
CONFIG_MTD_M25P=y
|
||||
CONFIG_NETDB_DNSCLIENT=y
|
||||
|
||||
@@ -68,4 +68,4 @@ LDNXFLATFLAGS = -e main -s 2048
|
||||
# ELF module definitions
|
||||
|
||||
LDELFFLAGS = -r -e main
|
||||
LDELFFLAGS += -T $(call CONVERT_PATH,$(TOPDIR)/libs/libc/modlib/gnu-elf.ld)
|
||||
LDELFFLAGS += -T $(call CONVERT_PATH,$(TOPDIR)/libs/libc/elf/gnu-elf.ld)
|
||||
|
||||
@@ -125,11 +125,11 @@ CONFIG_HAVE_CXXINITIALIZE=y
|
||||
CONFIG_IDLETHREAD_STACKSIZE=4096
|
||||
CONFIG_INIT_ENTRYPOINT="nsh_main"
|
||||
CONFIG_INTELHEX_BINARY=y
|
||||
CONFIG_LIBC_ELF=y
|
||||
CONFIG_LIBC_EXECFUNCS=y
|
||||
CONFIG_LIBC_FLOATINGPOINT=y
|
||||
CONFIG_LIBC_LONG_LONG=y
|
||||
CONFIG_LIBC_MEMFD_ERROR=y
|
||||
CONFIG_LIBC_MODLIB=y
|
||||
CONFIG_LIBC_STRERROR_ERRNUM=y
|
||||
CONFIG_LIBM_TOOLCHAIN=y
|
||||
CONFIG_LINE_MAX=80
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
#include <sys/mount.h>
|
||||
#include <syslog.h>
|
||||
|
||||
#include <nuttx/lib/modlib.h>
|
||||
#include <nuttx/lib/elf.h>
|
||||
#include <nuttx/fs/fs.h>
|
||||
#include <nuttx/drivers/ramdisk.h>
|
||||
|
||||
@@ -116,37 +116,37 @@ int board_boot_image(const char *path, uint32_t hdr_size)
|
||||
|
||||
/* Initialize the ELF library to load the program binary. */
|
||||
|
||||
syslog(LOG_INFO, "modlib_init...\n");
|
||||
syslog(LOG_INFO, "libelf_init...\n");
|
||||
|
||||
ret = modlib_initialize(path, &loadinfo);
|
||||
ret = libelf_initialize(path, &loadinfo);
|
||||
if (ret < 0)
|
||||
{
|
||||
syslog(LOG_ERR, "Failed to modlib_init: %d\n", ret);
|
||||
syslog(LOG_ERR, "Failed to libelf_init: %d\n", ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* Load the program binary */
|
||||
|
||||
syslog(LOG_INFO, "modlib_load...\n");
|
||||
syslog(LOG_INFO, "libelf_load...\n");
|
||||
|
||||
ret = modlib_load(&loadinfo);
|
||||
ret = libelf_load(&loadinfo);
|
||||
if (ret < 0)
|
||||
{
|
||||
syslog(LOG_ERR, "Failed to modlib_load: %d\n", ret);
|
||||
syslog(LOG_ERR, "Failed to libelf_load: %d\n", ret);
|
||||
goto errout_with_init;
|
||||
}
|
||||
|
||||
syslog(LOG_INFO, "modlib_bind...\n");
|
||||
syslog(LOG_INFO, "libelf_bind...\n");
|
||||
|
||||
memset(&mod, 0, sizeof(struct module_s));
|
||||
ret = modlib_bind(&mod, &loadinfo, NULL, 0);
|
||||
ret = libelf_bind(&mod, &loadinfo, NULL, 0);
|
||||
if (ret < 0)
|
||||
{
|
||||
syslog(LOG_ERR, "Failed to modlib_bind: %d\n", ret);
|
||||
syslog(LOG_ERR, "Failed to libelf_bind: %d\n", ret);
|
||||
goto errout_with_load;
|
||||
}
|
||||
|
||||
bss = modlib_findsection(&loadinfo, ".bss");
|
||||
bss = libelf_findsection(&loadinfo, ".bss");
|
||||
got = loadinfo.shdr[loadinfo.gotindex].sh_addr;
|
||||
msp = loadinfo.shdr[bss].sh_addr + loadinfo.shdr[bss].sh_size +
|
||||
CONFIG_IDLETHREAD_STACKSIZE;
|
||||
@@ -172,9 +172,9 @@ int board_boot_image(const char *path, uint32_t hdr_size)
|
||||
((void (*)(void))loadinfo.ehdr.e_entry + loadinfo.textalloc)();
|
||||
|
||||
errout_with_load:
|
||||
modlib_unload(&loadinfo);
|
||||
libelf_unload(&loadinfo);
|
||||
errout_with_init:
|
||||
modlib_uninitialize(&loadinfo);
|
||||
libelf_uninitialize(&loadinfo);
|
||||
return ret;
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -55,4 +55,4 @@ CELFFLAGS = $(CFLAGS) -mlong-calls # --target1-abs
|
||||
CXXELFFLAGS = $(CXXFLAGS) -mlong-calls # --target1-abs
|
||||
|
||||
LDELFFLAGS = -r -e main
|
||||
LDELFFLAGS += -T $(call CONVERT_PATH,$(TOPDIR)/libs/libc/modlib/gnu-elf.ld)
|
||||
LDELFFLAGS += -T $(call CONVERT_PATH,$(TOPDIR)/libs/libc/elf/gnu-elf.ld)
|
||||
|
||||
@@ -59,4 +59,4 @@ LDNXFLATFLAGS = -e main -s 2048
|
||||
CMODULEFLAGS = $(CFLAGS) -mlong-calls # --target1-abs
|
||||
|
||||
LDMODULEFLAGS = -r -e module_initialize
|
||||
LDMODULEFLAGS += -T $(call CONVERT_PATH,$(TOPDIR)/libs/libc/modlib/gnu-elf.ld)
|
||||
LDMODULEFLAGS += -T $(call CONVERT_PATH,$(TOPDIR)/libs/libc/elf/gnu-elf.ld)
|
||||
|
||||
@@ -41,7 +41,7 @@
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_MODULE
|
||||
# include <nuttx/lib/modlib.h>
|
||||
# include <nuttx/lib/elf.h>
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_STM32_OTGFS
|
||||
@@ -102,7 +102,7 @@ int stm32_bringup(void)
|
||||
#ifdef HAVE_MODSYMS
|
||||
/* Install the module symbol table */
|
||||
|
||||
modlib_setsymtab(MODSYMS_SYMTAB_ARRAY, MODSYMS_NSYMBOLS_VAR);
|
||||
libelf_setsymtab(MODSYMS_SYMTAB_ARRAY, MODSYMS_NSYMBOLS_VAR);
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_MMCSD
|
||||
|
||||
@@ -211,7 +211,7 @@ set_property(
|
||||
TARGET nuttx
|
||||
APPEND
|
||||
PROPERTY NUTTX_ELF_MODULE_LINK_OPTIONS -r -e module_initialize -T
|
||||
${NUTTX_DIR}/libs/libc/modlib/gnu-elf.ld)
|
||||
${NUTTX_DIR}/libs/libc/elf/gnu-elf.ld)
|
||||
|
||||
# ELF module definitions
|
||||
|
||||
|
||||
@@ -47,4 +47,4 @@ CELFFLAGS = $(CFLAGS) -mlong-calls # --target1-abs
|
||||
CXXELFFLAGS = $(CXXFLAGS) -mlong-calls # --target1-abs
|
||||
|
||||
LDELFFLAGS = -r -e main
|
||||
LDELFFLAGS += -T $(call CONVERT_PATH,$(TOPDIR)/binfmt/libelf/gnu-elf.ld)
|
||||
LDELFFLAGS += -T $(call CONVERT_PATH,$(TOPDIR)/binfmt/elf/gnu-elf.ld)
|
||||
|
||||
@@ -47,4 +47,4 @@ CELFFLAGS = $(CFLAGS) -mlong-calls # --target1-abs
|
||||
CXXELFFLAGS = $(CXXFLAGS) -mlong-calls # --target1-abs
|
||||
|
||||
LDELFFLAGS = -r -e main
|
||||
LDELFFLAGS += -T $(call CONVERT_PATH,$(TOPDIR)/binfmt/libelf/gnu-elf.ld)
|
||||
LDELFFLAGS += -T $(call CONVERT_PATH,$(TOPDIR)/binfmt/elf/gnu-elf.ld)
|
||||
|
||||
@@ -47,4 +47,4 @@ CELFFLAGS = $(CFLAGS) -mlong-calls # --target1-abs
|
||||
CXXELFFLAGS = $(CXXFLAGS) -mlong-calls # --target1-abs
|
||||
|
||||
LDELFFLAGS = -r -e main
|
||||
LDELFFLAGS += -T $(call CONVERT_PATH,$(TOPDIR)/binfmt/libelf/gnu-elf.ld)
|
||||
LDELFFLAGS += -T $(call CONVERT_PATH,$(TOPDIR)/binfmt/elf/gnu-elf.ld)
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user