Clang и -std=libc++ в NetBSD?

Я пытаюсь скомпилировать программу с clang++ и libc++ на NetBSD. Версия Clang — 3.9.0, а версия NetBSD — 7.0.2. Компиляция завершается с ошибкой:

$ make
clang++  -D_NETBSD_SOURCE -m64 -pthread -stdlib=libc++ -fPIC -fvisibility=hidden \
  -std=c++11 -D_REENTRANT -O3 -Wall -Ibuild/include -c ./src/lib/asn1/alg_id.cpp \
  -o build/obj/lib/asn1_alg_id.o
In file included from ./src/lib/asn1/alg_id.cpp:8:
In file included from build/include/botan/alg_id.h:11:
In file included from build/include/botan/asn1_obj.h:11:
In file included from build/include/botan/secmem.h:11:
In file included from build/include/botan/mem_ops.h:11:
build/include/botan/types.h:14:10: fatal error: 'cstddef' file not found
#include <cstddef>
         ^
1 error generated.
*** Error code 1

<cstddef> присутствует, но похоже, что это GCC:

$ find /usr -name cstddef
/usr/include/g++/cstddef

Если я анализирую индекс pub/NetBSD/NetBSD-release-7/src/external/bsd/libc++ правильно, библиотека доступна. Когда я пытаюсь установить libc++ или libcxx:

bash-4.4$ sudo PKG_PATH="http://ftp.NetBSD.org/pub/pkgsrc/packages/NetBSD/`uname -m`/`uname -r`/All/" pkg_add libcxx
pkg_add: no pkg found for 'libcxx', sorry.
pkg_add: 1 package addition failed
bash-4.4$ sudo PKG_PATH="http://ftp.NetBSD.org/pub/pkgsrc/packages/NetBSD/`uname -m`/`uname -r`/All/" pkg_add libc++
pkg_add: no pkg found for 'libc++', sorry.
pkg_add: 1 package addition failed

Является ли Clang с libc++ поддерживаемой конфигурацией в NetBSD? Как мы используем Clang и libc++ в NetBSD?


person jww    schedule 12.01.2017    source источник


Ответы (1)


Libc++ поддерживается в NetBSD (хотя регулярно не тестируется). К сожалению, я не уверен, какой пакет это предоставляет (если есть).

Одной из альтернатив может быть сборка и установка libc++ из исходного кода. Clang сначала будет искать собственный префикс для заголовков libc++, а затем /usr/local/include/c++/v1, поэтому вам нужно будет установить libc++ в одном из этих двух мест (например, -DCMAKE_INSTALL_PREFIX=/usr/local).

person EricWF    schedule 14.01.2017