Search code examples
linuxgsoap

failed to install gsoap on linux


Im not sure what's wrong with my environemnt, but can install gsoap on my another workstaion, but failed one... and for the configure and make log

./configure

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 build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking whether make sets $(MAKE)... (cached) yes
checking for g++... g++
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 g++ accepts -g... yes
checking for style of include used by make... GNU
checking dependency style of g++... gcc3
checking for gcc... gcc
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 dependency style of gcc... gcc3
checking for flex... flex
checking lex output file root... lex.yy
checking lex library... -lfl
checking whether yytext is a pointer... yes
checking for bison... bison -y
checking how to run the C preprocessor... gcc -E
checking for ranlib... ranlib
checking whether ln -s works... yes
checking for gawk... (cached) gawk
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
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 arpa/inet.h usability... yes
checking arpa/inet.h presence... yes
checking for arpa/inet.h... yes
checking locale.h usability... yes
checking locale.h presence... yes
checking for locale.h... yes
checking xlocale.h usability... yes
checking xlocale.h presence... yes
checking for xlocale.h... yes
checking errno.h usability... yes
checking errno.h presence... yes
checking for errno.h... yes
checking fcntl.h usability... yes
checking fcntl.h presence... yes
checking for fcntl.h... yes
checking ctype.h usability... yes
checking ctype.h presence... yes
checking for ctype.h... yes
checking limits.h usability... yes
checking limits.h presence... yes
checking for limits.h... yes
checking float.h usability... yes
checking float.h presence... yes
checking for float.h... yes
checking math.h usability... yes
checking math.h presence... yes
checking for math.h... yes
checking netdb.h usability... yes
checking netdb.h presence... yes
checking for netdb.h... yes
checking netinet/in.h usability... yes
checking netinet/in.h presence... yes
checking for netinet/in.h... yes
checking for stdlib.h... (cached) yes
checking for string.h... (cached) yes
checking for strings.h... (cached) yes
checking for stdint.h... (cached) yes
checking for inttypes.h... (cached) yes
checking time.h usability... yes
checking time.h presence... yes
checking for time.h... yes
checking sys/inttypes.h usability... no
checking sys/inttypes.h presence... no
checking for sys/inttypes.h... no
checking sys/socket.h usability... yes
checking sys/socket.h presence... yes
checking for sys/socket.h... yes
checking for sys/types.h... (cached) yes
checking sys/time.h usability... yes
checking sys/time.h presence... yes
checking for sys/time.h... yes
checking sys/timeb.h usability... yes
checking sys/timeb.h presence... yes
checking for sys/timeb.h... yes
checking for unistd.h... (cached) yes
checking poll.h usability... yes
checking poll.h presence... yes
checking for poll.h... yes
checking openssl/ssl.h usability... yes
checking openssl/ssl.h presence... yes
checking for openssl/ssl.h... yes
checking gnutls/gnutls.h usability... yes
checking gnutls/gnutls.h presence... yes
checking for gnutls/gnutls.h... yes
checking zlib.h usability... yes
checking zlib.h presence... yes
checking for zlib.h... yes
checking for an ANSI C-conforming const... yes
checking for size_t... yes
checking whether time.h and sys/time.h may both be included... yes
checking whether struct tm is in sys/time.h or time.h... time.h
checking for struct tm.tm_gmtoff... yes
checking for struct tm.__tm_gmtoff... no
checking for sys/time.h... (cached) yes
checking for unistd.h... (cached) yes
checking for alarm... yes
checking for working mktime... yes
checking return type of signal handlers... void
checking for strftime... yes
checking for random... yes
checking for gettimeofday... yes
checking for ftime... yes
checking for localtime_r... yes
checking for timegm... yes
checking for gmtime... yes
checking for gmtime_r... yes
checking for asctime... yes
checking for asctime_r... yes
checking for memset... yes
checking for select... yes
checking for socket... yes
checking for snprintf... yes
checking for strchr... yes
checking for strerror... yes
checking for strerror_r... yes
checking for strlcpy... no
checking for strrchr... yes
checking for strstr... yes
checking for strtol... yes
checking for strtoul... yes
checking for strtoll... yes
checking for strtoull... yes
checking for strtold... yes
checking for strtod... yes
checking for strtof... yes
checking for strtold_l... yes
checking for strtod_l... yes
checking for strtof_l... yes
checking for sscanf... yes
checking for sscanf_l... no
checking for snprintf... (cached) yes
checking for sprintf_l... no
checking for wctomb... yes
checking for mbtowc... yes
checking for poll... yes
checking for newlocale... yes
checking for uselocale... yes
checking for freelocale... yes
checking for isnan... yes
checking for isinf... yes
checking for gethostbyname_r... yes
checking for stdlib.h... (cached) yes
checking for GNU libc compatible malloc... yes
checking for disable namespaces in library... no
checking for disable c locale usage in library... no
checking for enable ipv6 in library... no
checking for disable openssl in library... no
checking for enable gnutls in library... no
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating gsoap.pc
config.status: creating gsoap++.pc
config.status: creating gsoapck.pc
config.status: creating gsoapck++.pc
config.status: creating gsoapssl.pc
config.status: creating gsoapssl++.pc
config.status: creating gsoap/Makefile
config.status: creating gsoap/src/Makefile
config.status: creating gsoap/wsdl/Makefile
config.status: creating gsoap/samples/Makefile
config.status: creating gsoap/samples/autotest/Makefile
config.status: creating gsoap/samples/aws/Makefile
config.status: creating gsoap/samples/calc/Makefile
config.status: creating gsoap/samples/calc++/Makefile
config.status: creating gsoap/samples/chaining/Makefile
config.status: creating gsoap/samples/chaining++/Makefile
config.status: creating gsoap/samples/databinding/Makefile
config.status: creating gsoap/samples/dime/Makefile
config.status: creating gsoap/samples/dom/Makefile
config.status: creating gsoap/samples/oneway/Makefile
config.status: creating gsoap/samples/oneway++/Makefile
config.status: creating gsoap/samples/factory/Makefile
config.status: creating gsoap/samples/factorytest/Makefile
config.status: creating gsoap/samples/gmt/Makefile
config.status: creating gsoap/samples/googleapi/Makefile
config.status: creating gsoap/samples/hello/Makefile
config.status: creating gsoap/samples/httpcookies/Makefile
config.status: creating gsoap/samples/lu/Makefile
config.status: creating gsoap/samples/magic/Makefile
config.status: creating gsoap/samples/mashup/Makefile
config.status: creating gsoap/samples/mashup++/Makefile
config.status: creating gsoap/samples/mtom/Makefile
config.status: creating gsoap/samples/mtom-stream/Makefile
config.status: creating gsoap/samples/polytest/Makefile
config.status: creating gsoap/samples/primes/Makefile
config.status: creating gsoap/samples/roll/Makefile
config.status: creating gsoap/samples/router/Makefile
config.status: creating gsoap/samples/rss/Makefile
config.status: creating gsoap/samples/ssl/Makefile
config.status: creating gsoap/samples/template/Makefile
config.status: creating gsoap/samples/udp/Makefile
config.status: creating gsoap/samples/varparam/Makefile
config.status: creating gsoap/samples/wsa/Makefile
config.status: creating gsoap/samples/wsrm/Makefile
config.status: creating gsoap/samples/wsse/Makefile
config.status: creating gsoap/samples/wst/Makefile
config.status: creating gsoap/samples/xml-rpc-json/Makefile
config.status: creating gsoap/samples/rest/Makefile
config.status: creating config.h
config.status: config.h is unchanged
config.status: executing depfiles commands

make

make: Warning: File `Makefile' has modification time 1.8e+02 s in the future
make  all-recursive
make[1]: Entering directory `/home/ghfan/gsoap-2.8'
make[1]: Warning: File `Makefile' has modification time 1.8e+02 s in the future
Making all in gsoap
make[2]: Entering directory `/home/ghfan/gsoap-2.8/gsoap'
make[2]: Warning: File `Makefile' has modification time 1.8e+02 s in the future
ln -s -f ./stdsoap2.cpp stdsoap2_cpp.cpp
ln -s -f ./dom.cpp dom_cpp.cpp
ln -s -f ./stdsoap2.cpp stdsoap2_ck.c
ln -s -f ./stdsoap2.cpp stdsoap2_ck_cpp.cpp
ln -s -f ./stdsoap2.cpp stdsoap2_ssl.c
ln -s -f ./stdsoap2.cpp stdsoap2_ssl_cpp.cpp
make  all-recursive
make[3]: Entering directory `/home/ghfan/gsoap-2.8/gsoap'
make[3]: Warning: File `Makefile' has modification time 1.8e+02 s in the future
Making all in .
make[4]: Entering directory `/home/ghfan/gsoap-2.8/gsoap'
make[4]: Warning: File `Makefile' has modification time 1.8e+02 s in the future
gcc -DHAVE_CONFIG_H -I. -I..        -DLINUX -g -O2 -MT libgsoap_a-stdsoap2.o -MD -MP -MF .deps/libgsoap_a-stdsoap2.Tpo -c -o libgsoap_a-stdsoap2.o `test -f 'stdsoap2.c' || echo './'`stdsoap2.c
mv -f .deps/libgsoap_a-stdsoap2.Tpo .deps/libgsoap_a-stdsoap2.Po
gcc -DHAVE_CONFIG_H -I. -I..        -DLINUX -g -O2 -MT libgsoap_a-dom.o -MD -MP -MF .deps/libgsoap_a-dom.Tpo -c -o libgsoap_a-dom.o `test -f 'dom.c' || echo './'`dom.c
In file included from dom.c:55:
****stdsoap2.h:2830: error: expected specifier-qualifier-list before 'locale_t'****
make[4]: *** [libgsoap_a-dom.o] Error 1
make[4]: Leaving directory `/home/ghfan/gsoap-2.8/gsoap'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory `/home/ghfan/gsoap-2.8/gsoap'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/home/ghfan/gsoap-2.8/gsoap'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/ghfan/gsoap-2.8'
make: *** [all] Error 2

i have no idea to this problem, some one knows why?


Solution

  • Your system may not have a working locale.h, xlocale.h, or trouble using one or both of these.

    Here is the workaround:

    1. if you're using the latest release 2.8.49 then use ./configure --disable-c-locale

    2. if you'r are using an older release, then use ./configure SOAPCPP2_DEBUG="-DWITH_NO_C_LOCALE"

    This disables the internal use of the C locale when floating point values are converted with functions such as strtod_l.

    It will allow you to build the library.

    I am not sure about building wsdl2h, but you could force something like make WSDL2H_EXTRA_FLAGS="-DWITH_NO_C_LOCALE -DWITH_OPENSSL -DWITH_GZIP" to build it when navigating to gsoap/wsdl.

    But beware: using these options means that other locale settings on the machine or in the application may affect floating point conversions, e.g. when LC_NUMERIC is set to the European-style decimal comma instead of a decimal point. This obviously affects text processing in XML.