llvm37 build failure, libatomic?

Gary Aitken freebsd at dreamchaser.org
Fri Apr 8 15:14:09 UTC 2016


Hello Aleksander and Peter,

Thanks for your replies.

>>> Updated ports (it's been quite a while) and attempting to rebuild x11
>>> fails for llvm37 claiming the compiler needs libatomic and it's not
>>> there. What's the deal with libatomic?
> 
> You will need to install lang/clang-devel to successfully update llvm37.

When I try to install clang-devel I get the same error:

-- Performing Test HAVE_CXX_ATOMICS_WITHOUT_LIB
-- Performing Test HAVE_CXX_ATOMICS_WITHOUT_LIB - Failed
-- Looking for __atomic_fetch_add_4 in atomic
-- Looking for __atomic_fetch_add_4 in atomic - not found
CMake Error at cmake/modules/CheckAtomic.cmake:36 (message):
  Host compiler appears to require libatomic, but cannot find it.
Call Stack (most recent call first):
  cmake/config-ix.cmake:296 (include)
  CMakeLists.txt:412 (include)

> If you still have a problem with libatomic could you please provide
> more information - OS version, make.conf, port flags, more logs, etc?

The CMakeError.log file indicates a number of errors:

Run Build Command:"/usr/local/bin/ninja" "cmTC_32962"
[1/2] Building C object CMakeFiles/cmTC_32962.dir/CheckIncludeFile.c.o
FAILED: /usr/local/bin/gcc48 -O2 -pipe -isystem /usr/local/include -fstack-protector -Wl,-rpath=/usr/local/lib/gcc48 -fno-strict-
aliasing -o CMakeFiles/cmTC_32962.dir/CheckIncludeFile.c.o -c CheckIncludeFile.c
In file included from CheckIncludeFile.c:1:0:
/usr/include/malloc.h:3:2: error: #error "<malloc.h> has been replaced by <stdlib.h>"
#error "<malloc.h> has been replaced by <stdlib.h>"
^
ninja: build stopped: subcommand failed.

and others, ending with:

/usr/local/bin/ld: cannot find -lcxxrt
collect2: error: ld returned 1 exit status

I'm guessing this is a configuration error on my system, probably related
to 10.x changes; I'm running 9.2-RELEASE-p12

/etc/make.conf contains:
PERL_VERSION=5.20.3_9
DEFAULT_VERSIONS+=perl5=5.20.3_9
WITH_PKGNG=yes
WITH_BDB_VER=5
OPTIONS_SET=X11
OPTIONS_UNSET=NLS
WITH_OPENSSL_PORT=yes

When I first saw the error I installed devel/libatomic_ops, but that creates
/usr/local/lib/libatomic_ops.a and libatomic_ops_gpl.a.  Not libatomic.*  
There is also a libboost_atomic.* set from about 6 months ago.

However, given the other errors above from ninja I'm guessing this is more
than just a libatomic problem.

Thanks for any additional clues,

Gary


More information about the freebsd-questions mailing list