Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
None
-
Linux archlinux.vagrant.vm 4.6.4-1-ARCH #1 SMP PREEMPT Mon Jul 11 19:12:32 CEST 2016 x86_64 GNU/Linux
-
Mesosphere Sprint 42
-
3
Description
readdir_r is deprecated in recent versions of glibc (https://sourceware.org/ml/libc-alpha/2016-02/msg00093.html). As a result, Mesos doesn't build on recent Arch Linux:
/bin/sh ../libtool --tag=CXX --mode=compile ccache g++ -DPACKAGE_NAME=\"mesos\" -DPACKAGE_TARNAME=\"mesos\" -DPACKAGE_VERSION=\"1.1.0\" -DPACKAGE_STRING=\"mesos\ 1.1.0\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DPACKAGE=\"mesos\" -DVERSION=\"1.1.0\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DHAVE_CXX11=1 -DHAVE_PTHREAD_PRIO_INHERIT=1 -DHAVE_PTHREAD=1 -DHAVE_LIBZ=1 -DHAVE_FTS_H=1 -DHAVE_APR_POOLS_H=1 -DHAVE_LIBAPR_1=1 -DHAVE_LIBCURL=1 -DMESOS_HAS_JAVA=1 -DHAVE_LIBSASL2=1 -DHAVE_SVN_VERSION_H=1 -DHAVE_LIBSVN_SUBR_1=1 -DHAVE_SVN_DELTA_H=1 -DHAVE_LIBSVN_DELTA_1=1 -DHAVE_LIBZ=1 -I. -I../../mesos/src -Wall -Werror -Wsign-compare -DLIBDIR=\"/usr/local/lib\" -DPKGLIBEXECDIR=\"/usr/local/libexec/mesos\" -DPKGDATADIR=\"/usr/local/share/mesos\" -DPKGMODULEDIR=\"/usr/local/lib/mesos/modules\" -I../../mesos/include -I../include -I../include/mesos -DPICOJSON_USE_INT64 -D__STDC_FORMAT_MACROS -isystem ../3rdparty/boost-1.53.0 -I../3rdparty/elfio-3.1 -I../3rdparty/glog-0.3.3/src -I../3rdparty/leveldb-1.4/include -I../../mesos/3rdparty/libprocess/include -I../3rdparty/nvml-352.79 -I../3rdparty/picojson-1.3.0 -I../3rdparty/protobuf-2.6.1/src -I../../mesos/3rdparty/stout/include -I../3rdparty/zookeeper-3.4.8/src/c/include -I../3rdparty/zookeeper-3.4.8/src/c/generated -DHAS_AUTHENTICATION=1 -I/usr/include/subversion-1 -I/usr/include/apr-1 -I/usr/include/apr-1.0 -pthread -g1 -O0 -Wno-unused-local-typedefs -std=c++11 -MT appc/libmesos_no_3rdparty_la-spec.lo -MD -MP -MF appc/.deps/libmesos_no_3rdparty_la-spec.Tpo -c -o appc/libmesos_no_3rdparty_la-spec.lo `test -f 'appc/spec.cpp' || echo '../../mesos/src/'`appc/spec.cpp libtool: compile: ccache g++ -DPACKAGE_NAME=\"mesos\" -DPACKAGE_TARNAME=\"mesos\" -DPACKAGE_VERSION=\"1.1.0\" "-DPACKAGE_STRING=\"mesos 1.1.0\"" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DPACKAGE=\"mesos\" -DVERSION=\"1.1.0\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DHAVE_CXX11=1 -DHAVE_PTHREAD_PRIO_INHERIT=1 -DHAVE_PTHREAD=1 -DHAVE_LIBZ=1 -DHAVE_FTS_H=1 -DHAVE_APR_POOLS_H=1 -DHAVE_LIBAPR_1=1 -DHAVE_LIBCURL=1 -DMESOS_HAS_JAVA=1 -DHAVE_LIBSASL2=1 -DHAVE_SVN_VERSION_H=1 -DHAVE_LIBSVN_SUBR_1=1 -DHAVE_SVN_DELTA_H=1 -DHAVE_LIBSVN_DELTA_1=1 -DHAVE_LIBZ=1 -I. -I../../mesos/src -Wall -Werror -Wsign-compare -DLIBDIR=\"/usr/local/lib\" -DPKGLIBEXECDIR=\"/usr/local/libexec/mesos\" -DPKGDATADIR=\"/usr/local/share/mesos\" -DPKGMODULEDIR=\"/usr/local/lib/mesos/modules\" -I../../mesos/include -I../include -I../include/mesos -DPICOJSON_USE_INT64 -D__STDC_FORMAT_MACROS -isystem ../3rdparty/boost-1.53.0 -I../3rdparty/elfio-3.1 -I../3rdparty/glog-0.3.3/src -I../3rdparty/leveldb-1.4/include -I../../mesos/3rdparty/libprocess/include -I../3rdparty/nvml-352.79 -I../3rdparty/picojson-1.3.0 -I../3rdparty/protobuf-2.6.1/src -I../../mesos/3rdparty/stout/include -I../3rdparty/zookeeper-3.4.8/src/c/include -I../3rdparty/zookeeper-3.4.8/src/c/generated -DHAS_AUTHENTICATION=1 -I/usr/include/subversion-1 -I/usr/include/apr-1 -I/usr/include/apr-1.0 -pthread -g1 -O0 -Wno-unused-local-typedefs -std=c++11 -MT appc/libmesos_no_3rdparty_la-spec.lo -MD -MP -MF appc/.deps/libmesos_no_3rdparty_la-spec.Tpo -c ../../mesos/src/appc/spec.cpp -fPIC -DPIC -o appc/.libs/libmesos_no_3rdparty_la-spec.o In file included from ../../mesos/3rdparty/stout/include/stout/os.hpp:52:0, from ../../mesos/src/appc/spec.cpp:17: ../../mesos/3rdparty/stout/include/stout/os/ls.hpp: In function ‘Try<std::__cxx11::list<std::__cxx11::basic_string<char> > > os::ls(const string&)’: ../../mesos/3rdparty/stout/include/stout/os/ls.hpp:56:19: error: ‘int readdir_r(DIR*, dirent*, dirent**)’ is deprecated [-Werror=deprecated-declarations] while ((error = readdir_r(dir, temp, &entry)) == 0 && entry != nullptr) { ^~~~~~~~~ In file included from ../../mesos/3rdparty/stout/include/stout/os/ls.hpp:19:0, from ../../mesos/3rdparty/stout/include/stout/os.hpp:52, from ../../mesos/src/appc/spec.cpp:17: /usr/include/dirent.h:183:12: note: declared here extern int readdir_r (DIR *__restrict __dirp, ^~~~~~~~~ In file included from ../../mesos/3rdparty/stout/include/stout/os.hpp:52:0, from ../../mesos/src/appc/spec.cpp:17: ../../mesos/3rdparty/stout/include/stout/os/ls.hpp:56:46: error: ‘int readdir_r(DIR*, dirent*, dirent**)’ is deprecated [-Werror=deprecated-declarations] while ((error = readdir_r(dir, temp, &entry)) == 0 && entry != nullptr) { ^ In file included from ../../mesos/3rdparty/stout/include/stout/os/ls.hpp:19:0, from ../../mesos/3rdparty/stout/include/stout/os.hpp:52, from ../../mesos/src/appc/spec.cpp:17: /usr/include/dirent.h:183:12: note: declared here extern int readdir_r (DIR *__restrict __dirp, ^~~~~~~~~ cc1plus: all warnings being treated as errors
Seems like readdir_r is deprecated; manpage suggests using readdir instead.