freebsd / crochet

Build FreeBSD images for RaspberryPi, BeagleBone, PandaBoard, and others.
BSD 2-Clause "Simplified" License
608 stars 187 forks source link

armv6 build fails with libc++ problems (tried RPI-B and Cubieboard1) #267

Open AndiDog opened 5 years ago

AndiDog commented 5 years ago

Tried these boards:

RaspberryPi (supported by crochet)

board_setup RaspberryPi
option ImageSize 3900mb # for 4 Gigabyte card
option Ntpd
KERNCONF=RPI-B
FREEBSD_SRC=${TOPDIR}/../freebsd-11.2
WORKDIR=/tmp/work
FREEBSD_EXTRA_ARGS="MK_CCACHE_BUILD=yes"

Cubieboard1 (copied from Cubieboard2 just to try if it's compatible)

board_setup Cubieboard1
option ImageSize 1950mb # for 2 Gigabyte card
option Ntpd
KERNCONF=GENERIC
# tried build from both 11.2 and head
FREEBSD_SRC=${TOPDIR}/../freebsd
WORKDIR=/tmp/workcubieboard
FREEBSD_EXTRA_ARGS="MK_CCACHE_BUILD=yes"

I'm getting problems building LLVM, whatever board configuration I use. They look like:

In file included from /mnt/freebsd/contrib/llvm/tools/lld/Common/Args.cpp:10:
In file included from /mnt/freebsd/contrib/llvm/tools/lld/include/lld/Common/Args.h:13:
In file included from /mnt/freebsd/contrib/llvm/tools/lld/include/lld/Common/LLVM.h:20:
In file included from /mnt/freebsd/contrib/llvm/include/llvm/ADT/Hashing.h:49:
In file included from /mnt/freebsd/contrib/llvm/include/llvm/Support/Host.h:17:
In file included from /mnt/freebsd/contrib/llvm/include/llvm/ADT/StringMap.h:17:
In file included from /mnt/freebsd/contrib/llvm/include/llvm/ADT/StringRef.h:13:
In file included from /mnt/freebsd/contrib/llvm/include/llvm/ADT/STLExtras.h:20:
In file included from /mnt/freebsd/contrib/llvm/include/llvm/ADT/Optional.h:22:
In file included from /mnt/freebsd/contrib/llvm/include/llvm/Support/type_traits.h:19:
In file included from /tmp/workcubieboard/obj/mnt/freebsd/arm.armv6/tmp/usr/include/c++/v1/utility:202:
In file included from /tmp/workcubieboard/obj/mnt/freebsd/arm.armv6/tmp/usr/include/c++/v1/cstring:61:
In file included from /tmp/workcubieboard/obj/mnt/freebsd/arm.armv6/tmp/usr/include/c++/v1/string.h:61:
In file included from /tmp/workcubieboard/obj/mnt/freebsd/arm.armv6/tmp/usr/include/string.h:47:
In file included from /mnt/freebsd/contrib/llvm/tools/lld/ELF/strings.h:14:
In file included from /mnt/freebsd/contrib/llvm/include/llvm/ADT/ArrayRef.h:15:
In file included from /mnt/freebsd/contrib/llvm/include/llvm/ADT/SmallVector.h:17:
In file included from /mnt/freebsd/contrib/llvm/include/llvm/ADT/iterator_range.h:22:
In file included from /tmp/workcubieboard/obj/mnt/freebsd/arm.armv6/tmp/usr/include/c++/v1/iterator:417:
/tmp/workcubieboard/obj/mnt/freebsd/arm.armv6/tmp/usr/include/c++/v1/__functional_base:81:16: error: no template named 'unary_function'; did you mean 'binary_function'?
        static unary_function<_Ap, _Rp>
               ^
/tmp/workcubieboard/obj/mnt/freebsd/arm.armv6/tmp/usr/include/c++/v1/__functional_base:28:29: note: 'binary_function' declared here
struct _LIBCPP_TEMPLATE_VIS binary_function
                            ^
/tmp/workcubieboard/obj/mnt/freebsd/arm.armv6/tmp/usr/include/c++/v1/__functional_base:81:16: error: too few template arguments for class template 'binary_function'
        static unary_function<_Ap, _Rp>
               ^
/tmp/workcubieboard/obj/mnt/freebsd/arm.armv6/tmp/usr/include/c++/v1/__functional_base:28:29: note: template is declared here
struct _LIBCPP_TEMPLATE_VIS binary_function
                            ^
In file included from /mnt/freebsd/contrib/llvm/tools/lld/Common/Args.cpp:10:
In file included from /mnt/freebsd/contrib/llvm/tools/lld/include/lld/Common/Args.h:13:
In file included from /mnt/freebsd/contrib/llvm/tools/lld/include/lld/Common/LLVM.h:20:
In file included from /mnt/freebsd/contrib/llvm/include/llvm/ADT/Hashing.h:49:
In file included from /mnt/freebsd/contrib/llvm/include/llvm/Support/Host.h:17:
In file included from /mnt/freebsd/contrib/llvm/include/llvm/ADT/StringMap.h:17:
In file included from /mnt/freebsd/contrib/llvm/include/llvm/ADT/StringRef.h:13:
In file included from /mnt/freebsd/contrib/llvm/include/llvm/ADT/STLExtras.h:20:
In file included from /mnt/freebsd/contrib/llvm/include/llvm/ADT/Optional.h:22:
In file included from /mnt/freebsd/contrib/llvm/include/llvm/Support/type_traits.h:19:
In file included from /tmp/workcubieboard/obj/mnt/freebsd/arm.armv6/tmp/usr/include/c++/v1/utility:202:
In file included from /tmp/workcubieboard/obj/mnt/freebsd/arm.armv6/tmp/usr/include/c++/v1/cstring:61:
In file included from /tmp/workcubieboard/obj/mnt/freebsd/arm.armv6/tmp/usr/include/c++/v1/string.h:61:
In file included from /tmp/workcubieboard/obj/mnt/freebsd/arm.armv6/tmp/usr/include/string.h:47:
In file included from /mnt/freebsd/contrib/llvm/tools/lld/ELF/strings.h:14:
In file included from /mnt/freebsd/contrib/llvm/include/llvm/ADT/ArrayRef.h:15:
In file included from /mnt/freebsd/contrib/llvm/include/llvm/ADT/SmallVector.h:20:
In file included from /mnt/freebsd/contrib/llvm/include/llvm/Support/MathExtras.h:19:
In file included from /tmp/workcubieboard/obj/mnt/freebsd/arm.armv6/tmp/usr/include/c++/v1/algorithm:643:
In file included from /tmp/workcubieboard/obj/mnt/freebsd/arm.armv6/tmp/usr/include/c++/v1/memory:662:
/tmp/workcubieboard/obj/mnt/freebsd/arm.armv6/tmp/usr/include/c++/v1/tuple:1361:22: error: C++ requires a type specifier for all declarations
pair<_T1, _T2>::pair(piecewise_construct_t,

and more errors like "make_keys: Exec format error" where I stopped researching.


Does this work for anyone? What options do I need? It seems like libc++ is missing (internal) includes or built-ins for these errors.