missing binary operator before token "(" in Buildroot compilation

Viewed 465

I'm trying to compile buildroot 2020.02 with xenomai 3.1 kernel and a linux kernel 3.18 but when i do : make O=output , I got this error

**error**: missing binary operator before token "("
#elif __has_builtin(__c11_atomic_load) && \

The error came from host-nodejs 12.16.1 Configuring. I think there is a problem with the recognition of the macro __has_builtin .

The problem is located in the header file putilimp.h

Does anybody have an idea of how to fix it ?

I have gcc compiler version 8.X in my configuration

Here is the code of the paragraph that cause errors

#elif __has_builtin(__c11_atomic_load) && \
    __has_builtin(__c11_atomic_store) && \
    __has_builtin(__c11_atomic_fetch_add) && \
    __has_builtin(__c11_atomic_fetch_sub)
#    define U_HAVE_CLANG_ATOMICS 1
#else
#    define U_HAVE_CLANG_ATOMICS 0
#endif

1 Answers

I had the same error, experienced it with Buildroot 2020.02 and host-nodejs 12.16.1.

What I did was, I removed the package icu from Buildroot 2020.02 and copied the package icu from Buildroot 2019.02.8, into the package dir of Buildroot 2020.02. Then edit the package/icu/icu.mk file, and change the version to 64-2. After that, make a rebuild of Buildroot.

Related