← index #17399Issue #17353
Related · high · value 1.398
QUERY · ISSUE

docs: pots/unix (standalone) has no instructions to build static linked micropython instance

openby o-murphyopened 2025-05-30updated 2025-07-07
docsport-unix

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

CANDIDATE · ISSUE

Build fails for port/unix mips/mipsel

openby o-murphyopened 2025-05-24updated 2025-05-30
bug

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

Keyboard

j / / n
next pair
k / / p
previous pair
1 / / h
show query pane
2 / / l
show candidate pane
c
copy suggested comment
r
toggle reasoning
g i
go to index
?
show this help
esc
close overlays

press ? or esc to close

copied