U-Boot tools and binman build fails in macOS 13

Simon Glass sjg at chromium.org
Sat Feb 4 01:20:23 CET 2023


Hi,

On Fri, 3 Feb 2023 at 06:18, Alif Ilhan <alifilhan0 at gmail.com> wrote:
>
> Hi, I have been trying to build U-Boot’s tools, especially binman in macOS 13 because the new hardware I am working with needs binman. I have python 3.11 installed, compiler is Apple Clang V14.0.0 and XCode is 14.1. Before enabling binman it used to compile, build and run fine. But after selecting binman, build fails with maybe all python symbols missing. tools-only_defconfig also can reproduce the same error. So far I have tried manually linking the libpython3.11 and adding the python libs directory as a flag, build python with “—enabled-shared” flag from pyenv. All end up being on this same result. Any help please?
>
> ╭─ /Volumes/build/u-boot │ on mt6735 !1                   ✔ │ at 08:34:01 AM ─╮
> ╰─ make -j12 tools-only_defconfig                                            ─╯
>   HOSTCC  scripts/basic/fixdep
>   HOSTCC  scripts/kconfig/conf.o
>   HOSTCC  scripts/kconfig/zconf.tab.o
>   HOSTLD  scripts/kconfig/conf
> #
> # configuration written to .config
> #
>
> ╭─ /Volumes/build/u-boot │ on mt6735 !1         ✔ │ took 5s │ at 08:34:13 AM ─╮
> ╰─ make -j12                                                                 ─╯
> /bin/sh: line 0: [: too many arguments
> /bin/sh: line 0: [: too many arguments

What is this referring to?

> scripts/kconfig/conf  --syncconfig Kconfig
>   CFG     u-boot.cfg
>   GEN     include/autoconf.mk.dep
> In file included from ./include/common.h:18:
> In file included from include/time.h:7:
> In file included from include/linux/types.h:4:
> In file included from include/linux/posix_types.h:4:
> In file included from include/linux/stddef.h:4:
> In file included from include/linux/compiler_types.h:59:
> include/linux/compiler_attributes.h:271:9: warning: '__weak' macro redefined [-Wmacro-redefined]
> #define __weak                          __attribute__((__weak__))
>         ^
> <built-in>:359:9: note: previous definition is here
> #define __weak __attribute__((objc_gc(weak)))
>         ^
> 1 warning generated.

Probably should fix that.

>   GEN     include/autoconf.mk
>   CFGCHK  u-boot.cfg
>   OFCHK   .config
>   UPD     include/generated/timestamp_autogenerated.h
>   ENVC    include/generated/env.txt
> ld: unknown option: --version
>   ENVP    include/generated/env.in
>   HOSTCC  scripts/dtc/dtc.o
>   HOSTCC  scripts/dtc/flattree.o
>   HOSTCC  scripts/dtc/fstree.o
>   HOSTCC  scripts/dtc/data.o
>   HOSTCC  scripts/dtc/livetree.o
>   HOSTCC  scripts/dtc/treesource.o
>   HOSTCC  scripts/dtc/srcpos.o
>   PYMOD   rebuild
>   HOSTCC  scripts/dtc/checks.o
>   HOSTCC  scripts/dtc/util.o
>   HOSTCC  scripts/dtc/dtc-lexer.lex.o
>   HOSTCC  scripts/dtc/dtc-parser.tab.o
>   HOSTLD  scripts/dtc/dtc
> /Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/setuptools/dist.py:544: UserWarning: The version specified ('u-boot-2022.10-rc2') is an invalid version, this may not work as expected with newer versions of setuptools, pip, and PyPI. Please see PEP 440 for more details.
>   warnings.warn(

I believe this has been fixed already. At least I saw a patch for it.

> Undefined symbols for architecture x86_64:
>   "_PyArg_UnpackTuple", referenced from:
>       _SwigPyObject_own in libfdt_wrap.o
>   "_PyBool_FromLong", referenced from:
>       _SwigPyObject_richcompare in libfdt_wrap.o
>       _SwigPyObject_own in libfdt_wrap.o
>   "_PyByteArray_AsString", referenced from:
>       __wrap_fdt_magic in libfdt_wrap.o
>       __wrap_fdt_totalsize in libfdt_wrap.o
>       __wrap_fdt_off_dt_struct in libfdt_wrap.o
>       __wrap_fdt_off_dt_strings in libfdt_wrap.o
>       __wrap_fdt_off_mem_rsvmap in libfdt_wrap.o
>       __wrap_fdt_version in libfdt_wrap.o
>       __wrap_fdt_last_comp_version in libfdt_wrap.o
>       ...
>   "_PyByteArray_FromStringAndSize", referenced from:
>       __wrap_fdt_get_property_by_offset in libfdt_wrap.o
>       __wrap_fdt_get_property in libfdt_wrap.o
>       __wrap_fdt_get_property_w in libfdt_wrap.o
>   "_PyByteArray_Type", referenced from:
>       __wrap_fdt_magic in libfdt_wrap.o
>       __wrap_fdt_totalsize in libfdt_wrap.o
>       __wrap_fdt_off_dt_struct in libfdt_wrap.o
>       __wrap_fdt_off_dt_strings in libfdt_wrap.o
>       __wrap_fdt_off_mem_rsvmap in libfdt_wrap.o
>       __wrap_fdt_version in libfdt_wrap.o
>       __wrap_fdt_last_comp_version in libfdt_wrap.o
>       ...
>   "_PyBytes_AsString", referenced from:
>       __wrap_fdt_property_stub in libfdt_wrap.o
>       __wrap_fdt_setprop in libfdt_wrap.o
>       __wrap_fdt_appendprop in libfdt_wrap.o
>   "_PyBytes_AsStringAndSize", referenced from:
>       _SWIG_AsCharPtrAndSize in libfdt_wrap.o
>   "_PyCapsule_GetPointer", referenced from:
>       _SWIG_pchar_descriptor in libfdt_wrap.o
>       _SWIG_Python_DestroyModule in libfdt_wrap.o
>   "_PyCapsule_Import", referenced from:
>       _PyInit__libfdt in libfdt_wrap.o
>       _SWIG_pchar_descriptor in libfdt_wrap.o
>   "_PyCapsule_New", referenced from:
>       _PyInit__libfdt in libfdt_wrap.o
>       _SWIG_pchar_descriptor in libfdt_wrap.o
>   "_PyDict_GetItem", referenced from:
>       _SWIG_pchar_descriptor in libfdt_wrap.o
>   "_PyDict_New", referenced from:
>       _PyInit__libfdt in libfdt_wrap.o
>       _SWIG_Python_NewPointerObj in libfdt_wrap.o
>       _SWIG_pchar_descriptor in libfdt_wrap.o
>       _SWIG_Python_DestroyModule in libfdt_wrap.o
>   "_PyDict_SetItem", referenced from:
>       _SWIG_pchar_descriptor in libfdt_wrap.o
>   "_PyDict_SetItemString", referenced from:
>       _PyInit__libfdt in libfdt_wrap.o
>   "_PyErr_Clear", referenced from:
>       _PyInit__libfdt in libfdt_wrap.o
>       __wrap_fdt_header_magic_set in libfdt_wrap.o
>       __wrap_fdt_header_totalsize_set in libfdt_wrap.o
>       __wrap_fdt_header_off_dt_struct_set in libfdt_wrap.o
>       __wrap_fdt_header_off_dt_strings_set in libfdt_wrap.o
>       __wrap_fdt_header_off_mem_rsvmap_set in libfdt_wrap.o
>       __wrap_fdt_header_version_set in libfdt_wrap.o
>       ...
>   "_PyErr_Fetch", referenced from:
>       _SwigPyObject_dealloc in libfdt_wrap.o
>   "_PyErr_Format", referenced from:
>       _SWIG_Python_UnpackTuple in libfdt_wrap.o
>       _swig_varlink_getattr in libfdt_wrap.o
>       _swig_varlink_setattr in libfdt_wrap.o
>   "_PyErr_Occurred", referenced from:
>       _PyInit__libfdt in libfdt_wrap.o
>       __wrap_fdt_header_magic_set in libfdt_wrap.o
>       __wrap_fdt_header_totalsize_set in libfdt_wrap.o
>       __wrap_fdt_header_off_dt_struct_set in libfdt_wrap.o
>       __wrap_fdt_header_off_dt_strings_set in libfdt_wrap.o
>       __wrap_fdt_header_off_mem_rsvmap_set in libfdt_wrap.o
>       __wrap_fdt_header_version_set in libfdt_wrap.o
>       ...
>   "_PyErr_Restore", referenced from:
>       _SwigPyObject_dealloc in libfdt_wrap.o
>   "_PyErr_SetString", referenced from:
>       __wrap_fdt_header_magic_set in libfdt_wrap.o
>       __wrap_fdt_header_magic_get in libfdt_wrap.o
>       __wrap_fdt_header_totalsize_set in libfdt_wrap.o
>       __wrap_fdt_header_totalsize_get in libfdt_wrap.o
>       __wrap_fdt_header_off_dt_struct_set in libfdt_wrap.o
>       __wrap_fdt_header_off_dt_struct_get in libfdt_wrap.o
>       __wrap_fdt_header_off_dt_strings_set in libfdt_wrap.o
>       ...
>   "_PyErr_WriteUnraisable", referenced from:
>       _SwigPyObject_dealloc in libfdt_wrap.o
>   "_PyExc_AttributeError", referenced from:
>       _swig_varlink_getattr in libfdt_wrap.o
>       _swig_varlink_setattr in libfdt_wrap.o
>       l_switch.table._wrap_fdt_add_subnode in libfdt_wrap.o
>   "_PyExc_IOError", referenced from:
>       l_switch.table._wrap_fdt_add_subnode in libfdt_wrap.o
>   "_PyExc_IndexError", referenced from:
>       l_switch.table._wrap_fdt_add_subnode in libfdt_wrap.o
>   "_PyExc_MemoryError", referenced from:
>       l_switch.table._wrap_fdt_add_subnode in libfdt_wrap.o
>   "_PyExc_OverflowError", referenced from:
>       __wrap_fdt_header_magic_set in libfdt_wrap.o
>       __wrap_fdt_header_totalsize_set in libfdt_wrap.o
>       __wrap_fdt_header_off_dt_struct_set in libfdt_wrap.o
>       __wrap_fdt_header_off_dt_strings_set in libfdt_wrap.o
>       __wrap_fdt_header_off_mem_rsvmap_set in libfdt_wrap.o
>       __wrap_fdt_header_version_set in libfdt_wrap.o
>       __wrap_fdt_header_last_comp_version_set in libfdt_wrap.o
>       ...
>   "_PyExc_RuntimeError", referenced from:
>       __wrap_fdt_header_magic_set in libfdt_wrap.o
>       __wrap_fdt_header_magic_get in libfdt_wrap.o
>       __wrap_fdt_header_totalsize_set in libfdt_wrap.o
>       __wrap_fdt_header_totalsize_get in libfdt_wrap.o
>       __wrap_fdt_header_off_dt_struct_set in libfdt_wrap.o
>       __wrap_fdt_header_off_dt_struct_get in libfdt_wrap.o
>       __wrap_fdt_header_off_dt_strings_set in libfdt_wrap.o
>       ...
>   "_PyExc_SyntaxError", referenced from:
>       l_switch.table._wrap_fdt_add_subnode in libfdt_wrap.o
>   "_PyExc_SystemError", referenced from:
>       _SWIG_Python_UnpackTuple in libfdt_wrap.o
>       l_switch.table._wrap_fdt_add_subnode in libfdt_wrap.o
>   "_PyExc_TypeError", referenced from:
>       __wrap_fdt_header_magic_set in libfdt_wrap.o
>       __wrap_fdt_header_totalsize_set in libfdt_wrap.o
>       __wrap_fdt_header_off_dt_struct_set in libfdt_wrap.o
>       __wrap_fdt_header_off_dt_strings_set in libfdt_wrap.o
>       __wrap_fdt_header_off_mem_rsvmap_set in libfdt_wrap.o
>       __wrap_fdt_header_version_set in libfdt_wrap.o
>       __wrap_fdt_header_last_comp_version_set in libfdt_wrap.o
>       ...
>   "_PyExc_ValueError", referenced from:
>       __wrap_fdt_reserve_entry_address_set in libfdt_wrap.o
>       __wrap_fdt_reserve_entry_size_set in libfdt_wrap.o
>       l_switch.table._wrap_fdt_add_subnode in libfdt_wrap.o
>   "_PyExc_ZeroDivisionError", referenced from:
>       l_switch.table._wrap_fdt_add_subnode in libfdt_wrap.o
>   "_PyImport_AddModule", referenced from:
>       _PyInit__libfdt in libfdt_wrap.o
>   "_PyList_Append", referenced from:
>       __wrap_fdt_next_node in libfdt_wrap.o
>       __wrap_fdt_get_string in libfdt_wrap.o
>       __wrap_fdt_get_mem_rsv in libfdt_wrap.o
>       __wrap_fdt_get_name in libfdt_wrap.o
>       __wrap_fdt_get_property_by_offset in libfdt_wrap.o
>       __wrap_fdt_get_property in libfdt_wrap.o
>       __wrap_fdt_get_property_w in libfdt_wrap.o
>       ...
>   "_PyList_New", referenced from:
>       __wrap_fdt_next_node in libfdt_wrap.o
>       __wrap_fdt_get_string in libfdt_wrap.o
>       __wrap_fdt_get_mem_rsv in libfdt_wrap.o
>       __wrap_fdt_get_name in libfdt_wrap.o
>       __wrap_fdt_get_property_by_offset in libfdt_wrap.o
>       __wrap_fdt_get_property in libfdt_wrap.o
>       __wrap_fdt_get_property_w in libfdt_wrap.o
>       ...
>   "_PyLong_AsLong", referenced from:
>       __wrap_fdt_property_stub in libfdt_wrap.o
>       __wrap_fdt_offset_ptr_w in libfdt_wrap.o
>       __wrap_fdt_next_tag in libfdt_wrap.o
>       __wrap_fdt_next_node in libfdt_wrap.o
>       __wrap_fdt_first_subnode in libfdt_wrap.o
>       __wrap_fdt_next_subnode in libfdt_wrap.o
>       __wrap_fdt_move in libfdt_wrap.o
>       ...
>   "_PyLong_AsUnsignedLong", referenced from:
>       __wrap_fdt_header_magic_set in libfdt_wrap.o
>       __wrap_fdt_header_totalsize_set in libfdt_wrap.o
>       __wrap_fdt_header_off_dt_struct_set in libfdt_wrap.o
>       __wrap_fdt_header_off_dt_strings_set in libfdt_wrap.o
>       __wrap_fdt_header_off_mem_rsvmap_set in libfdt_wrap.o
>       __wrap_fdt_header_version_set in libfdt_wrap.o
>       __wrap_fdt_header_last_comp_version_set in libfdt_wrap.o
>       ...
>   "_PyLong_AsUnsignedLongLong", referenced from:
>       __wrap_fdt64_st in libfdt_wrap.o
>       __wrap_fdt_setprop_inplace_u64 in libfdt_wrap.o
>       __wrap_fdt_add_reservemap_entry in libfdt_wrap.o
>       __wrap_fdt_property_u64 in libfdt_wrap.o
>       __wrap_fdt_add_mem_rsv in libfdt_wrap.o
>       __wrap_fdt_setprop_u64 in libfdt_wrap.o
>       __wrap_fdt_appendprop_u64 in libfdt_wrap.o
>       ...
>   "_PyLong_FromLong", referenced from:
>       _PyInit__libfdt in libfdt_wrap.o
>       __wrap_fdt_property_string in libfdt_wrap.o
>       __wrap_fdt_property_cell in libfdt_wrap.o
>       __wrap_fdt_property_stub in libfdt_wrap.o
>       __wrap_fdt_next_node in libfdt_wrap.o
>       __wrap_fdt_first_subnode in libfdt_wrap.o
>       __wrap_fdt_next_subnode in libfdt_wrap.o
>       ...
>   "_PyLong_FromSize_t", referenced from:
>       __wrap_fdt_header_magic_get in libfdt_wrap.o
>       __wrap_fdt_header_totalsize_get in libfdt_wrap.o
>       __wrap_fdt_header_off_dt_struct_get in libfdt_wrap.o
>       __wrap_fdt_header_off_dt_strings_get in libfdt_wrap.o
>       __wrap_fdt_header_off_mem_rsvmap_get in libfdt_wrap.o
>       __wrap_fdt_header_version_get in libfdt_wrap.o
>       __wrap_fdt_header_last_comp_version_get in libfdt_wrap.o
>       ...
>   "_PyLong_FromUnsignedLong", referenced from:
>       __wrap_fdt_header_size in libfdt_wrap.o
>       __wrap_fdt_header_size_ in libfdt_wrap.o
>   "_PyLong_FromUnsignedLongLong", referenced from:
>       __wrap_fdt_get_mem_rsv in libfdt_wrap.o
>   "_PyLong_FromVoidPtr", referenced from:
>       _SwigPyObject_long in libfdt_wrap.o
>   "_PyModule_AddObject", referenced from:
>       _PyInit__libfdt in libfdt_wrap.o
>   "_PyModule_Create2", referenced from:
>       _PyInit__libfdt in libfdt_wrap.o
>   "_PyModule_GetDict", referenced from:
>       _PyInit__libfdt in libfdt_wrap.o
>   "_PyObject_Call", referenced from:
>       _SWIG_Python_NewPointerObj in libfdt_wrap.o
>   "_PyObject_CallFunctionObjArgs", referenced from:
>       _SWIG_Python_ConvertPtrAndOwn in libfdt_wrap.o
>       _SwigPyObject_dealloc in libfdt_wrap.o
>   "_PyObject_Free", referenced from:
>       _PyInit__libfdt in libfdt_wrap.o
>       _SwigPyPacked_dealloc in libfdt_wrap.o
>       _SwigPyObject_dealloc in libfdt_wrap.o
>   "_PyObject_GenericGetAttr", referenced from:
>       l___const.SwigPyPacked_TypeOnce.tmp in libfdt_wrap.o
>       l___const.SwigPyObject_TypeOnce.tmp in libfdt_wrap.o
>   "_PyObject_GetAttr", referenced from:
>       _SWIG_Python_GetSwigThis in libfdt_wrap.o
>   "_PyObject_GetAttrString", referenced from:
>       _SwigPyClientData_New in libfdt_wrap.o
>   "_PyObject_IsInstance", referenced from:
>       _SwigPyClientData_New in libfdt_wrap.o
>   "_PyObject_IsTrue", referenced from:
>       _SwigPyObject_own in libfdt_wrap.o
>   "_PyObject_SetAttr", referenced from:
>       _SWIG_Python_NewPointerObj in libfdt_wrap.o
>       _SWIG_Python_InitShadowInstance in libfdt_wrap.o
>   "_PyTuple_New", referenced from:
>       _SWIG_Python_NewPointerObj in libfdt_wrap.o
>       _SwigPyClientData_New in libfdt_wrap.o
>   "_PyType_IsSubtype", referenced from:
>       __wrap_fdt_magic in libfdt_wrap.o
>       __wrap_fdt_totalsize in libfdt_wrap.o
>       __wrap_fdt_off_dt_struct in libfdt_wrap.o
>       __wrap_fdt_off_dt_strings in libfdt_wrap.o
>       __wrap_fdt_off_mem_rsvmap in libfdt_wrap.o
>       __wrap_fdt_version in libfdt_wrap.o
>       __wrap_fdt_last_comp_version in libfdt_wrap.o
>       ...
>   "_PyType_Modified", referenced from:
>       _SWIG_Python_NewPointerObj in libfdt_wrap.o
>   "_PyType_Ready", referenced from:
>       _PyInit__libfdt in libfdt_wrap.o
>       _SWIG_Python_GetSwigThis in libfdt_wrap.o
>       _SWIG_Python_NewPointerObj in libfdt_wrap.o
>       _SWIG_Python_InitShadowInstance in libfdt_wrap.o
>       _SwigPyObject_append in libfdt_wrap.o
>       _SwigPyPacked_dealloc in libfdt_wrap.o
>       _SwigPyObject_dealloc in libfdt_wrap.o
>       ...
>   "_PyType_Type", referenced from:
>       _SwigPyClientData_New in libfdt_wrap.o
>   "_PyUnicode_AsUTF8String", referenced from:
>       _SWIG_AsCharPtrAndSize in libfdt_wrap.o
>   "_PyUnicode_Concat", referenced from:
>       _SwigPyObject_repr in libfdt_wrap.o
>       _swig_varlink_str in libfdt_wrap.o
>   "_PyUnicode_DecodeUTF8", referenced from:
>       __wrap_fdt_node_header_name_get in libfdt_wrap.o
>       __wrap_fdt_property_data_get in libfdt_wrap.o
>       __wrap_fdt_get_string in libfdt_wrap.o
>       __wrap_fdt_string in libfdt_wrap.o
>       __wrap_fdt_get_name in libfdt_wrap.o
>       __wrap_fdt_get_alias in libfdt_wrap.o
>       __wrap_fdt_stringlist_get in libfdt_wrap.o
>       ...
>   "_PyUnicode_FromFormat", referenced from:
>       _SwigPyPacked_repr in libfdt_wrap.o
>       _SwigPyPacked_str in libfdt_wrap.o
>       _SwigPyObject_repr in libfdt_wrap.o
>   "_PyUnicode_FromString", referenced from:
>       _PyInit__libfdt in libfdt_wrap.o
>       __wrap_fdt_get_property_by_offset in libfdt_wrap.o
>       __wrap_fdt_get_property in libfdt_wrap.o
>       __wrap_fdt_get_property_w in libfdt_wrap.o
>       _SWIG_Python_GetSwigThis in libfdt_wrap.o
>       _SWIG_Python_NewPointerObj in libfdt_wrap.o
>       _SWIG_Python_InitShadowInstance in libfdt_wrap.o
>       ...
>   "_PyUnicode_InternFromString", referenced from:
>       _swig_varlink_repr in libfdt_wrap.o
>       _swig_varlink_str in libfdt_wrap.o
>   "_Py_DecRef", referenced from:
>       _SwigPyObject_repr in libfdt_wrap.o
>       _swig_varlink_str in libfdt_wrap.o
>   "__PyObject_New", referenced from:
>       _PyInit__libfdt in libfdt_wrap.o
>       _SWIG_Python_NewPointerObj in libfdt_wrap.o
>       _SwigPyObject_dealloc in libfdt_wrap.o
>       _SWIG_Python_DestroyModule in libfdt_wrap.o
>   "__Py_BuildValue_SizeT", referenced from:
>       __wrap_fdt_next_node in libfdt_wrap.o
>       __wrap_fdt_getprop in libfdt_wrap.o
>   "__Py_Dealloc", referenced from:
>       _PyInit__libfdt in libfdt_wrap.o
>       __wrap_fdt_next_node in libfdt_wrap.o
>       __wrap_fdt_get_string in libfdt_wrap.o
>       __wrap_fdt_get_mem_rsv in libfdt_wrap.o
>       __wrap_fdt_get_name in libfdt_wrap.o
>       __wrap_fdt_get_property_by_offset in libfdt_wrap.o
>       __wrap_fdt_get_property in libfdt_wrap.o
>       ...
>   "__Py_NoneStruct", referenced from:
>       _PyInit__libfdt in libfdt_wrap.o
>       __wrap_fdt_header_magic_set in libfdt_wrap.o
>       __wrap_fdt_header_totalsize_set in libfdt_wrap.o
>       __wrap_fdt_header_off_dt_struct_set in libfdt_wrap.o
>       __wrap_fdt_header_off_dt_strings_set in libfdt_wrap.o
>       __wrap_fdt_header_off_mem_rsvmap_set in libfdt_wrap.o
>       __wrap_fdt_header_version_set in libfdt_wrap.o
>       ...
>   "__Py_NotImplementedStruct", referenced from:
>       _SwigPyObject_richcompare in libfdt_wrap.o
> ld: symbol(s) not found for architecture x86_64
> clang: error: linker command failed with exit code 1 (use -v to see invocation)
> error: command '/usr/bin/gcc' failed with exit code 1
> make[2]: *** [scripts/dtc/pylibfdt/Makefile:30: rebuild] Error 1
> make[1]: *** [scripts/Makefile.build:398: scripts/dtc/pylibfdt] Error 2
> make: *** [Makefile:2077: scripts_dtc] Error 2
>

Is it possible that you don't have libpython, or whatever it is called
on Mac OS? It seems to be missing everything.

Regards,
Simon


More information about the U-Boot mailing list