Commit graph

88 commits

Author SHA1 Message Date
aviralgarg05
5e057f38b9 build: add declarative shared library support
Add Library.mk for declarative shared-library builds. Reuse the compiler-runtime lookup shared with Application.mk and cover multi-source libraries with sotest.

Signed-off-by: aviralgarg05 <gargaviral99@gmail.com>
2026-08-18 15:26:18 -03:00
Alan Carvalho de Assis
cc8a6c8b85 cmake: Use NUTTX(_DIR/_BINARY_DIR) instead of CMAKE(_SOURCE_DIR/BINARY_DIR)
This companion change updates the nuttx-apps CMake build to use
NuttX’s NUTTX_DIR and NUTTX_BINARY_DIR instead of CMAKE_SOURCE_DIR
and CMAKE_BINARY_DIR, which incorrectly refer to the outermost project
when NuttX is embedded via add_subdirectory(). Since apps/ is itself
included from NuttX’s top-level CMakeLists.txt, these variables were
effectively being used as references to NuttX’s root and inherited
the same bug fixed in the matching NuttX change for #19697. All
self-referencing uses are replaced while intentionally preserving
standalone projects and unrelated custom variables or hardcoded paths.
The change affects only the CMake build system, preserves normal
standalone behavior, and was tested with sim:nsh both standalone and
embedded, with apps such as hello and ostest successfully built and
available in NSH.

Fixes #19697.

Assisted-by: Claude:claude-sonnet-5
Signed-off-by: Alan Carvalho de Assis <acassis@gmail.com>
2026-08-09 10:43:01 -03:00
Marco Casaroli
d3de432a2c examples/sotest: Check that a library can be opened twice.
dlopen() of an already loaded library used to fail, so nothing exercised
what happens when two callers hold the same object.

Open the library a second time, check the same handle comes back, close
one of the two and check the library is still usable through the other.

Needs the counterpart change in nuttx; without it the second dlopen()
returns NULL and this reports it.

Assisted-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
Signed-off-by: Marco Casaroli <marco.casaroli@gmail.com>
2026-08-04 10:37:33 +08:00
aviralgarg05
f2ceac78db examples/sotest: support packaged shared library fixtures.
Extend the examples/sotest packaging path so the shared-library test
fixtures can also be prepared through nxpkg-style package artifacts.

Generate shared-index.json and pkgsotest.nsh from the built modprint
and sotest shared objects, recording the correct target arch/compat
metadata and SHA-256 digests for the packaged shared-library fixtures.
Allow sotest to run in either its existing builtin-ROMFS flow or from
explicit shared-library paths, with a --mount helper mode for
preparing the builtin test mount separately. Keep the paired fixture
outputs in one grouped make step so parallel builds do not re-enter
the generator independently.

This makes the sotest shared-library example usable as a
package-style fixture producer for the Dynamic ELF/nxpkg series,
useful for validating the shared-library side of the packaging flow
where the loader should consume installed artifacts rather than only
the default builtin test paths. The existing builtin-ROMFS path is
preserved with no regression to the normal sotest example flow.

Assisted-by: Claude:claude-sonnet-5
Assisted-by: OpenAI Codex:gpt-5.6-sol
Signed-off-by: aviralgarg05 <gargaviral99@gmail.com>
2026-07-26 20:54:58 +08:00
Piyush Patle
9d849adfab include/debug.h: Use <nuttx/debug.h> in apps
Replace app-side includes of <debug.h> with <nuttx/debug.h> to use the
header from the NuttX tree explicitly after the header move.

Signed-off-by: Piyush Patle <piyushpatle228@gmail.com>
2026-04-11 10:39:27 -03:00
chao an
27846ffec7 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>
2025-04-11 09:43:07 +08:00
Alin Jerpelea
a91768e715 examples: migrate to SPDX identifier
Most tools used for compliance and SBOM generation use SPDX identifiers
This change brings us a step closer to an easy SBOM generation.

Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
2024-12-30 18:02:50 +08:00
xuxin19
7bab630e72 sotest:implement cmake sotest when kernel build does not support yet
Signed-off-by: xuxin19 <xuxin19@xiaomi.com>
2024-11-03 09:22:36 +08:00
wangjianyu3
0b727d290b examples/sotest: Correct the path in the log
e.g.
  - ERROR: dlopen(/sotest) failed
  + ERROR: dlopen(/mnt/sotest/romfs/sotest) failed

Signed-off-by: wangjianyu3 <wangjianyu3@xiaomi.com>
2024-10-17 08:53:49 +08:00
wangjianyu3
4eba6101b4 module/sotest: Using syslog to print log
Signed-off-by: wangjianyu3 <wangjianyu3@xiaomi.com>
2024-10-16 21:42:39 +08:00
anjiahao
bb492e789d sotest & chardev:change elf loading method
Signed-off-by: anjiahao <anjiahao@xiaomi.com>
2024-10-16 07:38:06 +08:00
anjiahao
bebb7e9a46 module/sotest:use Compile dynamic modules using a unified compilation method
Signed-off-by: anjiahao <anjiahao@xiaomi.com>
2024-10-16 07:38:06 +08:00
dongjiuzhu1
6c88a1ad76 examples/elf/sotest: enable and run them simultaneously
Signed-off-by: dongjiuzhu1 <dongjiuzhu1@xiaomi.com>
2024-10-02 01:53:14 +08:00
dongjiuzhu1
15c90ac17e examples/sotest/elf: rename romfs_img to run test with CONFIG_NSH_ROMFSETC
Signed-off-by: dongjiuzhu1 <dongjiuzhu1@xiaomi.com>
2024-10-02 01:53:14 +08:00
wangjianyu3
dae4d7572f module/sotest: Try devminor of romdisk
For case that /dev/ram${EXAMPLES_SOTEST_DEVMINOR}(e.g. /dev/ram0) already exists, and users may not care which device to use.

Signed-off-by: wangjianyu3 <wangjianyu3@xiaomi.com>
2024-09-18 12:16:02 +08:00
wangjianyu3
758ed55722 examples/sotest: Fix warning of unused variable 'devname'
Config:
  +CONFIG_EXAMPLES_SOTEST=y
  +CONFIG_EXAMPLES_SOTEST_BINDIR="/data"
Log:
  sotest_main.c: In function 'sotest_main':
  sotest_main.c:105:8: error: unused variable 'devname' [-Werror=unused-variable]
    105 |   char devname[32];
        |        ^~~~~~~

Signed-off-by: wangjianyu3 <wangjianyu3@xiaomi.com>
2024-09-18 11:36:27 +08:00
wangjianyu3
74b05468d6 module/sotest: Fix depends of SOTEST_BUILTINFS
Log:
  sotest_main.c: In function 'sotest_main':
  sotest_main.c:116:29: error: storage size of 'desc' isn't known
    116 |   struct boardioc_romdisk_s desc;
        |                             ^~~~
  sotest_main.c:116:29: error: unused variable 'desc' [-Werror=unused-variable]
  cc1: all warnings being treated as errors

Signed-off-by: wangjianyu3 <wangjianyu3@xiaomi.com>
2024-09-18 11:36:27 +08:00
Tiago Medicci Serrano
3086dcbcf0 Revert "Add loading of ET_DYN shared object test to sotest"
This reverts commit 72eaed8fdd.
2024-05-30 19:13:28 -03:00
Neale Ferguson
72eaed8fdd Add loading of ET_DYN shared object test to sotest
* examples/sotest/lib/Makefile
  - Add dynload directory to build

* examples/sotest/lib/dynload/Makefile
  - Build the dynload shared object test
  - Use SHMODULEFLAGS and not SHLDFLAGS

* examples/sotest/lib/dynload/dynload.c
  - Test case for loading of ET_DYN shared objects

* examples/sotest/lib/dynload/.gitignore
  - Exclude built object from git

* examples/sotest/sotest_main.c
  - Load and invoke the dynload test
2024-05-29 19:17:15 -03:00
dongjiuzhu1
100db2a678 examples/sotest: fix issue about running multiple times
Signed-off-by: dongjiuzhu1 <dongjiuzhu1@xiaomi.com>
2023-07-30 22:19:03 -07:00
dongjiuzhu1
f890a0b1cb examples/sotest: remove unnecessary config
Signed-off-by: dongjiuzhu1 <dongjiuzhu1@xiaomi.com>
2023-07-30 22:19:03 -07:00
chao an
4d79a5cbaf add initial cmake build system
Co-authored-by: Daniel Agar <daniel@agar.ca>
Signed-off-by: chao an <anchao@xiaomi.com>
2023-07-08 13:52:02 +08:00
Xiang Xiao
d1e46c2d3e compiler.h: Add _ between format|printf|syslog|scanf|strftime and like
align with other macro naming style

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-12-21 01:05:12 +02:00
Xiang Xiao
893387b2c5 Fix the minor style issue
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-10-16 19:07:16 +02:00
Xiang Xiao
c252ec1481 Add printflike to all printf like functions
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2022-07-18 14:09:10 +03:00
YAMAMOTO Takashi
4b383b397d examples/sotest: -fno-builtin for a file generated by mksymtab.sh 2022-05-12 23:12:39 +08:00
Petro Karashchenko
f9baa422c1 style: unify path to files in comment section
Signed-off-by: Petro Karashchenko <petro.karashchenko@gmail.com>
2022-03-09 10:37:33 +08:00
Petro Karashchenko
2498be1f40 romfsimg: add attribute to set minimum 4 bytes aignment for romfs image data
Signed-off-by: Petro Karashchenko <petro.karashchenko@gmail.com>
2022-01-28 00:02:45 +08:00
Abdelatif Guettouche
ff48ece8fb Fix few typos in builtin/ and sotest_main example.
Signed-off-by: Abdelatif Guettouche <abdelatif.guettouche@espressif.com>
2021-06-16 21:21:28 -05:00
Alin Jerpelea
6bc7a448de examples: author: Gregory Nutt: update licenses to Apache
Gregory Nutt is has submitted the SGA

as a result we can migrate the licenses to Apache.

Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
2021-06-15 05:16:58 -05:00
Alin Jerpelea
ec339bc49a Makefiles: Gregory Nutt: update licenses to Apache
Gregory Nutt is the copyright holder for those files and he has submitted the
SGA as a result we can migrate the licenses to Apache.

Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
2021-06-07 21:35:33 -05:00
Tanushree Baindur
f0c044adb1 Apps Issue #246: Replace romdisk_register() with boardctl(BOARDIOC_ROMDISK)
C file changes:
   examples/bastest/bastest_main.c
   examples/elf/elf_main.c
   examples/module/module_main.c
   examples/posix_spawn/spawn_main.c
   examples/romfs/romfs_main.c
   examples/sotest/sotest_main.c
   examples/unionfs/unionfs_main.c

Update examples/elf/elf_main.c

Co-authored-by: Xiang Xiao <xiaoxiang781216@gmail.com>

Update examples/unionfs/unionfs_main.c

Co-authored-by: Xiang Xiao <xiaoxiang781216@gmail.com>

Update examples/unionfs/unionfs_main.c

Co-authored-by: Xiang Xiao <xiaoxiang781216@gmail.com>

Update examples/posix_spawn/spawn_main.c

Co-authored-by: Xiang Xiao <xiaoxiang781216@gmail.com>

Update examples/elf/elf_main.c

Co-authored-by: Xiang Xiao <xiaoxiang781216@gmail.com>

Update examples/elf/elf_main.c

Co-authored-by: Xiang Xiao <xiaoxiang781216@gmail.com>
2021-05-12 04:41:51 -07:00
Xiang Xiao
d656982f7a build: Remove the null assignment
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2021-03-24 18:38:04 +01:00
SPRESENSE
63cd701958 Makefile: Unify ROOTDEPPATH into DEPPATH
DEPPATH is commonly used in nuttx repo, so it to be the same with them.
2020-07-29 15:22:20 +02:00
Xiang Xiao
deaa6c5b7b build: Replace $(TOPDIR)/Make.defs with $(APPDIR)/Make.defs
and move NUTTXLIB defintion to the common place

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2020-07-09 15:17:37 -03:00
Xiang Xiao
d03ff1bde6 build: Remove the duplicated mksymtab.sh
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2020-05-24 08:26:55 -06:00
Xiang Xiao
69f013e74e build: Remve the unnecessary .gitignore
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2020-05-23 15:56:35 +01:00
Xiang Xiao
ead498a788 build: Remove the workaround for the inexistence of .config/Make.defs
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2020-05-21 17:43:42 +01:00
Xiang Xiao
d232823e63 build: Replace WINTOOL with CYGWIN_WINTOOL Kconfig
so the correct value can be determinated by Kconfig system automatically

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2020-05-18 15:37:24 -06:00
liuhaitao
79e544f032 exmaples: some nxstyle fixes for module/sotest/thttpd
Signed-off-by: liuhaitao <liuhaitao@xiaomi.com>
2020-05-15 13:36:05 +08:00
liuhaitao
0c60624276 Update make dependency for elf/module/nxflat/posix_spawn/sotest/thttpd
Update make dependency for elf/module/nxflat/posix_spawn/sotest/thttpd examples which make use of
mksymtab.sh. This could avoid them built twice in 'make depend' and 'make all' which would result
in file truncated build break. Now only build once by 'make all'.

Change-Id: I5d8f1ebbf73e3b12d7d2118f1f51b4233d0ed007
Signed-off-by: liuhaitao <liuhaitao@xiaomi.com>
2020-05-15 13:36:05 +08:00
Xiang Xiao
cfe030db40 examples: Replace all -luc with -lc
follow up the kernel side change

Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
2020-05-02 03:34:25 +01:00
YAMAMOTO Takashi
c304624fab Replace "STACKSIZE = 2048" with CONFIG_DEFAULT_TASK_SIZE
For now, I left the following instances because it isn't
clear to me why they are using the different values.
Maybe they need one-by-one inspection.

    examples/igmp/Makefile:STACKSIZE = 1024
    examples/powerled/Makefile:STACKSIZE = 1024
    examples/powermonitor/Makefile:STACKSIZE = 768
    examples/relays/Makefile:STACKSIZE = 512
    examples/smps/Makefile:STACKSIZE = 1024
    graphics/screenshot/Makefile:STACKSIZE = 4096
    system/flash_eraseall/Makefile:STACKSIZE = 1024
    testing/cxxtest/Makefile:STACKSIZE = 4096
    testing/smart_test/Makefile:STACKSIZE = 4096
2020-03-27 02:43:11 -05:00
YAMAMOTO Takashi
2f7480d11b Use MODULECC/MODULELD when building modules 2020-03-27 01:01:30 -05:00
YAMAMOTO Takashi
e30177de4e sotest: Appease nxstyle complaints 2020-03-26 18:46:13 +01:00
YAMAMOTO Takashi
4a4835030d sotest: Fix a printf format mismatch ("%s" vs int) 2020-03-26 18:46:13 +01:00
Xiang Xiao
f16a765cca
examples: Fix the parallel build break (#138)
1.Remove build target to avoid build and install run parallelly
2.Invoke the sub Makefile just before the parent source code compile
2020-03-23 11:40:44 -06:00
Xiang Xiao
1511403fdf Revert "Don't generate .depend anymore"
This reverts commit cc5ad09caa.
2020-03-22 23:09:40 -05:00
Xiang Xiao
f074d7f376 Makefile: let install depend on the target binary
to ensure the binary get built and install once
2020-03-22 22:42:13 +00:00
Xiang Xiao
9394424b1e Revert "examples/sotest/lib: Fix dependency"
This reverts commit 0cb3712c19.
2020-03-22 22:47:16 +01:00