This is the corresponding change to the one on main NuttX repo. In this
case this involves splitting the build of libapps.a into: a) building
all applications (which is safely parallelizable), b) adding each
application's object files to the archive in turns (serial by nature).
This removes the need for the flock used to protect the parallel build.
move the binary install to the main Makefile to support
link extra libraries
Change-Id: I6db8a244ec9975163ea0c21fec6468e215c5aedb
Signed-off-by: chao.an <anchao@xiaomi.com>
fix import build break caused by 'incdir' not found:
$ make import -j12
...
/bin/sh: 1: /home/archer/code/apps/import/tools/incdir: not found
/bin/sh: 1: /home/archer/code/apps/import/tools/incdir: not found
Signed-off-by: chao.an <anchao@xiaomi.com>
In nuttx pass1dep and pass2dep builds, context firstly would be built once.
It then call 'make -C apps depend' which would trigger the context built twice.
There is race condition between symtab.c generated by mksymtab.sh in second time
and compiling symtab.c in parallel build. So remove context dependency for apps
depend to make sure context build only one time for apps.
Parallel build break logs as below:
/home/jenkins/jenkins-slave/workspace/NuttX-Nightly-Build/apps/examples/elf/elf_main.c:357: undefined reference to `g_elf_nexports'
riscv64-unknown-elf-ld: /home/jenkins/jenkins-slave/workspace/NuttX-Nightly-Build/apps/examples/elf/elf_main.c:357: undefined reference to `g_elf_exports'
make[1]: *** [nuttx] Error 1
make: *** [pass2] Error 2
Change-Id: I2872f7036e7ec86615efc5ebd7c46cee51dc1094
Signed-off-by: liuhaitao <liuhaitao@xiaomi.com>
A recent change gets the APPSDIR root directory path from:
APPSDIR = $(CURDIR)
Where CURDIR is a special variable maintained by GNU make. In the native build, GNU make is provided by GNUWin32. The value of CURDIR provided by the GNUWin32 CURDIR is not POSIX, but not quite windows compatible either. It does return paths that start with C: or D:, but uses forward slashes for path segment delimiters, not backsalshes as required by Windows tools.
This fix here is to use $(CURDIR) to get the APPSDIR path for file inclusions, that part is fine. But then, if we find out we are doing a native build, the update the APPSDIR using shell %CD% environment variable which is the authoritative source of the current working directory under Windows.
Author: anchao <anchao@pinecone.net>
apps/, most main() function: Correct CONFIG_BUILD_LOADABLE usage
Loadable apps/: Correct loadable symbol table generate
apps/system/ubloxmodem: Fix build break
apps/examples/ostest: start restart/waitpid/user test from main loop
apps/nshlib: Expand reboot and poweroff commands to include a second, optional mode argument
Author: Gregory Nutt <gnutt@nuttx.org>
An attempt to fix build issues. Does not work.
apps/examples/ostest: Fix some inappropriate renaming of static functions introduced with recent patches.
apps/builtin/exec_builtin.c: Fix a error introduced by recent comments. Found in build testing.
Author: anchao <anchao@pinecone.net>
apps/builtin/exec_builtin.c: Try posix_spawn if builtin apps do not have have an entry point.
apps/Application.mk: introduce MODULE config to simplify tristate(m)
apps/nsh: Change the nuttx shell module type to tristate
apps: Add loadable application support
script/mksymtab: Generate symbol table name by default
apps/builtin: Allow loadable applications can register with apps/builtin.
apps/builtin/exec_builtin.c: Try posix_spawn if builtin apps do not have have an entry point.
apps/Application.mk: introduce MODULE config to simplify tristate(m)
apps/nsh: Change the nuttx shell module type to tristate
apps: Add loadable application support
script/mksymtab: Generate symbol table name by default
apps/builtin: Allow loadable applications can register with apps/builtin.