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
32bit unix port build fails to find module in same directory
Port, board and/or hardware
unix port on WSL, source code on a mounted windows directory
MicroPython version
Latest master
Reproduction
- clone and cd to unix port directory
- add a 32bit directory under variants containing
micropython/ports/unix/variants/32bit/mpconfigvariant.h:
#define MICROPY_CONFIG_ROM_LEVEL (MICROPY_CONFIG_ROM_LEVEL_EXTRA_FEATURES)
#define MICROPY_DEBUG_PRINTERS (1)
#define MICROPY_FLOAT_IMPL (MICROPY_FLOAT_IMPL_DOUBLE)
#define MICROPY_LONGINT_IMPL (MICROPY_LONGINT_IMPL_MPZ)
micropython/ports/unix/variants/32bit/mpconfigvariant.mk:
MICROPY_FORCE_32BIT = 1
MICROPY_PY_FFI = 0
MICROPY_PY_BTREE = 0
- build standard and 32bit variants, so that's
makeandmake VARIANT=32BIT - create a directory frob containing
micropython/ports/unix/frob/foo.py:
# empty
micropython/ports/unix/frob/bar.py:
import foo
- run
./build-standard/micropython ./frob/bar.py-> no output, exepected - run
./build-32bit/micropython ./frob/bar.py-> output:
Traceback (most recent call last):
File "./frob/bar.py", line 1, in <module>
ImportError: no module named 'foo'
Expected behaviour
Behaviour should be the same as standard variant
Observed behaviour
import foo fails to find foo even though it's in the same directory as the module where the import statement is
Additional Information
Could be related to other features in this 32bit variant, though setting MICROPY_FORCE_32BIT = 0 does make the problem go away. I'm caught up in getting other things working at the moment so don't have time to look into thi. Could just as well be a WSL bug.
Code of Conduct
Yes, I agree