Lv_micropython build fails on mac OS

I tried to build lv_micropython on mac OS Monterey using unix port but it fails:

Use make V=1 or set BUILD_VERBOSE in your environment to increase build verbosity.
LVGL-GEN build-standard/lvgl/lv_mpy.c
cp ../../lib/lv_bindings/driver/png/lodepng/lodepng.cpp build-standard/lodepng/lodepng.c
LODEPNG-GEN build-standard/lodepng/mp_lodepng.c
mkdir -p build-standard/genhdr
GEN build-standard/genhdr/mpversion.h
GEN build-standard/genhdr/moduledefs.h
GEN build-standard/genhdr/qstr.i.last
GEN build-standard/genhdr/qstr.split
GEN build-standard/genhdr/qstrdefs.collected.h
QSTR updated
GEN build-standard/genhdr/qstrdefs.generated.h
mkdir -p build-standard/build-standard
mkdir -p build-standard/build-standard/lodepng
mkdir -p build-standard/build-standard/lvgl
mkdir -p build-standard/extmod
mkdir -p build-standard/lib/axtls/crypto
mkdir -p build-standard/lib/axtls/ssl
mkdir -p build-standard/lib/berkeley-db-1.xx/btree
mkdir -p build-standard/lib/berkeley-db-1.xx/mpool
mkdir -p build-standard/lib/lv_bindings/driver/SDL
mkdir -p build-standard/lib/lv_bindings/driver/png
mkdir -p build-standard/lib/lv_bindings/lvgl/examples/anim
mkdir -p build-standard/lib/lv_bindings/lvgl/examples/assets
mkdir -p build-standard/lib/lv_bindings/lvgl/examples/event
mkdir -p build-standard/lib/lv_bindings/lvgl/examples/get_started
mkdir -p build-standard/lib/lv_bindings/lvgl/examples/layouts/flex
mkdir -p build-standard/lib/lv_bindings/lvgl/examples/layouts/grid
mkdir -p build-standard/lib/lv_bindings/lvgl/examples/libs/bmp
mkdir -p build-standard/lib/lv_bindings/lvgl/examples/libs/ffmpeg
mkdir -p build-standard/lib/lv_bindings/lvgl/examples/libs/freetype
mkdir -p build-standard/lib/lv_bindings/lvgl/examples/libs/gif
mkdir -p build-standard/lib/lv_bindings/lvgl/examples/libs/png
mkdir -p build-standard/lib/lv_bindings/lvgl/examples/libs/qrcode
mkdir -p build-standard/lib/lv_bindings/lvgl/examples/libs/rlottie
mkdir -p build-standard/lib/lv_bindings/lvgl/examples/libs/sjpg
mkdir -p build-standard/lib/lv_bindings/lvgl/examples/others/monkey
mkdir -p build-standard/lib/lv_bindings/lvgl/examples/others/snapshot
mkdir -p build-standard/lib/lv_bindings/lvgl/examples/porting
mkdir -p build-standard/lib/lv_bindings/lvgl/examples/scroll
mkdir -p build-standard/lib/lv_bindings/lvgl/examples/styles
mkdir -p build-standard/lib/lv_bindings/lvgl/examples/widgets/animimg
mkdir -p build-standard/lib/lv_bindings/lvgl/examples/widgets/arc
mkdir -p build-standard/lib/lv_bindings/lvgl/examples/widgets/bar
mkdir -p build-standard/lib/lv_bindings/lvgl/examples/widgets/btn
mkdir -p build-standard/lib/lv_bindings/lvgl/examples/widgets/btnmatrix
mkdir -p build-standard/lib/lv_bindings/lvgl/examples/widgets/calendar
mkdir -p build-standard/lib/lv_bindings/lvgl/examples/widgets/canvas
mkdir -p build-standard/lib/lv_bindings/lvgl/examples/widgets/chart
mkdir -p build-standard/lib/lv_bindings/lvgl/examples/widgets/checkbox
mkdir -p build-standard/lib/lv_bindings/lvgl/examples/widgets/colorwheel
mkdir -p build-standard/lib/lv_bindings/lvgl/examples/widgets/dropdown
mkdir -p build-standard/lib/lv_bindings/lvgl/examples/widgets/img
mkdir -p build-standard/lib/lv_bindings/lvgl/examples/widgets/imgbtn
mkdir -p build-standard/lib/lv_bindings/lvgl/examples/widgets/keyboard
mkdir -p build-standard/lib/lv_bindings/lvgl/examples/widgets/label
mkdir -p build-standard/lib/lv_bindings/lvgl/examples/widgets/led
mkdir -p build-standard/lib/lv_bindings/lvgl/examples/widgets/line
mkdir -p build-standard/lib/lv_bindings/lvgl/examples/widgets/list
mkdir -p build-standard/lib/lv_bindings/lvgl/examples/widgets/menu
mkdir -p build-standard/lib/lv_bindings/lvgl/examples/widgets/meter
mkdir -p build-standard/lib/lv_bindings/lvgl/examples/widgets/msgbox
mkdir -p build-standard/lib/lv_bindings/lvgl/examples/widgets/obj
mkdir -p build-standard/lib/lv_bindings/lvgl/examples/widgets/roller
mkdir -p build-standard/lib/lv_bindings/lvgl/examples/widgets/slider
mkdir -p build-standard/lib/lv_bindings/lvgl/examples/widgets/span
mkdir -p build-standard/lib/lv_bindings/lvgl/examples/widgets/spinbox
mkdir -p build-standard/lib/lv_bindings/lvgl/examples/widgets/spinner
mkdir -p build-standard/lib/lv_bindings/lvgl/examples/widgets/switch
mkdir -p build-standard/lib/lv_bindings/lvgl/examples/widgets/table
mkdir -p build-standard/lib/lv_bindings/lvgl/examples/widgets/tabview
mkdir -p build-standard/lib/lv_bindings/lvgl/examples/widgets/textarea
mkdir -p build-standard/lib/lv_bindings/lvgl/examples/widgets/tileview
mkdir -p build-standard/lib/lv_bindings/lvgl/examples/widgets/win
mkdir -p build-standard/lib/lv_bindings/lvgl/src/core
mkdir -p build-standard/lib/lv_bindings/lvgl/src/draw
mkdir -p build-standard/lib/lv_bindings/lvgl/src/draw/nxp_pxp
mkdir -p build-standard/lib/lv_bindings/lvgl/src/draw/nxp_vglite
mkdir -p build-standard/lib/lv_bindings/lvgl/src/draw/sdl
mkdir -p build-standard/lib/lv_bindings/lvgl/src/draw/stm32_dma2d
mkdir -p build-standard/lib/lv_bindings/lvgl/src/draw/sw
mkdir -p build-standard/lib/lv_bindings/lvgl/src/extra
mkdir -p build-standard/lib/lv_bindings/lvgl/src/extra/layouts/flex
mkdir -p build-standard/lib/lv_bindings/lvgl/src/extra/layouts/grid
mkdir -p build-standard/lib/lv_bindings/lvgl/src/extra/libs/bmp
mkdir -p build-standard/lib/lv_bindings/lvgl/src/extra/libs/ffmpeg
mkdir -p build-standard/lib/lv_bindings/lvgl/src/extra/libs/freetype
mkdir -p build-standard/lib/lv_bindings/lvgl/src/extra/libs/fsdrv
mkdir -p build-standard/lib/lv_bindings/lvgl/src/extra/libs/gif
mkdir -p build-standard/lib/lv_bindings/lvgl/src/extra/libs/png
mkdir -p build-standard/lib/lv_bindings/lvgl/src/extra/libs/qrcode
mkdir -p build-standard/lib/lv_bindings/lvgl/src/extra/libs/rlottie
mkdir -p build-standard/lib/lv_bindings/lvgl/src/extra/libs/sjpg
mkdir -p build-standard/lib/lv_bindings/lvgl/src/extra/others/monkey
mkdir -p build-standard/lib/lv_bindings/lvgl/src/extra/others/snapshot
mkdir -p build-standard/lib/lv_bindings/lvgl/src/extra/themes/basic
mkdir -p build-standard/lib/lv_bindings/lvgl/src/extra/themes/default
mkdir -p build-standard/lib/lv_bindings/lvgl/src/extra/themes/mono
mkdir -p build-standard/lib/lv_bindings/lvgl/src/extra/widgets/animimg
mkdir -p build-standard/lib/lv_bindings/lvgl/src/extra/widgets/calendar
mkdir -p build-standard/lib/lv_bindings/lvgl/src/extra/widgets/chart
mkdir -p build-standard/lib/lv_bindings/lvgl/src/extra/widgets/colorwheel
mkdir -p build-standard/lib/lv_bindings/lvgl/src/extra/widgets/imgbtn
mkdir -p build-standard/lib/lv_bindings/lvgl/src/extra/widgets/keyboard
mkdir -p build-standard/lib/lv_bindings/lvgl/src/extra/widgets/led
mkdir -p build-standard/lib/lv_bindings/lvgl/src/extra/widgets/list
mkdir -p build-standard/lib/lv_bindings/lvgl/src/extra/widgets/menu
mkdir -p build-standard/lib/lv_bindings/lvgl/src/extra/widgets/meter
mkdir -p build-standard/lib/lv_bindings/lvgl/src/extra/widgets/msgbox
mkdir -p build-standard/lib/lv_bindings/lvgl/src/extra/widgets/span
mkdir -p build-standard/lib/lv_bindings/lvgl/src/extra/widgets/spinbox
mkdir -p build-standard/lib/lv_bindings/lvgl/src/extra/widgets/spinner
mkdir -p build-standard/lib/lv_bindings/lvgl/src/extra/widgets/tabview
mkdir -p build-standard/lib/lv_bindings/lvgl/src/extra/widgets/tileview
mkdir -p build-standard/lib/lv_bindings/lvgl/src/extra/widgets/win
mkdir -p build-standard/lib/lv_bindings/lvgl/src/font
mkdir -p build-standard/lib/lv_bindings/lvgl/src/hal
mkdir -p build-standard/lib/lv_bindings/lvgl/src/misc
mkdir -p build-standard/lib/lv_bindings/lvgl/src/widgets
mkdir -p build-standard/py
mkdir -p build-standard/shared/libc
mkdir -p build-standard/shared/readline
mkdir -p build-standard/shared/runtime
mkdir -p build-standard/shared/timeutils
CC ../../py/mpstate.c
CC ../../py/nlr.c
CC ../../py/nlrx86.c
CC ../../py/nlrx64.c
CC ../../py/nlrthumb.c
CC ../../py/nlraarch64.c
CC ../../py/nlrpowerpc.c
CC ../../py/nlrxtensa.c
CC ../../py/nlrsetjmp.c
CC ../../py/malloc.c
CC ../../py/gc.c
CC ../../py/pystack.c
CC ../../py/qstr.c
CC ../../py/vstr.c
CC ../../py/mpprint.c
CC ../../py/unicode.c
CC ../../py/mpz.c
CC ../../py/reader.c
CC ../../py/lexer.c
CC ../../py/parse.c
CC ../../py/scope.c
CC ../../py/compile.c
CC ../../py/emitcommon.c
CC ../../py/emitbc.c
CC ../../py/asmbase.c
CC ../../py/asmx64.c
CC ../../py/emitnx64.c
CC ../../py/asmx86.c
CC ../../py/emitnx86.c
CC ../../py/asmthumb.c
CC ../../py/emitnthumb.c
CC ../../py/emitinlinethumb.c
CC ../../py/asmarm.c
CC ../../py/emitnarm.c
CC ../../py/asmxtensa.c
CC ../../py/emitnxtensa.c
CC ../../py/emitinlinextensa.c
CC ../../py/emitnxtensawin.c
CC ../../py/formatfloat.c
CC ../../py/parsenumbase.c
CC ../../py/parsenum.c
CC ../../py/emitglue.c
CC ../../py/persistentcode.c
CC ../../py/runtime.c
CC ../../py/runtime_utils.c
CC ../../py/scheduler.c
CC ../../py/nativeglue.c
CC ../../py/pairheap.c
CC ../../py/ringbuf.c
CC ../../py/stackctrl.c
CC ../../py/argcheck.c
CC ../../py/warning.c
CC ../../py/profile.c
CC ../../py/map.c
CC ../../py/obj.c
CC ../../py/objarray.c
CC ../../py/objattrtuple.c
CC ../../py/objbool.c
CC ../../py/objboundmeth.c
CC ../../py/objcell.c
CC ../../py/objclosure.c
CC ../../py/objcomplex.c
CC ../../py/objdeque.c
CC ../../py/objdict.c
CC ../../py/objenumerate.c
CC ../../py/objexcept.c
CC ../../py/objfilter.c
CC ../../py/objfloat.c
CC ../../py/objfun.c
CC ../../py/objgenerator.c
CC ../../py/objgetitemiter.c
CC ../../py/objint.c
CC ../../py/objint_longlong.c
CC ../../py/objint_mpz.c
CC ../../py/objlist.c
CC ../../py/objmap.c
CC ../../py/objmodule.c
CC ../../py/objobject.c
CC ../../py/objpolyiter.c
CC ../../py/objproperty.c
CC ../../py/objnone.c
CC ../../py/objnamedtuple.c
CC ../../py/objrange.c
CC ../../py/objreversed.c
CC ../../py/objset.c
CC ../../py/objsingleton.c
CC ../../py/objslice.c
CC ../../py/objstr.c
CC ../../py/objstrunicode.c
CC ../../py/objstringio.c
CC ../../py/objtuple.c
CC ../../py/objtype.c
CC ../../py/objzip.c
CC ../../py/opmethods.c
CC ../../py/sequence.c
CC ../../py/stream.c
CC ../../py/binary.c
CC ../../py/builtinimport.c
CC ../../py/builtinevex.c
CC ../../py/builtinhelp.c
CC ../../py/modarray.c
CC ../../py/modbuiltins.c
CC ../../py/modcollections.c
CC ../../py/modgc.c
CC ../../py/modio.c
CC ../../py/modmath.c
CC ../../py/modcmath.c
CC ../../py/modmicropython.c
CC ../../py/modstruct.c
CC ../../py/modsys.c
CC ../../py/moduerrno.c
CC ../../py/modthread.c
CC ../../py/vm.c
CC ../../py/bc.c
CC ../../py/showbc.c
CC ../../py/repl.c
CC ../../py/smallint.c
CC ../../py/frozenmod.c
CC ../../extmod/moduasyncio.c
CC ../../extmod/moductypes.c
CC ../../extmod/modujson.c
CC ../../extmod/modure.c
CC ../../extmod/moduzlib.c
CC ../../extmod/moduheapq.c
CC ../../extmod/modutimeq.c
CC ../../extmod/moduhashlib.c
CC ../../extmod/moducryptolib.c
CC ../../extmod/modubinascii.c
CC ../../extmod/virtpin.c
CC ../../extmod/machine_bitstream.c
CC ../../extmod/machine_mem.c
CC ../../extmod/machine_pinbase.c
CC ../../extmod/machine_signal.c
CC ../../extmod/machine_pulse.c
CC ../../extmod/machine_i2c.c
CC ../../extmod/machine_spi.c
CC ../../extmod/modbluetooth.c
CC ../../extmod/modussl_axtls.c
CC ../../extmod/modussl_mbedtls.c
CC ../../extmod/modurandom.c
CC ../../extmod/moduselect.c
CC ../../extmod/moduwebsocket.c
CC ../../extmod/modwebrepl.c
CC ../../extmod/modframebuf.c
CC ../../extmod/vfs.c
CC ../../extmod/vfs_blockdev.c
CC ../../extmod/vfs_reader.c
CC ../../extmod/vfs_posix.c
CC ../../extmod/vfs_posix_file.c
CC ../../extmod/vfs_fat.c
CC ../../extmod/vfs_fat_diskio.c
CC ../../extmod/vfs_fat_file.c
CC ../../extmod/vfs_lfs.c
CC ../../extmod/utime_mphal.c
CC ../../extmod/uos_dupterm.c
CC ../../shared/libc/abort_.c
CC ../../shared/libc/printf.c
MPY upip.py
MPY upip_utarfile.py
MPY evdev.py
MPY lv_timer.py
MPY display_driver_utils.py
MPY display_driver.py
MPY imagetools.py
MPY fs_driver.py
MPY lv_utils.py
GEN build-standard/frozen_content.c
CC build-standard/frozen_content.c
build-standard/frozen_content.c:6374:96: error: argument to 'section' attribute is not valid for this target: mach-o section specifier uses an unknown section type
STATIC const byte fun_data_imagetools__lt_module_gt__get_png_info[1825] __attribute__((section(".text,\"ax\",@progbits # "))) = {
                                                                                               ^
build-standard/frozen_content.c:6579:83: error: argument to 'section' attribute is not valid for this target: mach-o section specifier uses an unknown section type
STATIC const byte fun_data_imagetools__lt_module_gt__[979] __attribute__((section(".text,\"ax\",@progbits # "))) = {
                                                                                  ^
build-standard/frozen_content.c:6669:84: error: argument to 'section' attribute is not valid for this target: mach-o section specifier uses an unknown section type
STATIC const byte fun_data_imagetools__lt_module_gt__2[979] __attribute__((section(".text,\"ax\",@progbits # "))) = {
                                                                                   ^
build-standard/frozen_content.c:6759:84: error: argument to 'section' attribute is not valid for this target: mach-o section specifier uses an unknown section type
STATIC const byte fun_data_imagetools__lt_module_gt__3[770] __attribute__((section(".text,\"ax\",@progbits # "))) = {
                                                                                   ^
build-standard/frozen_content.c:6836:92: error: argument to 'section' attribute is not valid for this target: mach-o section specifier uses an unknown section type
STATIC const byte fun_data_imagetools__lt_module_gt__open_png[1537] __attribute__((section(".text,\"ax\",@progbits # "))) = {
                                                                                           ^
5 errors generated.
make: *** [build-standard/build-standard/frozen_content.o] Error 1

I was expecting it to work since official micropython builds without a problem. Does it mean that lv_micropython wont compile on mac os?

Hi @wiklod !

lv_micropython is aligned to latest Micropython release, which is v1.17.
When you are saying that “official micropython builds without a problem” - did you check v1.17 official release, or just latest Micropython from git?

I’m not aware of any reason why lv_micropython won’t compile on mac os, if the official version does.
The offending “section” argument is created by mpy-tool.py, which is almost the same between lv_micropython and official Micropython v1.17.

Thank you for your reply and I am sorry for the delayed answer.

I was indeed building latest micropython from git, but I checked with the official release v1.17 moment ago and it also builds. The problem occurs only with lv_micropython. I was building MicroPython according to this official(?) guide.

Looks like Mac has some issue with freezing code that is specified as native.

Try to remove “imagetools.py” from manifest.py so it won’t be frozen.

Another option is to remove the “native” and “viper” decorators from imagetools.py.

1 Like

Removing decorators from imagetools.py allowed to build frozen_content.c, but it fails anyway later…

Use make V=1 or set BUILD_VERBOSE in your environment to increase build verbosity.
LVGL-GEN build-standard/lvgl/lv_mpy.c
cp ../../lib/lv_bindings/driver/png/lodepng/lodepng.cpp build-standard/lodepng/lodepng.c
LODEPNG-GEN build-standard/lodepng/mp_lodepng.c
mkdir -p build-standard/genhdr
GEN build-standard/genhdr/mpversion.h
GEN build-standard/genhdr/moduledefs.h
GEN build-standard/genhdr/qstr.i.last
GEN build-standard/genhdr/qstr.split
GEN build-standard/genhdr/qstrdefs.collected.h
QSTR updated
GEN build-standard/genhdr/qstrdefs.generated.h
mkdir -p build-standard/build-standard
mkdir -p build-standard/build-standard/lodepng
mkdir -p build-standard/build-standard/lvgl
mkdir -p build-standard/extmod
mkdir -p build-standard/lib/axtls/crypto
mkdir -p build-standard/lib/axtls/ssl
mkdir -p build-standard/lib/berkeley-db-1.xx/btree
mkdir -p build-standard/lib/berkeley-db-1.xx/mpool
mkdir -p build-standard/lib/lv_bindings/driver/SDL
mkdir -p build-standard/lib/lv_bindings/driver/png
mkdir -p build-standard/lib/lv_bindings/lvgl/examples/anim
mkdir -p build-standard/lib/lv_bindings/lvgl/examples/assets
mkdir -p build-standard/lib/lv_bindings/lvgl/examples/event
mkdir -p build-standard/lib/lv_bindings/lvgl/examples/get_started
mkdir -p build-standard/lib/lv_bindings/lvgl/examples/layouts/flex
mkdir -p build-standard/lib/lv_bindings/lvgl/examples/layouts/grid
mkdir -p build-standard/lib/lv_bindings/lvgl/examples/libs/bmp
mkdir -p build-standard/lib/lv_bindings/lvgl/examples/libs/ffmpeg
mkdir -p build-standard/lib/lv_bindings/lvgl/examples/libs/freetype
mkdir -p build-standard/lib/lv_bindings/lvgl/examples/libs/gif
mkdir -p build-standard/lib/lv_bindings/lvgl/examples/libs/png
mkdir -p build-standard/lib/lv_bindings/lvgl/examples/libs/qrcode
mkdir -p build-standard/lib/lv_bindings/lvgl/examples/libs/rlottie
mkdir -p build-standard/lib/lv_bindings/lvgl/examples/libs/sjpg
mkdir -p build-standard/lib/lv_bindings/lvgl/examples/others/monkey
mkdir -p build-standard/lib/lv_bindings/lvgl/examples/others/snapshot
mkdir -p build-standard/lib/lv_bindings/lvgl/examples/porting
mkdir -p build-standard/lib/lv_bindings/lvgl/examples/scroll
mkdir -p build-standard/lib/lv_bindings/lvgl/examples/styles
mkdir -p build-standard/lib/lv_bindings/lvgl/examples/widgets/animimg
mkdir -p build-standard/lib/lv_bindings/lvgl/examples/widgets/arc
mkdir -p build-standard/lib/lv_bindings/lvgl/examples/widgets/bar
mkdir -p build-standard/lib/lv_bindings/lvgl/examples/widgets/btn
mkdir -p build-standard/lib/lv_bindings/lvgl/examples/widgets/btnmatrix
mkdir -p build-standard/lib/lv_bindings/lvgl/examples/widgets/calendar
mkdir -p build-standard/lib/lv_bindings/lvgl/examples/widgets/canvas
mkdir -p build-standard/lib/lv_bindings/lvgl/examples/widgets/chart
mkdir -p build-standard/lib/lv_bindings/lvgl/examples/widgets/checkbox
mkdir -p build-standard/lib/lv_bindings/lvgl/examples/widgets/colorwheel
mkdir -p build-standard/lib/lv_bindings/lvgl/examples/widgets/dropdown
mkdir -p build-standard/lib/lv_bindings/lvgl/examples/widgets/img
mkdir -p build-standard/lib/lv_bindings/lvgl/examples/widgets/imgbtn
mkdir -p build-standard/lib/lv_bindings/lvgl/examples/widgets/keyboard
mkdir -p build-standard/lib/lv_bindings/lvgl/examples/widgets/label
mkdir -p build-standard/lib/lv_bindings/lvgl/examples/widgets/led
mkdir -p build-standard/lib/lv_bindings/lvgl/examples/widgets/line
mkdir -p build-standard/lib/lv_bindings/lvgl/examples/widgets/list
mkdir -p build-standard/lib/lv_bindings/lvgl/examples/widgets/menu
mkdir -p build-standard/lib/lv_bindings/lvgl/examples/widgets/meter
mkdir -p build-standard/lib/lv_bindings/lvgl/examples/widgets/msgbox
mkdir -p build-standard/lib/lv_bindings/lvgl/examples/widgets/obj
mkdir -p build-standard/lib/lv_bindings/lvgl/examples/widgets/roller
mkdir -p build-standard/lib/lv_bindings/lvgl/examples/widgets/slider
mkdir -p build-standard/lib/lv_bindings/lvgl/examples/widgets/span
mkdir -p build-standard/lib/lv_bindings/lvgl/examples/widgets/spinbox
mkdir -p build-standard/lib/lv_bindings/lvgl/examples/widgets/spinner
mkdir -p build-standard/lib/lv_bindings/lvgl/examples/widgets/switch
mkdir -p build-standard/lib/lv_bindings/lvgl/examples/widgets/table
mkdir -p build-standard/lib/lv_bindings/lvgl/examples/widgets/tabview
mkdir -p build-standard/lib/lv_bindings/lvgl/examples/widgets/textarea
mkdir -p build-standard/lib/lv_bindings/lvgl/examples/widgets/tileview
mkdir -p build-standard/lib/lv_bindings/lvgl/examples/widgets/win
mkdir -p build-standard/lib/lv_bindings/lvgl/src/core
mkdir -p build-standard/lib/lv_bindings/lvgl/src/draw
mkdir -p build-standard/lib/lv_bindings/lvgl/src/draw/nxp_pxp
mkdir -p build-standard/lib/lv_bindings/lvgl/src/draw/nxp_vglite
mkdir -p build-standard/lib/lv_bindings/lvgl/src/draw/sdl
mkdir -p build-standard/lib/lv_bindings/lvgl/src/draw/stm32_dma2d
mkdir -p build-standard/lib/lv_bindings/lvgl/src/draw/sw
mkdir -p build-standard/lib/lv_bindings/lvgl/src/extra
mkdir -p build-standard/lib/lv_bindings/lvgl/src/extra/layouts/flex
mkdir -p build-standard/lib/lv_bindings/lvgl/src/extra/layouts/grid
mkdir -p build-standard/lib/lv_bindings/lvgl/src/extra/libs/bmp
mkdir -p build-standard/lib/lv_bindings/lvgl/src/extra/libs/ffmpeg
mkdir -p build-standard/lib/lv_bindings/lvgl/src/extra/libs/freetype
mkdir -p build-standard/lib/lv_bindings/lvgl/src/extra/libs/fsdrv
mkdir -p build-standard/lib/lv_bindings/lvgl/src/extra/libs/gif
mkdir -p build-standard/lib/lv_bindings/lvgl/src/extra/libs/png
mkdir -p build-standard/lib/lv_bindings/lvgl/src/extra/libs/qrcode
mkdir -p build-standard/lib/lv_bindings/lvgl/src/extra/libs/rlottie
mkdir -p build-standard/lib/lv_bindings/lvgl/src/extra/libs/sjpg
mkdir -p build-standard/lib/lv_bindings/lvgl/src/extra/others/monkey
mkdir -p build-standard/lib/lv_bindings/lvgl/src/extra/others/snapshot
mkdir -p build-standard/lib/lv_bindings/lvgl/src/extra/themes/basic
mkdir -p build-standard/lib/lv_bindings/lvgl/src/extra/themes/default
mkdir -p build-standard/lib/lv_bindings/lvgl/src/extra/themes/mono
mkdir -p build-standard/lib/lv_bindings/lvgl/src/extra/widgets/animimg
mkdir -p build-standard/lib/lv_bindings/lvgl/src/extra/widgets/calendar
mkdir -p build-standard/lib/lv_bindings/lvgl/src/extra/widgets/chart
mkdir -p build-standard/lib/lv_bindings/lvgl/src/extra/widgets/colorwheel
mkdir -p build-standard/lib/lv_bindings/lvgl/src/extra/widgets/imgbtn
mkdir -p build-standard/lib/lv_bindings/lvgl/src/extra/widgets/keyboard
mkdir -p build-standard/lib/lv_bindings/lvgl/src/extra/widgets/led
mkdir -p build-standard/lib/lv_bindings/lvgl/src/extra/widgets/list
mkdir -p build-standard/lib/lv_bindings/lvgl/src/extra/widgets/menu
mkdir -p build-standard/lib/lv_bindings/lvgl/src/extra/widgets/meter
mkdir -p build-standard/lib/lv_bindings/lvgl/src/extra/widgets/msgbox
mkdir -p build-standard/lib/lv_bindings/lvgl/src/extra/widgets/span
mkdir -p build-standard/lib/lv_bindings/lvgl/src/extra/widgets/spinbox
mkdir -p build-standard/lib/lv_bindings/lvgl/src/extra/widgets/spinner
mkdir -p build-standard/lib/lv_bindings/lvgl/src/extra/widgets/tabview
mkdir -p build-standard/lib/lv_bindings/lvgl/src/extra/widgets/tileview
mkdir -p build-standard/lib/lv_bindings/lvgl/src/extra/widgets/win
mkdir -p build-standard/lib/lv_bindings/lvgl/src/font
mkdir -p build-standard/lib/lv_bindings/lvgl/src/hal
mkdir -p build-standard/lib/lv_bindings/lvgl/src/misc
mkdir -p build-standard/lib/lv_bindings/lvgl/src/widgets
mkdir -p build-standard/py
mkdir -p build-standard/shared/libc
mkdir -p build-standard/shared/readline
mkdir -p build-standard/shared/runtime
mkdir -p build-standard/shared/timeutils
CC ../../py/mpstate.c
CC ../../py/nlr.c
CC ../../py/nlrx86.c
CC ../../py/nlrx64.c
CC ../../py/nlrthumb.c
CC ../../py/nlraarch64.c
CC ../../py/nlrpowerpc.c
CC ../../py/nlrxtensa.c
CC ../../py/nlrsetjmp.c
CC ../../py/malloc.c
CC ../../py/gc.c
CC ../../py/pystack.c
CC ../../py/qstr.c
CC ../../py/vstr.c
CC ../../py/mpprint.c
CC ../../py/unicode.c
CC ../../py/mpz.c
CC ../../py/reader.c
CC ../../py/lexer.c
CC ../../py/parse.c
CC ../../py/scope.c
CC ../../py/compile.c
CC ../../py/emitcommon.c
CC ../../py/emitbc.c
CC ../../py/asmbase.c
CC ../../py/asmx64.c
CC ../../py/emitnx64.c
CC ../../py/asmx86.c
CC ../../py/emitnx86.c
CC ../../py/asmthumb.c
CC ../../py/emitnthumb.c
CC ../../py/emitinlinethumb.c
CC ../../py/asmarm.c
CC ../../py/emitnarm.c
CC ../../py/asmxtensa.c
CC ../../py/emitnxtensa.c
CC ../../py/emitinlinextensa.c
CC ../../py/emitnxtensawin.c
CC ../../py/formatfloat.c
CC ../../py/parsenumbase.c
CC ../../py/parsenum.c
CC ../../py/emitglue.c
CC ../../py/persistentcode.c
CC ../../py/runtime.c
CC ../../py/runtime_utils.c
CC ../../py/scheduler.c
CC ../../py/nativeglue.c
CC ../../py/pairheap.c
CC ../../py/ringbuf.c
CC ../../py/stackctrl.c
CC ../../py/argcheck.c
CC ../../py/warning.c
CC ../../py/profile.c
CC ../../py/map.c
CC ../../py/obj.c
CC ../../py/objarray.c
CC ../../py/objattrtuple.c
CC ../../py/objbool.c
CC ../../py/objboundmeth.c
CC ../../py/objcell.c
CC ../../py/objclosure.c
CC ../../py/objcomplex.c
CC ../../py/objdeque.c
CC ../../py/objdict.c
CC ../../py/objenumerate.c
CC ../../py/objexcept.c
CC ../../py/objfilter.c
CC ../../py/objfloat.c
CC ../../py/objfun.c
CC ../../py/objgenerator.c
CC ../../py/objgetitemiter.c
CC ../../py/objint.c
CC ../../py/objint_longlong.c
CC ../../py/objint_mpz.c
CC ../../py/objlist.c
CC ../../py/objmap.c
CC ../../py/objmodule.c
CC ../../py/objobject.c
CC ../../py/objpolyiter.c
CC ../../py/objproperty.c
CC ../../py/objnone.c
CC ../../py/objnamedtuple.c
CC ../../py/objrange.c
CC ../../py/objreversed.c
CC ../../py/objset.c
CC ../../py/objsingleton.c
CC ../../py/objslice.c
CC ../../py/objstr.c
CC ../../py/objstrunicode.c
CC ../../py/objstringio.c
CC ../../py/objtuple.c
CC ../../py/objtype.c
CC ../../py/objzip.c
CC ../../py/opmethods.c
CC ../../py/sequence.c
CC ../../py/stream.c
CC ../../py/binary.c
CC ../../py/builtinimport.c
CC ../../py/builtinevex.c
CC ../../py/builtinhelp.c
CC ../../py/modarray.c
CC ../../py/modbuiltins.c
CC ../../py/modcollections.c
CC ../../py/modgc.c
CC ../../py/modio.c
CC ../../py/modmath.c
CC ../../py/modcmath.c
CC ../../py/modmicropython.c
CC ../../py/modstruct.c
CC ../../py/modsys.c
CC ../../py/moduerrno.c
CC ../../py/modthread.c
CC ../../py/vm.c
CC ../../py/bc.c
CC ../../py/showbc.c
CC ../../py/repl.c
CC ../../py/smallint.c
CC ../../py/frozenmod.c
CC ../../extmod/moduasyncio.c
CC ../../extmod/moductypes.c
CC ../../extmod/modujson.c
CC ../../extmod/modure.c
CC ../../extmod/moduzlib.c
CC ../../extmod/moduheapq.c
CC ../../extmod/modutimeq.c
CC ../../extmod/moduhashlib.c
CC ../../extmod/moducryptolib.c
CC ../../extmod/modubinascii.c
CC ../../extmod/virtpin.c
CC ../../extmod/machine_bitstream.c
CC ../../extmod/machine_mem.c
CC ../../extmod/machine_pinbase.c
CC ../../extmod/machine_signal.c
CC ../../extmod/machine_pulse.c
CC ../../extmod/machine_i2c.c
CC ../../extmod/machine_spi.c
CC ../../extmod/modbluetooth.c
CC ../../extmod/modussl_axtls.c
CC ../../extmod/modussl_mbedtls.c
CC ../../extmod/modurandom.c
CC ../../extmod/moduselect.c
CC ../../extmod/moduwebsocket.c
CC ../../extmod/modwebrepl.c
CC ../../extmod/modframebuf.c
CC ../../extmod/vfs.c
CC ../../extmod/vfs_blockdev.c
CC ../../extmod/vfs_reader.c
CC ../../extmod/vfs_posix.c
CC ../../extmod/vfs_posix_file.c
CC ../../extmod/vfs_fat.c
CC ../../extmod/vfs_fat_diskio.c
CC ../../extmod/vfs_fat_file.c
CC ../../extmod/vfs_lfs.c
CC ../../extmod/utime_mphal.c
CC ../../extmod/uos_dupterm.c
CC ../../shared/libc/abort_.c
CC ../../shared/libc/printf.c
MPY upip.py
MPY upip_utarfile.py
MPY evdev.py
MPY lv_timer.py
MPY display_driver_utils.py
MPY display_driver.py
MPY imagetools.py
MPY fs_driver.py
MPY lv_utils.py
GEN build-standard/frozen_content.c
CC build-standard/frozen_content.c
CC main.c
CC gccollect.c
CC unix_mphal.c
CC mpthreadport.c
CC input.c
CC modmachine.c
CC modos.c
CC moduos_vfs.c
CC modtime.c
CC moduselect.c
CC alloc.c
CC fatfs_port.c
CC mpbthciport.c
CC mpbtstackport_common.c
CC mpbtstackport_h4.c
CC mpbtstackport_usb.c
CC mpnimbleport.c
CC ../../lib/lv_bindings/lvgl/src/misc/lv_utils.c
CC ../../lib/lv_bindings/lvgl/src/misc/lv_txt.c
CC ../../lib/lv_bindings/lvgl/src/misc/lv_anim_timeline.c
CC ../../lib/lv_bindings/lvgl/src/misc/lv_style.c
CC ../../lib/lv_bindings/lvgl/src/misc/lv_style_gen.c
CC ../../lib/lv_bindings/lvgl/src/misc/lv_mem.c
CC ../../lib/lv_bindings/lvgl/src/misc/lv_fs.c
CC ../../lib/lv_bindings/lvgl/src/misc/lv_txt_ap.c
CC ../../lib/lv_bindings/lvgl/src/misc/lv_color.c
CC ../../lib/lv_bindings/lvgl/src/misc/lv_ll.c
CC ../../lib/lv_bindings/lvgl/src/misc/lv_log.c
CC ../../lib/lv_bindings/lvgl/src/misc/lv_area.c
CC ../../lib/lv_bindings/lvgl/src/misc/lv_lru.c
CC ../../lib/lv_bindings/lvgl/src/misc/lv_timer.c
CC ../../lib/lv_bindings/lvgl/src/misc/lv_async.c
CC ../../lib/lv_bindings/lvgl/src/misc/lv_templ.c
CC ../../lib/lv_bindings/lvgl/src/misc/lv_printf.c
CC ../../lib/lv_bindings/lvgl/src/misc/lv_tlsf.c
CC ../../lib/lv_bindings/lvgl/src/misc/lv_math.c
CC ../../lib/lv_bindings/lvgl/src/misc/lv_anim.c
CC ../../lib/lv_bindings/lvgl/src/misc/lv_gc.c
CC ../../lib/lv_bindings/lvgl/src/misc/lv_bidi.c
CC ../../lib/lv_bindings/lvgl/src/core/lv_indev.c
CC ../../lib/lv_bindings/lvgl/src/core/lv_theme.c
CC ../../lib/lv_bindings/lvgl/src/core/lv_disp.c
CC ../../lib/lv_bindings/lvgl/src/core/lv_obj_class.c
CC ../../lib/lv_bindings/lvgl/src/core/lv_refr.c
CC ../../lib/lv_bindings/lvgl/src/core/lv_event.c
CC ../../lib/lv_bindings/lvgl/src/core/lv_obj_draw.c
CC ../../lib/lv_bindings/lvgl/src/core/lv_obj.c
CC ../../lib/lv_bindings/lvgl/src/core/lv_obj_style_gen.c
CC ../../lib/lv_bindings/lvgl/src/core/lv_obj_style.c
CC ../../lib/lv_bindings/lvgl/src/core/lv_group.c
CC ../../lib/lv_bindings/lvgl/src/core/lv_indev_scroll.c
CC ../../lib/lv_bindings/lvgl/src/core/lv_obj_pos.c
CC ../../lib/lv_bindings/lvgl/src/core/lv_obj_tree.c
CC ../../lib/lv_bindings/lvgl/src/core/lv_obj_scroll.c
CC ../../lib/lv_bindings/lvgl/src/hal/lv_hal_tick.c
CC ../../lib/lv_bindings/lvgl/src/hal/lv_hal_indev.c
CC ../../lib/lv_bindings/lvgl/src/hal/lv_hal_disp.c
CC ../../lib/lv_bindings/lvgl/src/extra/others/snapshot/lv_snapshot.c
CC ../../lib/lv_bindings/lvgl/src/extra/others/monkey/lv_monkey.c
CC ../../lib/lv_bindings/lvgl/src/extra/libs/ffmpeg/lv_ffmpeg.c
CC ../../lib/lv_bindings/lvgl/src/extra/libs/sjpg/tjpgd.c
CC ../../lib/lv_bindings/lvgl/src/extra/libs/sjpg/lv_sjpg.c
CC ../../lib/lv_bindings/lvgl/src/extra/libs/freetype/lv_freetype.c
CC ../../lib/lv_bindings/lvgl/src/extra/libs/png/lv_png.c
CC ../../lib/lv_bindings/lvgl/src/extra/libs/png/lodepng.c
CC ../../lib/lv_bindings/lvgl/src/extra/libs/qrcode/lv_qrcode.c
CC ../../lib/lv_bindings/lvgl/src/extra/libs/qrcode/qrcodegen.c
CC ../../lib/lv_bindings/lvgl/src/extra/libs/rlottie/lv_rlottie.c
CC ../../lib/lv_bindings/lvgl/src/extra/libs/fsdrv/lv_fs_stdio.c
CC ../../lib/lv_bindings/lvgl/src/extra/libs/fsdrv/lv_fs_posix.c
CC ../../lib/lv_bindings/lvgl/src/extra/libs/fsdrv/lv_fs_fatfs.c
CC ../../lib/lv_bindings/lvgl/src/extra/libs/fsdrv/lv_fs_win32.c
CC ../../lib/lv_bindings/lvgl/src/extra/libs/bmp/lv_bmp.c
CC ../../lib/lv_bindings/lvgl/src/extra/libs/gif/lv_gif.c
CC ../../lib/lv_bindings/lvgl/src/extra/libs/gif/gifdec.c
../../lib/lv_bindings/lvgl/src/extra/libs/gif/gifdec.c:96:9: error: variable 'gif' is used uninitialized whenever 'if' condition is true [-Werror,-Wsometimes-uninitialized]
    if (!(fdsz & 0x80)) {
        ^~~~~~~~~~~~~~
../../lib/lv_bindings/lvgl/src/extra/libs/gif/gifdec.c:163:12: note: uninitialized use occurs here
    return gif;
           ^~~
../../lib/lv_bindings/lvgl/src/extra/libs/gif/gifdec.c:96:5: note: remove the 'if' if its condition is always false
    if (!(fdsz & 0x80)) {
    ^~~~~~~~~~~~~~~~~~~~~
../../lib/lv_bindings/lvgl/src/extra/libs/gif/gifdec.c:86:9: error: variable 'gif' is used uninitialized whenever 'if' condition is true [-Werror,-Wsometimes-uninitialized]
    if (memcmp(sigver, "89a", 3) != 0) {
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../lib/lv_bindings/lvgl/src/extra/libs/gif/gifdec.c:163:12: note: uninitialized use occurs here
    return gif;
           ^~~
../../lib/lv_bindings/lvgl/src/extra/libs/gif/gifdec.c:86:5: note: remove the 'if' if its condition is always false
    if (memcmp(sigver, "89a", 3) != 0) {
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../lib/lv_bindings/lvgl/src/extra/libs/gif/gifdec.c:80:9: error: variable 'gif' is used uninitialized whenever 'if' condition is true [-Werror,-Wsometimes-uninitialized]
    if (memcmp(sigver, "GIF", 3) != 0) {
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../lib/lv_bindings/lvgl/src/extra/libs/gif/gifdec.c:163:12: note: uninitialized use occurs here
    return gif;
           ^~~
../../lib/lv_bindings/lvgl/src/extra/libs/gif/gifdec.c:80:5: note: remove the 'if' if its condition is always false
    if (memcmp(sigver, "GIF", 3) != 0) {
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../lib/lv_bindings/lvgl/src/extra/libs/gif/gifdec.c:76:16: note: initialize the variable 'gif' to silence this warning
    gd_GIF *gif;
               ^
                = NULL
3 errors generated.
make: *** [build-standard/lib/lv_bindings/lvgl/src/extra/libs/gif/gifdec.o] Error 1
1 Like

It seems that your compiler might be newer/more picky than expected. The warning there is probably valid, but you should be able to change -Werror to -Wno-error here to get past it.

1 Like

That worked out. Thank you!

@embeddedt @amirgon I fix it like this __attribute__((section(".text,\"ax\",@progbits # "))) ==> __attribute__((section("__TEXT,__text"))), it compiled, but i don’t know if any side effect in runtime!, any idea ?? I also try out your approach, but it doesn’t work fine also! !
many problems occur:
1.

>>> import display driver
Traceback (most recent call last):
  File "<stdin>", line 1
SyntaxError: invalid syntax
>>> import display_driver
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "display_driver.py", line 1, in <module>
  File "display_driver_utils.py", line 5, in <module>
  File "lv_utils.py", line 45, in <module>
RuntimeError: Missing machine.Timer implementation!
import lvgl as lv
lv.init()
>>> import SDL
>>> SDL.init()
>>> scr = lv.obj()
[1]    27450 segmentation fault  ./micropython

No idea.
It’s not specific to lv_micropython, so it’s better to ask on the Micropython forum.

These are runtime problems, not related to the compile time problem on this thread.
I noticed that you opened another thread with the same problems, so let’s discuss it there.