docs: pots/unix (standalone) has no instructions to build static linked micropython instance
Documentation URL
https://github.com/micropython/micropython/blob/master/ports/unix/README.md
Description
The ports/unix instructions not provide a way to build micropython with LDFLAGS -static to link ld statically. So even if you trying to build standalone binary it still build dynamic linked instance (e.g. ld.so.1). Dynamic linking to system ld.so.1 makes impossible to run binary on systems like Buildroot Linux
For make fully standalone static linked build you should directly modify Makefile cause make not handle LDFLAGS and docs not give instructions for this case.
Relative to issue: https://github.com/micropython/micropython/issues/17353
Code of Conduct
Yes, I agree
Build fails for port/unix mips/mipsel
Port, board and/or hardware
unix (mips/mipsel)
MicroPython version
The build process for the mipsel port of MicroPython failed with the following error:
mipsel-linux-gnu-gcc: error: build-standard/lib/libffi/out/lib/libffi.a: No such file or directory
make: *** [../../py/mkrules.mk:244: build-standard/micropython] Error 1
make: Leaving directory '/home/murphy/micropython/ports/unix'
Reproduction
Trying to make for unix (mipsel) in standalone mode
mipsel-linux-gnu-gcc
make -C mpy-cross
make -C ports/unix VARIANT=standard MICROPY_STANDALONE=1 CROSS_COMPILE=mips-linux-gnu- submodules
make -C ports/unix VARIANT=standard MICROPY_STANDALONE=1 CROSS_COMPILE=mips-linux-gnu- deplibs
Expected behaviour
No response
Observed behaviour
make -C ports/unix VARIANT=standard MICROPY_STANDALONE=1 CROSS_COMPILE=mips-linux-gnu- deplibs
make: Entering directory '/home/murphy/micropython/ports/unix'
Use make V=1 or set BUILD_VERBOSE in your environment to increase build verbosity.
ls: cannot access 'build-standard/lib/libffi/include': No such file or directory
cd ../../lib/libffi; ./autogen.sh
autoreconf: export WARNINGS=
autoreconf: Entering directory '.'
autoreconf: configure.ac: not using Gettext
autoreconf: running: aclocal -I m4
autoreconf: configure.ac: tracing
autoreconf: configure.ac: not using Libtool
autoreconf: configure.ac: not using Intltool
autoreconf: configure.ac: not using Gtkdoc
autoreconf: running: /usr/bin/autoconf
configure.ac:88: warning: The preprocessor macro STDC_HEADERS' is obsolete. configure.ac:88: Except in unusual embedded environments, you can safely include all configure.ac:88: ISO C90 headers unconditionally. configure.ac:123: warning: The macro AC_TRY_COMPILE' is obsolete.
configure.ac:123: You should run autoupdate.
./lib/autoconf/general.m4:2847: AC_TRY_COMPILE is expanded from...
lib/m4sugar/m4sh.m4:692: _AS_IF_ELSE is expanded from...
lib/m4sugar/m4sh.m4:699: AS_IF is expanded from...
./lib/autoconf/general.m4:2249: AC_CACHE_VAL is expanded from...
./lib/autoconf/general.m4:2270: AC_CACHE_CHECK is expanded from...
m4/asmcfi.m4:1: GCC_AS_CFI_PSEUDO_OP is expanded from...
configure.ac:123: the top level
configure.ac:437: warning: LT_PATH_LD is m4_require'd but not m4_defun'd
acinclude.m4:149: LIBFFI_CHECK_LINKER_FEATURES is expanded from...
acinclude.m4:251: LIBFFI_ENABLE_SYMVERS is expanded from...
configure.ac:437: the top level
autoreconf: running: /usr/bin/autoheader
autoreconf: running: automake --add-missing --copy --no-force
Makefile.am:39: error: Libtool library used but 'LIBTOOL' is undefined
Makefile.am:39: The usual way to define 'LIBTOOL' is to add 'LT_INIT'
Makefile.am:39: to 'configure.ac' and run 'aclocal' and 'autoconf' again.
Makefile.am:39: If 'LT_INIT' is in 'configure.ac', make sure
Makefile.am:39: its definition is in aclocal's search path.
autoreconf: error: automake failed with exit status: 1
make: *** [Makefile:291: ../../lib/libffi/configure] Error 1
make: *** Deleting file '../../lib/libffi/configure'
make: Leaving directory '/home/murphy/micropython/ports/unix'
### Additional Information
No, I've provided everything above.
### Code of Conduct
Yes, I agree