[ https://issues.apache.org/jira/browse/THRIFT-3871?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15365702#comment-15365702 ]
Xiaoshuang LU commented on THRIFT-3871: --------------------------------------- Root Causes: automake 1.15 is installed to CentOS 6 from scratch despite there is already a default one (automake 1.11.1). Unfortunately, pkg.m4 file is not included in the search path of new automake. As a result, configure cannot handle PKG_CHECK_MODULES correctly and refuse to continue. We can do the following steps to address this issue. {code} $ ACLOCAL_PATH=/usr/share/aclocal sh bootstrap.sh $ ./configure --prefix=/data/thrift-0.9.3 --with-boost=/data/boost-1.61.0 --with-libevent=/data/libevent-2.0.22-stable --with-openssl=/data/openssl-1.0.2h --with-zlib=/data/zlib-1.2.8 --enable-shared=no --enable-static=yes --with-cpp --without-qt4 --without-qt5 --without-c_glib --without-csharp --without-java --without-erlang --without-nodejs --without-lua --without-python --without-perl --without-php --without-php_extension --without-ruby --without-haskell --without-go --without-haxe --without-d --disable-tests --disable-tutorial CFLAGS="-m64 -fPIC -g0 -O3" CXXFLAGS="-m64 -fPIC -g0 -O3" ${code} > configure failed on CentOS 6 > ---------------------------- > > Key: THRIFT-3871 > URL: https://issues.apache.org/jira/browse/THRIFT-3871 > Project: Thrift > Issue Type: Bug > Components: Build Process > Affects Versions: 0.9.3 > Reporter: Xiaoshuang LU > > Reproduce Steps > {code} > # https://github.com/apache/thrift/archive/0.9.3.tar.gz > $ sh bootstrap.sh > $ ./configure --prefix=/data/thrift-0.9.3 --with-boost=/data/boost-1.61.0 > --with-libevent=/data/libevent-2.0.22-stable > --with-openssl=/data/openssl-1.0.2h --with-zlib=/data/zlib-1.2.8 > --enable-shared=no --enable-static=yes --with-cpp --without-qt4 --without-qt5 > --without-c_glib --without-csharp --without-java --without-erlang > --without-nodejs --without-lua --without-python --without-perl --without-php > --without-php_extension --without-ruby --without-haskell --without-go > --without-haxe --without-d --disable-tests --disable-tutorial CFLAGS="-m64 > -fPIC -g0 -O3" CXXFLAGS="-m64 -fPIC -g0 -O3" > {code} > Errors > {code} > checking for a BSD-compatible install... /usr/bin/install -c > checking whether build environment is sane... yes > checking for a thread-safe mkdir -p... /bin/mkdir -p > checking for gawk... gawk > checking whether make sets $(MAKE)... yes > checking whether make supports nested variables... yes > checking whether UID '0' is supported by ustar format... yes > checking whether GID '0' is supported by ustar format... yes > checking how to create a ustar tar archive... gnutar > ./configure: line 3894: PKG_PROG_PKG_CONFIG: command not found > checking for gcc... gcc > checking whether the C compiler works... yes > checking for C compiler default output file name... a.out > checking for suffix of executables... > checking whether we are cross compiling... no > checking for suffix of object files... o > checking whether we are using the GNU C compiler... yes > checking whether gcc accepts -g... yes > checking for gcc option to accept ISO C89... none needed > checking whether gcc understands -c and -o together... yes > checking for style of include used by make... GNU > checking dependency style of gcc... gcc3 > checking how to run the C preprocessor... gcc -E > checking for g++... g++ > checking whether we are using the GNU C++ compiler... yes > checking whether g++ accepts -g... yes > checking dependency style of g++... gcc3 > checking build system type... x86_64-unknown-linux-gnu > checking host system type... x86_64-unknown-linux-gnu > checking for a sed that does not truncate output... /bin/sed > checking for grep that handles long lines and -e... /bin/grep > checking for egrep... /bin/grep -E > checking for fgrep... /bin/grep -F > checking for ld used by gcc... /data/binutils-2.26/bin/ld > checking if the linker (/data/binutils-2.26bin/ld) is GNU ld... yes > checking for BSD- or MS-compatible name lister (nm)... > /data/binutils-2.26/bin/nm -B > checking the name lister (/data/binutils-2.26/bin/nm -B) interface... BSD nm > checking whether ln -s works... yes > checking the maximum length of command line arguments... 3458764513820540925 > checking whether the shell understands some XSI constructs... yes > checking whether the shell understands "+="... yes > checking for /data/binutils-2.26/bin/ld option to reload object files... -r > checking for objdump... objdump > checking how to recognize dependent libraries... pass_all > checking for ar... ar > checking for strip... strip > checking for ranlib... ranlib > checking command to parse /data/binutils-2.26/bin/nm -B output from gcc > object... ok > checking for ANSI C header files... yes > checking for sys/types.h... yes > checking for sys/stat.h... yes > checking for stdlib.h... yes > checking for string.h... yes > checking for memory.h... yes > checking for strings.h... yes > checking for inttypes.h... yes > checking for stdint.h... yes > checking for unistd.h... yes > checking for dlfcn.h... yes > checking whether we are using the GNU C++ compiler... (cached) yes > checking whether g++ accepts -g... (cached) yes > checking dependency style of g++... (cached) gcc3 > checking how to run the C++ preprocessor... g++ -E > checking for objdir... .libs > checking if gcc supports -fno-rtti -fno-exceptions... no > checking for gcc option to produce PIC... -fPIC -DPIC > checking if gcc PIC flag -fPIC -DPIC works... yes > checking if gcc static flag -static works... no > checking if gcc supports -c -o file.o... yes > checking if gcc supports -c -o file.o... (cached) yes > checking whether the gcc linker (/data/binutils-2.26/bin/ld -m elf_x86_64) > supports shared libraries... yes > checking dynamic linker characteristics... GNU/Linux ld.so > checking how to hardcode library paths into programs... immediate > checking whether stripping libraries is possible... yes > checking if libtool supports shared libraries... yes > checking whether to build shared libraries... no > checking whether to build static libraries... yes > checking for ld used by g++... /data/binutils-2.26/bin/ld -m elf_x86_64 > checking if the linker (/data/binutils-2.26/bin/ld -m elf_x86_64) is GNU > ld... yes > checking whether the g++ linker (/data/binutils-2.26/bin/ld -m elf_x86_64) > supports shared libraries... yes > checking for g++ option to produce PIC... -fPIC -DPIC > checking if g++ PIC flag -fPIC -DPIC works... yes > checking if g++ static flag -static works... no > checking if g++ supports -c -o file.o... yes > checking if g++ supports -c -o file.o... (cached) yes > checking whether the g++ linker (/data/binutils-2.26/bin/ld -m elf_x86_64) > supports shared libraries... yes > checking dynamic linker characteristics... GNU/Linux ld.so > checking how to hardcode library paths into programs... immediate > checking whether make sets $(MAKE)... (cached) yes > checking for bison... yes > checking for bison version >= 2.5... yes > checking for bison... bison -y > checking for flex... flex > checking lex output file root... lex.yy > checking lex library... none needed > checking whether yytext is a pointer... no > checking whether ln -s works... yes > checking for gawk... (cached) gawk > checking for ranlib... (cached) ranlib > checking whether g++ supports C++11 features by default... yes > ./configure: line 17096: syntax error near unexpected token `QT,' > ./configure: line 17096: ` PKG_CHECK_MODULES(QT, QtCore >= 4.3, QtNetwork > >= 4.3, have_qt=yes, have_qt=no)' > {code} > Workarounds > {code} > diff --git a/configure.ac b/configure.ac > index 18e3233..bd03b30 100755 > --- a/configure.ac > +++ b/configure.ac > @@ -155,7 +155,8 @@ if test "$with_cpp" = "yes"; then > AX_THRIFT_LIB(qt4, [Qt], yes) > have_qt=no > if test "$with_qt4" = "yes"; then > - PKG_CHECK_MODULES([QT], [QtCore >= 4.3, QtNetwork >= 4.3], have_qt=yes, > have_qt=no) > + cd . > +# PKG_CHECK_MODULES([QT], [QtCore >= 4.3, QtNetwork >= 4.3], have_qt=yes, > have_qt=no) > fi > if test "$have_qt" = "yes"; then > AC_PATH_PROGS([QT_MOC], [moc-qt4 moc], "fail") > @@ -168,9 +169,10 @@ if test "$with_cpp" = "yes"; then > have_qt5=no > qt_reduce_reloc="" > if test "$with_qt5" = "yes"; then > - PKG_CHECK_MODULES([QT5], [Qt5Core >= 5.0, Qt5Network >= 5.0], > - [have_qt5=yes;qt_reduce_reloc=`$PKG_CONFIG > --variable=qt_config Qt5Core | grep "reduce_relocations"`], > - [have_qt5=no]) > + cd . > +# PKG_CHECK_MODULES([QT5], [Qt5Core >= 5.0, Qt5Network >= 5.0], > +# [have_qt5=yes;qt_reduce_reloc=`$PKG_CONFIG > --variable=qt_config Qt5Core | grep "reduce_relocations"`], > +# [have_qt5=no]) > fi > if test "$have_qt5" = "yes"; then > AC_PATH_PROGS([QT5_MOC], [moc-qt5 moc], "fail") > @@ -188,8 +190,8 @@ AM_CONDITIONAL([QT5_REDUCE_RELOCATIONS], [test > "x$qt_reduce_reloc" != "x"]) > > AX_THRIFT_LIB(c_glib, [C (GLib)], yes) > if test "$with_c_glib" = "yes"; then > - PKG_CHECK_MODULES([GLIB], [glib-2.0 >= 2.0], have_glib2=yes, have_glib2=no) > - PKG_CHECK_MODULES([GOBJECT], [gobject-2.0 >= 2.0], have_gobject2=yes, > have_gobject2=no) > +# PKG_CHECK_MODULES([GLIB], [glib-2.0 >= 2.0], have_glib2=yes, > have_glib2=no) > +# PKG_CHECK_MODULES([GOBJECT], [gobject-2.0 >= 2.0], have_gobject2=yes, > have_gobject2=no) > if test "$have_glib2" = "yes" -a "$have_gobject2" = "yes" ; then > have_c_glib="yes" > fi > @@ -198,15 +200,15 @@ AM_CONDITIONAL(WITH_C_GLIB, [test "$have_glib2" = "yes" > -a "$have_gobject2" = "y > > AX_THRIFT_LIB(csharp, [C#], yes) > if test "$with_csharp" = "yes"; then > - PKG_CHECK_MODULES(MONO, mono >= 2.11.0, mono_2_11=yes, mono_2_11=no) > +# PKG_CHECK_MODULES(MONO, mono >= 2.11.0, mono_2_11=yes, mono_2_11=no) > if test "$mono_2_11" == "yes"; then > AC_PATH_PROG([MCS], [mcs]) > if test "x$MCS" != "x"; then > mono_mcs="yes" > fi > fi > - PKG_CHECK_MODULES(MONO, mono >= 2.0.0, net_3_5=yes, net_3_5=no) > - PKG_CHECK_MODULES(MONO, mono >= 1.2.4, have_mono=yes, have_mono=no) > +# PKG_CHECK_MODULES(MONO, mono >= 2.0.0, net_3_5=yes, net_3_5=no) > +# PKG_CHECK_MODULES(MONO, mono >= 1.2.4, have_mono=yes, have_mono=no) > if test "$have_mono" = "yes" ; then > have_csharp="yes" > fi > {code} > By the way, http://www-us.apache.org/dist/thrift/0.9.3/thrift-0.9.3.tar.gz is > not the same as https://github.com/apache/thrift/archive/0.9.3.tar.gz. The > former includes configure file while the latter requires users to run > bootstrap.sh first. -- This message was sent by Atlassian JIRA (v6.3.4#6332)