![Нет поддержки C++ pthread в ферме сборки?](https://rvso.com/image/1466411/%D0%9D%D0%B5%D1%82%20%D0%BF%D0%BE%D0%B4%D0%B4%D0%B5%D1%80%D0%B6%D0%BA%D0%B8%20C%2B%2B%20pthread%20%D0%B2%20%D1%84%D0%B5%D1%80%D0%BC%D0%B5%20%D1%81%D0%B1%D0%BE%D1%80%D0%BA%D0%B8%3F.png)
Я пытаюсь получить некоторый код, компилируемый в ферме сборки. Когда я собираю его на своей машине разработки, все идет нормально:
checking if C compiler and POSIX threads work as is... no
checking if C++ compiler and POSIX threads work as is... no
checking if C compiler and POSIX threads work with -Kthread... no
checking if C compiler and POSIX threads work with -kthread... no
checking if C compiler and POSIX threads work with -pthread... yes
checking if C++ compiler and POSIX threads work with -Kthread... no
checking if C++ compiler and POSIX threads work with -kthread... no
checking if C++ compiler and POSIX threads work with -pthread... yes
checking for pthread_mutexattr_setpshared... yes
checking for pthread_condattr_setpshared... yes
checking for PTHREAD_MUTEX_ERRORCHECK_NP... yes
checking for PTHREAD_MUTEX_ERRORCHECK... yes
checking for working POSIX threads package... yes
Но когда я передаю его на сборочную ферму, он не может найти рабочую опцию компилятора для включения поддержки pthread:
[ 87s] checking if C compiler and POSIX threads work as is... no
[ 87s] checking if C++ compiler and POSIX threads work as is... no
[ 87s] checking if C compiler and POSIX threads work with -Kthread... no
[ 87s] checking if C compiler and POSIX threads work with -kthread... no
[ 87s] checking if C compiler and POSIX threads work with -pthread... yes
[ 87s] checking if C++ compiler and POSIX threads work with -Kthread... no
[ 87s] checking if C++ compiler and POSIX threads work with -kthread... no
[ 87s] checking if C++ compiler and POSIX threads work with -pthread... no
[ 87s] checking if C++ compiler and POSIX threads work with -pthreads... no
[ 87s] checking if C++ compiler and POSIX threads work with -mt... no
[ 87s] checking if C++ compiler and POSIX threads work with -mthreads... no
[ 87s] checking if C++ compiler and POSIX threads work with -lpthreads... no
[ 87s] checking if C++ compiler and POSIX threads work with -llthread... no
[ 87s] checking if C++ compiler and POSIX threads work with -lpthread... no
[ 87s] checking for pthread_mutexattr_setpshared... yes
[ 87s] checking for pthread_condattr_setpshared... yes
[ 87s] checking for PTHREAD_MUTEX_ERRORCHECK_NP... yes
[ 87s] checking for PTHREAD_MUTEX_ERRORCHECK... yes
[ 87s] checking for working POSIX threads package... no
[ 87s] configure: WARNING: "*** POSIX threads are not"
[ 87s] configure: WARNING: "*** available on your system "
[ 87s] configure: error: "*** Can not continue"
В dev-боксе и buildfarm используется одна и та же базовая ОС. Единственное отличие заключается в том, что среда buildfarm очень минимальна: устанавливаются только пакеты, требуемые файлом спецификации, поверх небольшого набора пакетов базовой ОС.
Я не могу вспомнить ни одного «отсутствующего пакета», который мог бы вызвать такое поведение. glibc-* установлен на обоих.
решение1
Фактический кредит/источник:https://forums.opensuse.org/showthread.php/509781-No-C-Pthread-support-inside-OBSот wolfi323
Я столкнулся с похожей проблемой при попытке настроить [Open MPI 3] с помощью:
./configure CC=gcc CXX=gcc FC=gfortran
Ответ wolfi323 на forums.opensuse подразумевает, чтоКомпилятор C++ не был должным образом определен. Я оставил параметры компилятора c/c++ пустыми:
./configure FC=gfortran
Конфигурация сообщила:
checking if C++ compiler and POSIX threads work with -Kthread... no
checking if C++ compiler and POSIX threads work with -kthread... no
checking if C++ compiler and POSIX threads work with -pthread... yes
и завершено.
Дополнительный
Параметр
CC=gcc CXX=g++
дало те же/похожие результаты, что и разрешение ./configure найти компиляторы по умолчанию.