FAQ
configure in php 5.4.12 seems to have some difficulty with libcurl 7.29.0 :

$ ./configure --with-apxs2=/usr/local/bin/apxs --with-mysql=/opt/mysql/mysql \
--with-libxml-dir=/usr/local --sysconfdir=/usr/local/etc \
--includedir=/usr/local/include --libdir=/usr/local/lib \
--libexecdir=/usr/local/libexec --localstatedir=/usr/local/var/php \
--mandir=/usr/local/share/man --infodir=/usr/local/share \
--cache-file=../php-5.4.12_SunOS5.10_sparcv9+GD.001.cache \
--disable-debug --with-pic --with-bz2 --with-gettext --with-gmp --with-iconv \
--with-openssl --with-zlib --enable-ftp --enable-sockets --without-kerberos \
--enable-calendar --enable-xml --disable-json --enable-posix \
--enable-mbstring --with-mysqli --with-jpeg-dir=/usr/local \
--with-png-dir=/usr/local --with-zlib-dir=/usr/local \
--with-xpm-dir=/usr/openwin/lib/sparcv9 --with-gd --with-curl \
--with-freetype-dir=/usr/local
configure: creating cache ../php-5.4.12_SunOS5.10_sparcv9+GD.001.cache
.
.
.
checking for cURL support... yes
checking if we should use cURL for url streams... no
checking for cURL in default path... found in /usr/local
checking for cURL 7.10.5 or greater... libcurl 7.29.0
checking for SSL support in libcurl... yes
checking how to run the C preprocessor... /opt/solarisstudio12.3/bin/cc -E
checking for openssl support in libcurl... no
checking for gnutls support in libcurl... no
checking for curl_easy_perform in -lcurl... no
configure: error: There is something wrong. Please check config.log for more information.
$

Strange because :

$ curl --version
curl 7.29.0 (sparc-sun-solaris2.10) libcurl/7.29.0 OpenSSL/1.0.1e zlib/1.2.7 libidn/1.26 libssh2/1.4.3
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp scp sftp smtp smtps telnet tftp
Features: IDN IPv6 Largefile NTLM NTLM_WB SSL libz TLS-SRP

Looking into config.log I see :


configure:28199: checking for cURL support
configure:28235: result: yes
configure:28244: checking if we should use cURL for url streams
configure:28259: result: no
configure:28289: checking for cURL 7.10.5 or greater
configure:28303: result: libcurl 7.29.0
configure:28528: checking for SSL support in libcurl
configure:28532: result: yes

looks fine.

However later I see this :

configure:28678: checking for openssl support in libcurl
configure:28705: /opt/solarisstudio12.3/bin/cc -o conftest -I/usr/local/include
-I/usr/local/include -I/usr/local/ssl/include -I/opt/mysql/mysql/include -D_TS_E
RRNO -D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE -D_POSIX_PTHREAD_SEMANTICS
-D_POSIX_PTHREAD_SEMANTICS -D_REENTRANT -R/usr/ucblib -L/usr/ucblib -R/usr/loc
al/lib -L/usr/local/lib -R/usr/local/ssl/lib -L/usr/local/ssl/lib conftest.c -lc
url -lbz2 -lz -lrt -lm -lnsl -lsocket -lxml2 -lz -liconv -lm -lsocket -lnsl -ls
sl -lcrypto -lcurl -lidn -lssl -lcrypto -lssl -lcrypto -lldap -lz -lrt -lsocket
-lnsl >&5
"/usr/local/include/curl/curlrules.h", line 143: zero or negative subscript
"/usr/local/include/curl/curlrules.h", line 153: zero or negative subscript
"conftest.c", line 249: warning: implicit function declaration: strncasecmp
cc: acomp failed for conftest.c
configure:28705: $? = 2
configure: program exited with status 2
configure: failed program was:
/* confdefs.h */
#define PACKAGE_NAME ""
#define PACKAGE_TARNAME ""
#define PACKAGE_VERSION ""
#define PACKAGE_STRING ""
#define PACKAGE_BUGREPORT ""
#define PACKAGE_URL ""
#define STDC_HEADERS 1
#define HAVE_SYS_TYPES_H 1
#define HAVE_SYS_STAT_H 1
#define HAVE_STDLIB_H 1
#define HAVE_STRING_H 1
#define HAVE_MEMORY_H 1
#define HAVE_STRINGS_H 1
#define HAVE_INTTYPES_H 1
#define HAVE_STDINT_H 1
#define HAVE_UNISTD_H 1
#define __EXTENSIONS__ 1
#define _ALL_SOURCE 1
#define _GNU_SOURCE 1
#define _POSIX_PTHREAD_SEMANTICS 1
#define _TANDEM_SOURCE 1
#define HAVE_DEV_URANDOM 1
#define HAVE_SOCKLEN_T 1
#define USE_LOCKING 1
#define WORDS_BIGENDIAN /**/
#define PHP_WRITE_STDOUT 1
#define HAVE_SOCKET 1
#define HAVE_LIBSOCKET 1
#define HAVE_SOCKETPAIR 1
#define HAVE_HTONL 1
#define HAVE_GETHOSTNAME 1
#define HAVE_GETHOSTBYADDR 1
#define HAVE_LIBNSL 1
#define HAVE_YP_GET_DEFAULT_DOMAIN 1
#define HAVE_DLOPEN 1
#define HAVE_LIBDL 1
#define HAVE_LIBM 1
#define HAVE_INET_ATON 1
#define STDC_HEADERS 1
#define HAVE_DIRENT_H 1
#define HAVE_INTTYPES_H 1
#define HAVE_STDINT_H 1
#define HAVE_DIRENT_H 1
#define HAVE_SYS_PARAM_H 1
#define HAVE_SYS_TYPES_H 1
#define HAVE_SYS_TIME_H 1
#define HAVE_NETINET_IN_H 1
#define HAVE_ALLOCA_H 1
#define HAVE_ARPA_INET_H 1
#define HAVE_ARPA_NAMESER_H 1
#define HAVE_ASSERT_H 1
#define HAVE_CRYPT_H 1
#define HAVE_FCNTL_H 1
#define HAVE_GRP_H 1
#define HAVE_IEEEFP_H 1
#define HAVE_LANGINFO_H 1
#define HAVE_LIMITS_H 1
#define HAVE_LOCALE_H 1
#define HAVE_MONETARY_H 1
#define HAVE_NETDB_H 1
#define HAVE_PWD_H 1
#define HAVE_RESOLV_H 1
#define HAVE_SIGNAL_H 1
#define HAVE_STDARG_H 1
#define HAVE_STDLIB_H 1
#define HAVE_STRING_H 1
#define HAVE_SYSLOG_H 1
#define HAVE_SYSEXITS_H 1
#define HAVE_SYS_IOCTL_H 1
#define HAVE_SYS_FILE_H 1
#define HAVE_SYS_MMAN_H 1
#define HAVE_SYS_MOUNT_H 1
#define HAVE_SYS_POLL_H 1
#define HAVE_SYS_RESOURCE_H 1
#define HAVE_SYS_SELECT_H 1
#define HAVE_SYS_SOCKET_H 1
#define HAVE_SYS_STAT_H 1
#define HAVE_SYS_STATFS_H 1
#define HAVE_SYS_STATVFS_H 1
#define HAVE_SYS_VFS_H 1
#define HAVE_SYS_VARARGS_H 1
#define HAVE_SYS_WAIT_H 1
#define HAVE_SYS_LOADAVG_H 1
#define HAVE_TERMIOS_H 1
#define HAVE_UNISTD_H 1
#define HAVE_UTIME_H 1
#define HAVE_SYS_UTSNAME_H 1
#define HAVE_SYS_IPC_H 1
#define HAVE_DLFCN_H 1
#define HAVE_ASSERT_H 1
#define HAVE_BROKEN_GETCWD 1
#define HAVE_BROKEN_GLIBC_FOPEN_APPEND 1
#define HAVE_DECL_TZNAME 1
#define HAVE_TZNAME 1
#define MISSING_FCLOSE_DECL 0
#define HAVE_STRUCT_FLOCK 1
#define HAVE_SOCKLEN_T 1
#define SIZEOF_SIZE_T 8
#define SIZEOF_LONG_LONG 8
#define SIZEOF_LONG_LONG_INT 8
#define SIZEOF_LONG 8
#define SIZEOF_INT 4
#define SIZEOF_INTMAX_T 8
#define HAVE_INTMAX_T 1
#define SIZEOF_SSIZE_T 8
#define HAVE_SSIZE_T 1
#define SIZEOF_PTRDIFF_T 8
#define HAVE_PTRDIFF_T 1
#define HAVE_STRUCT_STAT_ST_BLKSIZE 1
#define HAVE_ST_BLKSIZE 1
#define HAVE_STRUCT_STAT_ST_BLOCKS 1
#define HAVE_ST_BLOCKS 1
#define HAVE_STRUCT_STAT_ST_RDEV 1
#define HAVE_ST_RDEV 1
#define HAVE_SOCKADDR_STORAGE 1
#define HAVE_VPRINTF 1
#define HAVE_DOPRNT 1
#define HAVE_ALPHASORT 1
#define HAVE_ASCTIME_R 1
#define HAVE_CHROOT 1
#define HAVE_CTIME_R 1
#define HAVE_CUSERID 1
#define HAVE_CRYPT 1
#define HAVE_FTOK 1
#define HAVE_GAI_STRERROR 1
#define HAVE_GCVT 1
#define HAVE_GETLOADAVG 1
#define HAVE_GETLOGIN 1
#define HAVE_GETPROTOBYNAME 1
#define HAVE_GETPROTOBYNUMBER 1
#define HAVE_GETSERVBYNAME 1
#define HAVE_GETSERVBYPORT 1
#define HAVE_GETHOSTNAME 1
#define HAVE_GETRUSAGE 1
#define HAVE_GETTIMEOFDAY 1
#define HAVE_GMTIME_R 1
#define HAVE_GETPWNAM_R 1
#define HAVE_GETGRNAM_R 1
#define HAVE_GETPWUID_R 1
#define HAVE_GRANTPT 1
#define HAVE_INET_NTOA 1
#define HAVE_INET_NTOP 1
#define HAVE_INET_PTON 1
#define HAVE_ISASCII 1
#define HAVE_LINK 1
#define HAVE_LOCALTIME_R 1
#define HAVE_LOCKF 1
#define HAVE_LCHOWN 1
#define HAVE_LRAND48 1
#define HAVE_MEMCPY 1
#define HAVE_MEMMOVE 1
#define HAVE_MKSTEMP 1
#define HAVE_MMAP 1
#define HAVE_NL_LANGINFO 1
#define HAVE_PERROR 1
#define HAVE_POLL 1
#define HAVE_PTSNAME 1
#define HAVE_PUTENV 1
#define HAVE_REALPATH 1
#define HAVE_RANDOM 1
#define HAVE_RAND_R 1
#define HAVE_SCANDIR 1
#define HAVE_SETITIMER 1
#define HAVE_SETLOCALE 1
#define HAVE_LOCALECONV 1
#define HAVE_SETENV 1
#define HAVE_SETPGID 1
#define HAVE_SETSOCKOPT 1
#define HAVE_SETVBUF 1
#define HAVE_SHUTDOWN 1
#define HAVE_SIN 1
#define HAVE_SNPRINTF 1
#define HAVE_SRAND48 1
#define HAVE_SRANDOM 1
#define HAVE_STATFS 1
#define HAVE_STATVFS 1
#define HAVE_STRCASECMP 1
#define HAVE_STRCOLL 1
#define HAVE_STRDUP 1
#define HAVE_STRERROR 1
#define HAVE_STRFTIME 1
#define HAVE_STRPTIME 1
#define HAVE_STRSTR 1
#define HAVE_STRTOK_R 1
#define HAVE_SYMLINK 1
#define HAVE_TEMPNAM 1
#define HAVE_TZSET 1
#define HAVE_UNLOCKPT 1
#define HAVE_UNSETENV 1
#define HAVE_USLEEP 1
#define HAVE_UTIME 1
#define HAVE_VSNPRINTF 1
#define HAVE_VASPRINTF 1
#define HAVE_ASPRINTF 1
#define HAVE_NANOSLEEP 1
#define HAVE_LIBRT 1
#define HAVE_GETADDRINFO 1
#define HAVE_STRLCAT 1
#define HAVE_STRLCPY 1
#define HAVE_GETOPT 1
#define HAVE_UTIME_H 1
#define HAVE_UTIME_NULL 1
#define HAVE_ALLOCA_H 1
#define HAVE_ALLOCA 1
#define HAVE_DECLARED_TIMEZONE 1
#define HAVE_POSIX_READDIR_R 1
#define PHP_SIGCHILD 0
#define DEFAULT_SHORT_OPEN_TAG "1"
#define HAVE_IPV6 1
#define SIZEOF_LONG 8
#define SIZEOF_INT 4
#define HAVE_INT32_T 1
#define HAVE_UINT32_T 1
#define HAVE_SYS_TYPES_H 1
#define HAVE_INTTYPES_H 1
#define HAVE_STDINT_H 1
#define HAVE_STRING_H 1
#define HAVE_STDLIB_H 1
#define HAVE_STRTOLL 1
#define HAVE_ATOLL 1
#define HAVE_STRFTIME 1
#define HAVE_REGEX_T_RE_MAGIC 1
#define HSREGEX 1
#define REGEX 1
#define HAVE_LIBXML 1
#define HAVE_LIBXML 1
#define HAVE_DSA_DEFAULT_METHOD 1
#define HAVE_OPENSSL_EXT 1
#define HAVE_BUNDLED_PCRE 1
#define HAVE_SQLITE3 1
#define HAVE_ZLIB 1
#define HAVE_BZ2 1
#define HAVE_CALENDAR 1
#define HAVE_CTYPE 1
#define HAVE_CURL_SSL 1
/* end confdefs.h. */

#include <curl/curl.h>

int main(int argc, char *argv[])
{
curl_version_info_data *data = curl_version_info(CURLVERSION_NOW);

if (data && data->ssl_version && *data->ssl_version) {
const char *ptr = data->ssl_version;

while(*ptr == ' ') ++ptr;
return strncasecmp(ptr, "OpenSSL", sizeof("OpenSSL")-1);
}
return 1;
}
configure:28728: result: no


Well that is just plain wrong ... proof :


$ cat hack.c


#include <curl/curl.h>

int main(int argc, char *argv[])
{
curl_version_info_data *data = curl_version_info(CURLVERSION_NOW);

if (data && data->ssl_version && *data->ssl_version) {
const char *ptr = data->ssl_version;

while(*ptr == ' ') ++ptr;
printf ( "ptr says : %s\n", ptr );
/* return strncasecmp(ptr, "OpenSSL", sizeof("OpenSSL")-1); */
}
return 1;
}

$
$ /opt/solarisstudio12.3/bin/c99 $CFLAGS -I/usr/local/include -c -o hack.o hack.c
$ /opt/solarisstudio12.3/bin/c99 $CFLAGS -R/usr/local/lib -L/usr/local/lib -o hack hack.o -lcurl -lssh2
$ ./hack
ptr says : OpenSSL/1.0.1e
$

so that is a bit of an issue in the configure stage with most recent libcurl and openssl.

Dennis

Search Discussions

  • Dennis Clarke at Feb 25, 2013 at 7:03 am
    configure in php 5.4.12 seems to have some difficulty with libcurl 7.29.0 :

    $ ./configure --with-apxs2=/usr/local/bin/apxs --with-mysql=/opt/mysql/mysql \
    --with-libxml-dir=/usr/local --sysconfdir=/usr/local/etc \
    --includedir=/usr/local/include --libdir=/usr/local/lib \
    --libexecdir=/usr/local/libexec --localstatedir=/usr/local/var/php \
    --mandir=/usr/local/share/man --infodir=/usr/local/share \
    --cache-file=../php-5.4.12_SunOS5.10_sparcv9+GD.001.cache \
    --disable-debug --with-pic --with-bz2 --with-gettext --with-gmp --with-iconv \
    --with-openssl --with-zlib --enable-ftp --enable-sockets --without-kerberos \
    --enable-calendar --enable-xml --disable-json --enable-posix \
    --enable-mbstring --with-mysqli --with-jpeg-dir=/usr/local \
    --with-png-dir=/usr/local --with-zlib-dir=/usr/local \
    --with-xpm-dir=/usr/openwin/lib/sparcv9 --with-gd --with-curl \
    --with-freetype-dir=/usr/local
    configure: creating cache ../php-5.4.12_SunOS5.10_sparcv9+GD.001.cache
    .
    .
    .
    checking for cURL support... yes
    checking if we should use cURL for url streams... no
    checking for cURL in default path... found in /usr/local
    checking for cURL 7.10.5 or greater... libcurl 7.29.0
    checking for SSL support in libcurl... yes
    checking how to run the C preprocessor... /opt/solarisstudio12.3/bin/cc -E
    checking for openssl support in libcurl... no
    checking for gnutls support in libcurl... no
    checking for curl_easy_perform in -lcurl... no
    configure: error: There is something wrong. Please check config.log for more information.
    $

    Strange because :

    $ curl --version
    curl 7.29.0 (sparc-sun-solaris2.10) libcurl/7.29.0 OpenSSL/1.0.1e zlib/1.2.7 libidn/1.26 libssh2/1.4.3
    Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp scp sftp smtp smtps telnet tftp
    Features: IDN IPv6 Largefile NTLM NTLM_WB SSL libz TLS-SRP

    Looking into config.log I see :


    configure:28199: checking for cURL support
    configure:28235: result: yes
    configure:28244: checking if we should use cURL for url streams
    configure:28259: result: no
    configure:28289: checking for cURL 7.10.5 or greater
    configure:28303: result: libcurl 7.29.0
    configure:28528: checking for SSL support in libcurl
    configure:28532: result: yes

    looks fine.

    However later I see this :

    configure:28678: checking for openssl support in libcurl
    configure:28705: /opt/solarisstudio12.3/bin/cc -o conftest -I/usr/local/include
    -I/usr/local/include -I/usr/local/ssl/include -I/opt/mysql/mysql/include -D_TS_E
    RRNO -D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE -D_POSIX_PTHREAD_SEMANTICS
    -D_POSIX_PTHREAD_SEMANTICS -D_REENTRANT -R/usr/ucblib -L/usr/ucblib -R/usr/loc
    al/lib -L/usr/local/lib -R/usr/local/ssl/lib -L/usr/local/ssl/lib conftest.c -lc
    url -lbz2 -lz -lrt -lm -lnsl -lsocket -lxml2 -lz -liconv -lm -lsocket -lnsl -ls
    sl -lcrypto -lcurl -lidn -lssl -lcrypto -lssl -lcrypto -lldap -lz -lrt -lsocket
    -lnsl >&5
    "/usr/local/include/curl/curlrules.h", line 143: zero or negative subscript
    "/usr/local/include/curl/curlrules.h", line 153: zero or negative subscript
    "conftest.c", line 249: warning: implicit function declaration: strncasecmp
    cc: acomp failed for conftest.c
    configure:28705: $? = 2
    configure: program exited with status 2
    configure: failed program was:
    /* confdefs.h */
    #define PACKAGE_NAME ""
    #define PACKAGE_TARNAME ""
    #define PACKAGE_VERSION ""
    #define PACKAGE_STRING ""
    #define PACKAGE_BUGREPORT ""
    #define PACKAGE_URL ""
    #define STDC_HEADERS 1
    #define HAVE_SYS_TYPES_H 1
    #define HAVE_SYS_STAT_H 1
    #define HAVE_STDLIB_H 1
    #define HAVE_STRING_H 1
    #define HAVE_MEMORY_H 1
    #define HAVE_STRINGS_H 1
    #define HAVE_INTTYPES_H 1
    #define HAVE_STDINT_H 1
    #define HAVE_UNISTD_H 1
    #define __EXTENSIONS__ 1
    #define _ALL_SOURCE 1
    #define _GNU_SOURCE 1
    #define _POSIX_PTHREAD_SEMANTICS 1
    #define _TANDEM_SOURCE 1
    #define HAVE_DEV_URANDOM 1
    #define HAVE_SOCKLEN_T 1
    #define USE_LOCKING 1
    #define WORDS_BIGENDIAN /**/
    #define PHP_WRITE_STDOUT 1
    #define HAVE_SOCKET 1
    #define HAVE_LIBSOCKET 1
    #define HAVE_SOCKETPAIR 1
    #define HAVE_HTONL 1
    #define HAVE_GETHOSTNAME 1
    #define HAVE_GETHOSTBYADDR 1
    #define HAVE_LIBNSL 1
    #define HAVE_YP_GET_DEFAULT_DOMAIN 1
    #define HAVE_DLOPEN 1
    #define HAVE_LIBDL 1
    #define HAVE_LIBM 1
    #define HAVE_INET_ATON 1
    #define STDC_HEADERS 1
    #define HAVE_DIRENT_H 1
    #define HAVE_INTTYPES_H 1
    #define HAVE_STDINT_H 1
    #define HAVE_DIRENT_H 1
    #define HAVE_SYS_PARAM_H 1
    #define HAVE_SYS_TYPES_H 1
    #define HAVE_SYS_TIME_H 1
    #define HAVE_NETINET_IN_H 1
    #define HAVE_ALLOCA_H 1
    #define HAVE_ARPA_INET_H 1
    #define HAVE_ARPA_NAMESER_H 1
    #define HAVE_ASSERT_H 1
    #define HAVE_CRYPT_H 1
    #define HAVE_FCNTL_H 1
    #define HAVE_GRP_H 1
    #define HAVE_IEEEFP_H 1
    #define HAVE_LANGINFO_H 1
    #define HAVE_LIMITS_H 1
    #define HAVE_LOCALE_H 1
    #define HAVE_MONETARY_H 1
    #define HAVE_NETDB_H 1
    #define HAVE_PWD_H 1
    #define HAVE_RESOLV_H 1
    #define HAVE_SIGNAL_H 1
    #define HAVE_STDARG_H 1
    #define HAVE_STDLIB_H 1
    #define HAVE_STRING_H 1
    #define HAVE_SYSLOG_H 1
    #define HAVE_SYSEXITS_H 1
    #define HAVE_SYS_IOCTL_H 1
    #define HAVE_SYS_FILE_H 1
    #define HAVE_SYS_MMAN_H 1
    #define HAVE_SYS_MOUNT_H 1
    #define HAVE_SYS_POLL_H 1
    #define HAVE_SYS_RESOURCE_H 1
    #define HAVE_SYS_SELECT_H 1
    #define HAVE_SYS_SOCKET_H 1
    #define HAVE_SYS_STAT_H 1
    #define HAVE_SYS_STATFS_H 1
    #define HAVE_SYS_STATVFS_H 1
    #define HAVE_SYS_VFS_H 1
    #define HAVE_SYS_VARARGS_H 1
    #define HAVE_SYS_WAIT_H 1
    #define HAVE_SYS_LOADAVG_H 1
    #define HAVE_TERMIOS_H 1
    #define HAVE_UNISTD_H 1
    #define HAVE_UTIME_H 1
    #define HAVE_SYS_UTSNAME_H 1
    #define HAVE_SYS_IPC_H 1
    #define HAVE_DLFCN_H 1
    #define HAVE_ASSERT_H 1
    #define HAVE_BROKEN_GETCWD 1
    #define HAVE_BROKEN_GLIBC_FOPEN_APPEND 1
    #define HAVE_DECL_TZNAME 1
    #define HAVE_TZNAME 1
    #define MISSING_FCLOSE_DECL 0
    #define HAVE_STRUCT_FLOCK 1
    #define HAVE_SOCKLEN_T 1
    #define SIZEOF_SIZE_T 8
    #define SIZEOF_LONG_LONG 8
    #define SIZEOF_LONG_LONG_INT 8
    #define SIZEOF_LONG 8
    #define SIZEOF_INT 4
    #define SIZEOF_INTMAX_T 8
    #define HAVE_INTMAX_T 1
    #define SIZEOF_SSIZE_T 8
    #define HAVE_SSIZE_T 1
    #define SIZEOF_PTRDIFF_T 8
    #define HAVE_PTRDIFF_T 1
    #define HAVE_STRUCT_STAT_ST_BLKSIZE 1
    #define HAVE_ST_BLKSIZE 1
    #define HAVE_STRUCT_STAT_ST_BLOCKS 1
    #define HAVE_ST_BLOCKS 1
    #define HAVE_STRUCT_STAT_ST_RDEV 1
    #define HAVE_ST_RDEV 1
    #define HAVE_SOCKADDR_STORAGE 1
    #define HAVE_VPRINTF 1
    #define HAVE_DOPRNT 1
    #define HAVE_ALPHASORT 1
    #define HAVE_ASCTIME_R 1
    #define HAVE_CHROOT 1
    #define HAVE_CTIME_R 1
    #define HAVE_CUSERID 1
    #define HAVE_CRYPT 1
    #define HAVE_FTOK 1
    #define HAVE_GAI_STRERROR 1
    #define HAVE_GCVT 1
    #define HAVE_GETLOADAVG 1
    #define HAVE_GETLOGIN 1
    #define HAVE_GETPROTOBYNAME 1
    #define HAVE_GETPROTOBYNUMBER 1
    #define HAVE_GETSERVBYNAME 1
    #define HAVE_GETSERVBYPORT 1
    #define HAVE_GETHOSTNAME 1
    #define HAVE_GETRUSAGE 1
    #define HAVE_GETTIMEOFDAY 1
    #define HAVE_GMTIME_R 1
    #define HAVE_GETPWNAM_R 1
    #define HAVE_GETGRNAM_R 1
    #define HAVE_GETPWUID_R 1
    #define HAVE_GRANTPT 1
    #define HAVE_INET_NTOA 1
    #define HAVE_INET_NTOP 1
    #define HAVE_INET_PTON 1
    #define HAVE_ISASCII 1
    #define HAVE_LINK 1
    #define HAVE_LOCALTIME_R 1
    #define HAVE_LOCKF 1
    #define HAVE_LCHOWN 1
    #define HAVE_LRAND48 1
    #define HAVE_MEMCPY 1
    #define HAVE_MEMMOVE 1
    #define HAVE_MKSTEMP 1
    #define HAVE_MMAP 1
    #define HAVE_NL_LANGINFO 1
    #define HAVE_PERROR 1
    #define HAVE_POLL 1
    #define HAVE_PTSNAME 1
    #define HAVE_PUTENV 1
    #define HAVE_REALPATH 1
    #define HAVE_RANDOM 1
    #define HAVE_RAND_R 1
    #define HAVE_SCANDIR 1
    #define HAVE_SETITIMER 1
    #define HAVE_SETLOCALE 1
    #define HAVE_LOCALECONV 1
    #define HAVE_SETENV 1
    #define HAVE_SETPGID 1
    #define HAVE_SETSOCKOPT 1
    #define HAVE_SETVBUF 1
    #define HAVE_SHUTDOWN 1
    #define HAVE_SIN 1
    #define HAVE_SNPRINTF 1
    #define HAVE_SRAND48 1
    #define HAVE_SRANDOM 1
    #define HAVE_STATFS 1
    #define HAVE_STATVFS 1
    #define HAVE_STRCASECMP 1
    #define HAVE_STRCOLL 1
    #define HAVE_STRDUP 1
    #define HAVE_STRERROR 1
    #define HAVE_STRFTIME 1
    #define HAVE_STRPTIME 1
    #define HAVE_STRSTR 1
    #define HAVE_STRTOK_R 1
    #define HAVE_SYMLINK 1
    #define HAVE_TEMPNAM 1
    #define HAVE_TZSET 1
    #define HAVE_UNLOCKPT 1
    #define HAVE_UNSETENV 1
    #define HAVE_USLEEP 1
    #define HAVE_UTIME 1
    #define HAVE_VSNPRINTF 1
    #define HAVE_VASPRINTF 1
    #define HAVE_ASPRINTF 1
    #define HAVE_NANOSLEEP 1
    #define HAVE_LIBRT 1
    #define HAVE_GETADDRINFO 1
    #define HAVE_STRLCAT 1
    #define HAVE_STRLCPY 1
    #define HAVE_GETOPT 1
    #define HAVE_UTIME_H 1
    #define HAVE_UTIME_NULL 1
    #define HAVE_ALLOCA_H 1
    #define HAVE_ALLOCA 1
    #define HAVE_DECLARED_TIMEZONE 1
    #define HAVE_POSIX_READDIR_R 1
    #define PHP_SIGCHILD 0
    #define DEFAULT_SHORT_OPEN_TAG "1"
    #define HAVE_IPV6 1
    #define SIZEOF_LONG 8
    #define SIZEOF_INT 4
    #define HAVE_INT32_T 1
    #define HAVE_UINT32_T 1
    #define HAVE_SYS_TYPES_H 1
    #define HAVE_INTTYPES_H 1
    #define HAVE_STDINT_H 1
    #define HAVE_STRING_H 1
    #define HAVE_STDLIB_H 1
    #define HAVE_STRTOLL 1
    #define HAVE_ATOLL 1
    #define HAVE_STRFTIME 1
    #define HAVE_REGEX_T_RE_MAGIC 1
    #define HSREGEX 1
    #define REGEX 1
    #define HAVE_LIBXML 1
    #define HAVE_LIBXML 1
    #define HAVE_DSA_DEFAULT_METHOD 1
    #define HAVE_OPENSSL_EXT 1
    #define HAVE_BUNDLED_PCRE 1
    #define HAVE_SQLITE3 1
    #define HAVE_ZLIB 1
    #define HAVE_BZ2 1
    #define HAVE_CALENDAR 1
    #define HAVE_CTYPE 1
    #define HAVE_CURL_SSL 1
    /* end confdefs.h. */

    #include <curl/curl.h>

    int main(int argc, char *argv[])
    {
    curl_version_info_data *data = curl_version_info(CURLVERSION_NOW);

    if (data && data->ssl_version && *data->ssl_version) {
    const char *ptr = data->ssl_version;

    while(*ptr == ' ') ++ptr;
    return strncasecmp(ptr, "OpenSSL", sizeof("OpenSSL")-1);
    }
    return 1;
    }
    configure:28728: result: no


    Well that is just plain wrong ... proof :


    $ cat hack.c


    #include <curl/curl.h>

    int main(int argc, char *argv[])
    {
    curl_version_info_data *data = curl_version_info(CURLVERSION_NOW);

    if (data && data->ssl_version && *data->ssl_version) {
    const char *ptr = data->ssl_version;

    while(*ptr == ' ') ++ptr;
    printf ( "ptr says : %s\n", ptr );
    /* return strncasecmp(ptr, "OpenSSL", sizeof("OpenSSL")-1); */
    }
    return 1;
    }

    $
    $ /opt/solarisstudio12.3/bin/c99 $CFLAGS -I/usr/local/include -c -o hack.o hack.c
    $ /opt/solarisstudio12.3/bin/c99 $CFLAGS -R/usr/local/lib -L/usr/local/lib -o hack hack.o -lcurl -lssh2
    $ ./hack
    ptr says : OpenSSL/1.0.1e
    $

    so that is a bit of an issue in the configure stage with most recent libcurl and openssl.

    Dennis
  • Johannes Schlüter at Feb 25, 2013 at 1:02 pm
    Hi,
    On Mon, 2013-02-25 at 01:58 -0500, Dennis Clarke wrote:

    "/usr/local/include/curl/curlrules.h", line 143: zero or negative
    subscript
    "/usr/local/include/curl/curlrules.h", line 153: zero or negative
    subscript
    "conftest.c", line 249: warning: implicit function declaration:
    strncasecmp
    cc: acomp failed for conftest.c
    looking at my version of curlrules.h I read

    #define CurlchkszEQ(t, s) sizeof(t) == s ? 1 : -1

    #define CurlchkszGE(t1, t2) sizeof(t1) >= sizeof(t2) ? 1 : -1

    /*
    * Verify that the size previously defined and expected for long
    * is the same as the one reported by sizeof() at compile time.
    */

    typedef char
    __curl_rule_01__
    [CurlchkszEQ(long, CURL_SIZEOF_LONG)]; // <-- Line 143

    So this is a fancy check for statically checking that sizeof(long) ==
    CURL_SIZEOF_LONG.

    So my guess would be that there is some mix between 32 and 64 bit mode,
    try compiling with setting CFLAGS="-m64" (or CFLAGS="-m32") for
    configure.

    johannes
  • Dennis Clarke at Feb 25, 2013 at 2:08 pm

    Hi,
    On Mon, 2013-02-25 at 01:58 -0500, Dennis Clarke wrote:

    "/usr/local/include/curl/curlrules.h", line 143: zero or negative
    subscript
    "/usr/local/include/curl/curlrules.h", line 153: zero or negative
    subscript
    "conftest.c", line 249: warning: implicit function declaration:
    strncasecmp
    cc: acomp failed for conftest.c
    looking at my version of curlrules.h I read

    #define CurlchkszEQ(t, s) sizeof(t) == s ? 1 : -1

    #define CurlchkszGE(t1, t2) sizeof(t1) >= sizeof(t2) ? 1 : -1

    /*
    * Verify that the size previously defined and expected for long
    * is the same as the one reported by sizeof() at compile time.
    */

    typedef char
    __curl_rule_01__
    [CurlchkszEQ(long, CURL_SIZEOF_LONG)]; // <-- Line 143

    So this is a fancy check for statically checking that sizeof(long) ==
    CURL_SIZEOF_LONG.
    Yep. I looked at that too. Thought it was obscure but okay, workable I guess.
    So my guess would be that there is some mix between 32 and 64 bit mode,
    try compiling with setting CFLAGS="-m64" (or CFLAGS="-m32") for
    configure.
    Everything here is -m64 and -xtarget=ultraT2 so not sure where else to look.

    dc
  • Johannes Schlüter at Feb 25, 2013 at 2:17 pm

    On Mon, 2013-02-25 at 09:08 -0500, Dennis Clarke wrote:
    So my guess would be that there is some mix between 32 and 64 bit mode,
    try compiling with setting CFLAGS="-m64" (or CFLAGS="-m32") for
    configure.
    Everything here is -m64 and -xtarget=ultraT2 so not sure where else to
    look.
    How did you compile curl? - Do you have the following in curlbuild.h or
    is that some configure created stuff?


    /* ===================================== */
    /* Sun Studio Compilers */
    /* ===================================== */

    #elif defined(__SUNPRO_C) || defined(__SUNPRO_CC)
    #include <stdint.h>
    #include <sys/types.h>
    #include <sys/socket.h>

    # define CURL_TYPEOF_CURL_OFF_T off_t
    # define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t
    # define CURL_SIZEOF_CURL_SOCKLEN_T 4
    # if defined(__amd64) || defined(__sparcv9)
    # define CURL_SIZEOF_CURL_OFF_T 8
    # define CURL_SIZEOF_LONG 8
    [...]
    # else
    # define CURL_SIZEOF_LONG 4
    [...]
    # endif

    Without looking deeper this looks fine ...

    johannes
  • Dennis Clarke at Feb 25, 2013 at 3:49 pm
    ----- Original Message -----
    From: Johannes Schlüter <[email protected]>
    Date: Monday, February 25, 2013 9:17 am
    Subject: Re: [PHP-DEV] PHP 5.4.12 and libcurl 7.29.0 configure problem
    To: Dennis Clarke <[email protected]>
    Cc: [email protected], [email protected]

    On Mon, 2013-02-25 at 09:08 -0500, Dennis Clarke wrote:
    So my guess would be that there is some mix between 32 and 64 bit mode,
    try compiling with setting CFLAGS="-m64" (or CFLAGS="-m32") for
    configure.
    Everything here is -m64 and -xtarget=ultraT2 so not sure where else to
    look.
    How did you compile curl?
    Let's see .. :


    $ head curl-7.29.0_SunOS5.10_sparcv9.002/config.log
    This file contains any messages produced by compilers while
    running configure, to aid debugging if configure makes a mistake.

    It was created by curl configure -, which was
    generated by GNU Autoconf 2.69. Invocation command line was

    $ ./configure --enable-shared --enable-static --with-libidn=/usr/local --enable-tls-srp --with-ssl


    Had no issues with curl. Worked great and :

    $ which curl
    /usr/local/bin/curl
    $ file /usr/local/bin/curl
    /usr/local/bin/curl: ELF 64-bit MSB executable SPARCV9 Version 1, UltraSPARC3 Extensions Required, dynamically linked, stripped
    $ elfdump -e /usr/local/bin/curl

    ELF Header
    ei_magic: { 0x7f, E, L, F }
    ei_class: ELFCLASS64 ei_data: ELFDATA2MSB
    ei_osabi: ELFOSABI_SOLARIS ei_abiversion: EAV_SUNW_CURRENT
    e_machine: EM_SPARCV9 e_version: EV_CURRENT
    e_type: ET_EXEC
    e_flags: [ EF_SPARCV9_TSO EF_SPARC_SUN_US1 EF_SPARC_SUN_US3 ]
    e_entry: 0x100003260 e_ehsize: 64 e_shstrndx: 22
    e_shoff: 0x29888 e_shentsize: 64 e_shnum: 23
    e_phoff: 0x40 e_phentsize: 56 e_phnum: 5

    $ curl --version
    curl 7.29.0 (sparc-sun-solaris2.10) libcurl/7.29.0 OpenSSL/1.0.1e zlib/1.2.7 libidn/1.26 libssh2/1.4.3
    Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp scp sftp smtp smtps telnet tftp
    Features: IDN IPv6 Largefile NTLM NTLM_WB SSL libz TLS-SRP

    $ curl-config --cc
    /opt/solarisstudio12.3/bin/cc

    $ curl-config --configure
    '--enable-shared' '--enable-static' '--with-libidn=/usr/local' '--enable-tls-srp' '--with-ssl' 'CC=/opt/solarisstudio12.3/bin/cc' 'CFLAGS=-errfmt=error -erroff=%none -errshort=full -xstrconst -xildoff -m64 -xmemalign=8s -xnolibmil -Xa -xcode=pic32 -xregs=no%appl -xlibmieee -mc -g -xs -ftrap=%none -Qy -xbuiltin=%none -xdebugformat=dwarf -xunroll=1 -xtarget=ultraT2 -xcache=8/16/4:4096/64/16' 'CPPFLAGS=-I/usr/local/include -I/usr/local/ssl/include -I/opt/mysql/mysql/include -D_TS_ERRNO -D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE'


    $ elfdump -dev /usr/local/bin/curl | grep NEEDED
    [0] NEEDED 0x946 libcurl.so.4
    [1] NEEDED 0x953 libidn.so.11
    [2] NEEDED 0x960 libintl.so.8
    [3] NEEDED 0x928 libc.so.1
    [4] NEEDED 0x96d libiconv.so.2
    [5] NEEDED 0x97b libssh2.so.1
    [6] NEEDED 0x988 libssl.so.1.0.0
    [7] NEEDED 0x998 libcrypto.so.1.0.0
    [8] NEEDED 0x9ab libldap.so.5
    [9] NEEDED 0x9b8 libz.so.1
    [10] NEEDED 0x93b librt.so.1
    [11] NEEDED 0x9c2 libsocket.so.1
    [12] NEEDED 0x9d1 libnsl.so.1

    No issues there.

    Also :

    $ cat hack.c

    /*********************************************************************
    * The Open Group Base Specifications Issue 6
    * IEEE Std 1003.1, 2004 Edition
    *
    * An XSI-conforming application should ensure that the feature
    * test macro _XOPEN_SOURCE is defined with the value 600 before
    * inclusion of any header. This is needed to enable the
    * functionality described in The _POSIX_C_SOURCE Feature Test
    * Macro and in addition to enable the XSI extension.
    *
    *********************************************************************/
    #define _XOPEN_SOURCE 600

    #include <stdio.h>
    #include <stdlib.h>
    #include <curl/curl.h>

    int main(int argc, char *argv[]) {
    curl_version_info_data *data = curl_version_info(CURLVERSION_NOW);

    if (data && data->ssl_version && *data->ssl_version) {
    const char *ptr = data->ssl_version;

    while(*ptr == ' ') ++ptr;
    printf ( "ptr says : %s\n", ptr );
    /* return strncasecmp(ptr, "OpenSSL", sizeof("OpenSSL")-1); */
    } else {
    printf ( "error with *data\n" );
    exit ( EXIT_FAILURE );
    }
    exit ( EXIT_SUCCESS );
    }

    $ ldd hack
    libcurl.so.4 => /usr/local/lib/libcurl.so.4
    libssh2.so.1 => /usr/local/lib/libssh2.so.1
    libc.so.1 => /lib/64/libc.so.1
    libidn.so.11 => /usr/local/lib/libidn.so.11
    libssl.so.1.0.0 => /usr/local/ssl/lib/libssl.so.1.0.0
    libcrypto.so.1.0.0 => /usr/local/ssl/lib/libcrypto.so.1.0.0
    libldap.so.5 => /usr/lib/64/libldap.so.5
    libz.so.1 => /usr/local/lib/libz.so.1
    librt.so.1 => /lib/64/librt.so.1
    libsocket.so.1 => /lib/64/libsocket.so.1
    libnsl.so.1 => /lib/64/libnsl.so.1
    libintl.so.8 => /usr/local/lib/libintl.so.8
    libiconv.so.2 => /usr/local/lib/libiconv.so.2
    libdl.so.1 => /lib/64/libdl.so.1
    libsasl.so.1 => /usr/lib/64/libsasl.so.1
    libmd.so.1 => /lib/64/libmd.so.1
    libnspr4.so => /usr/lib/mps/64/libnspr4.so
    libplc4.so => /usr/lib/mps/64/libplc4.so
    libnss3.so => /usr/lib/mps/64/libnss3.so
    libssl3.so => /usr/lib/mps/64/libssl3.so
    libaio.so.1 => /lib/64/libaio.so.1
    libmp.so.2 => /lib/64/libmp.so.2
    libscf.so.1 => /lib/64/libscf.so.1
    libpthread.so.1 => /lib/64/libpthread.so.1
    libnssutil3.so => /usr/lib/mps/sparcv9/libnssutil3.so
    libplds4.so => /usr/lib/mps/sparcv9/libplds4.so
    libthread.so.1 => /lib/64/libthread.so.1
    libdoor.so.1 => /lib/64/libdoor.so.1
    libuutil.so.1 => /lib/64/libuutil.so.1
    libgen.so.1 => /lib/64/libgen.so.1
    libm.so.2 => /lib/64/libm.so.2
    /platform/SUNW,T5240/lib/sparcv9/libc_psr.so.1
    /platform/SUNW,T5240/lib/sparcv9/libmd_psr.so.1
    $ ./hack
    ptr says : OpenSSL/1.0.1e

    looks like a good curl to me


    - Do you have the following in curlbuild.h or
    is that some configure created stuff?


    /* ===================================== */
    /* Sun Studio Compilers */
    /* ===================================== */

    #elif defined(__SUNPRO_C) || defined(__SUNPRO_CC)
    #include <stdint.h>
    #include <sys/types.h>
    #include <sys/socket.h>

    # define CURL_TYPEOF_CURL_OFF_T off_t
    # define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t
    # define CURL_SIZEOF_CURL_SOCKLEN_T 4
    # if defined(__amd64) || defined(__sparcv9)
    # define CURL_SIZEOF_CURL_OFF_T 8
    # define CURL_SIZEOF_LONG 8
    [...]
    # else
    # define CURL_SIZEOF_LONG 4
    [...]
    # endif

    Without looking deeper this looks fine ...
    Nope .. I don't have that!

    This is what I see :

    $ cat ./include/curl/curlbuild.h
    /* include/curl/curlbuild.h. Generated from curlbuild.h.in by configure. */
    #ifndef __CURL_CURLBUILD_H
    #define __CURL_CURLBUILD_H
    /***************************************************************************
    * _ _ ____ _
    * Project ___| | | | _ \| |
    * / __| | | | |_) | |
    * | (__| |_| | _ <| |___
    * \___|\___/|_| \_\_____|
    *
    * Copyright (C) 1998 - 2012, Daniel Stenberg, <[email protected]>, et al.
    *
    * This software is licensed as described in the file COPYING, which
    * you should have received as part of this distribution. The terms
    * are also available at http://curl.haxx.se/docs/copyright.html.
    *
    * You may opt to use, copy, modify, merge, publish, distribute and/or sell
    * copies of the Software, and permit persons to whom the Software is
    * furnished to do so, under the terms of the COPYING file.
    *
    * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
    * KIND, either express or implied.
    *
    ***************************************************************************/

    /* ================================================================ */
    /* NOTES FOR CONFIGURE CAPABLE SYSTEMS */
    /* ================================================================ */

    /*
    * NOTE 1:
    * -------
    *
    * Nothing in this file is intended to be modified or adjusted by the
    * curl library user nor by the curl library builder.
    *
    * If you think that something actually needs to be changed, adjusted
    * or fixed in this file, then, report it on the libcurl development
    * mailing list: http://cool.haxx.se/mailman/listinfo/curl-library/
    *
    * This header file shall only export symbols which are 'curl' or 'CURL'
    * prefixed, otherwise public name space would be polluted.
    *
    * NOTE 2:
    * -------
    *
    * Right now you might be staring at file include/curl/curlbuild.h.in or
    * at file include/curl/curlbuild.h, this is due to the following reason:
    *
    * On systems capable of running the configure script, the configure process
    * will overwrite the distributed include/curl/curlbuild.h file with one that
    * is suitable and specific to the library being configured and built, which
    * is generated from the include/curl/curlbuild.h.in template file.
    *
    */

    /* ================================================================ */
    /* DEFINITION OF THESE SYMBOLS SHALL NOT TAKE PLACE ANYWHERE ELSE */
    /* ================================================================ */

    #ifdef CURL_SIZEOF_LONG
    #error "CURL_SIZEOF_LONG shall not be defined except in curlbuild.h"
    Error Compilation_aborted_CURL_SIZEOF_LONG_already_defined
    #endif

    #ifdef CURL_TYPEOF_CURL_SOCKLEN_T
    #error "CURL_TYPEOF_CURL_SOCKLEN_T shall not be defined except in curlbuild.h"
    Error Compilation_aborted_CURL_TYPEOF_CURL_SOCKLEN_T_already_defined
    #endif

    #ifdef CURL_SIZEOF_CURL_SOCKLEN_T
    #error "CURL_SIZEOF_CURL_SOCKLEN_T shall not be defined except in curlbuild.h"
    Error Compilation_aborted_CURL_SIZEOF_CURL_SOCKLEN_T_already_defined
    #endif

    #ifdef CURL_TYPEOF_CURL_OFF_T
    #error "CURL_TYPEOF_CURL_OFF_T shall not be defined except in curlbuild.h"
    Error Compilation_aborted_CURL_TYPEOF_CURL_OFF_T_already_defined
    #endif

    #ifdef CURL_FORMAT_CURL_OFF_T
    #error "CURL_FORMAT_CURL_OFF_T shall not be defined except in curlbuild.h"
    Error Compilation_aborted_CURL_FORMAT_CURL_OFF_T_already_defined
    #endif

    #ifdef CURL_FORMAT_CURL_OFF_TU
    #error "CURL_FORMAT_CURL_OFF_TU shall not be defined except in curlbuild.h"
    Error Compilation_aborted_CURL_FORMAT_CURL_OFF_TU_already_defined
    #endif

    #ifdef CURL_FORMAT_OFF_T
    #error "CURL_FORMAT_OFF_T shall not be defined except in curlbuild.h"
    Error Compilation_aborted_CURL_FORMAT_OFF_T_already_defined
    #endif

    #ifdef CURL_SIZEOF_CURL_OFF_T
    #error "CURL_SIZEOF_CURL_OFF_T shall not be defined except in curlbuild.h"
    Error Compilation_aborted_CURL_SIZEOF_CURL_OFF_T_already_defined
    #endif

    #ifdef CURL_SUFFIX_CURL_OFF_T
    #error "CURL_SUFFIX_CURL_OFF_T shall not be defined except in curlbuild.h"
    Error Compilation_aborted_CURL_SUFFIX_CURL_OFF_T_already_defined
    #endif

    #ifdef CURL_SUFFIX_CURL_OFF_TU
    #error "CURL_SUFFIX_CURL_OFF_TU shall not be defined except in curlbuild.h"
    Error Compilation_aborted_CURL_SUFFIX_CURL_OFF_TU_already_defined
    #endif

    /* ================================================================ */
    /* EXTERNAL INTERFACE SETTINGS FOR CONFIGURE CAPABLE SYSTEMS ONLY */
    /* ================================================================ */

    /* Configure process defines this to 1 when it finds out that system */
    /* header file ws2tcpip.h must be included by the external interface. */
    /* #undef CURL_PULL_WS2TCPIP_H */
    #ifdef CURL_PULL_WS2TCPIP_H
    # ifndef WIN32_LEAN_AND_MEAN
    # define WIN32_LEAN_AND_MEAN
    # endif
    # include <windows.h>
    # include <winsock2.h>
    # include <ws2tcpip.h>
    #endif

    /* Configure process defines this to 1 when it finds out that system */
    /* header file sys/types.h must be included by the external interface. */
    #define CURL_PULL_SYS_TYPES_H 1
    #ifdef CURL_PULL_SYS_TYPES_H
    # include <sys/types.h>
    #endif

    /* Configure process defines this to 1 when it finds out that system */
    /* header file stdint.h must be included by the external interface. */
    /* #undef CURL_PULL_STDINT_H */
    #ifdef CURL_PULL_STDINT_H
    # include <stdint.h>
    #endif

    /* Configure process defines this to 1 when it finds out that system */
    /* header file inttypes.h must be included by the external interface. */
    /* #undef CURL_PULL_INTTYPES_H */
    #ifdef CURL_PULL_INTTYPES_H
    # include <inttypes.h>
    #endif

    /* Configure process defines this to 1 when it finds out that system */
    /* header file sys/socket.h must be included by the external interface. */
    #define CURL_PULL_SYS_SOCKET_H 1
    #ifdef CURL_PULL_SYS_SOCKET_H
    # include <sys/socket.h>
    #endif

    /* Configure process defines this to 1 when it finds out that system */
    /* header file sys/poll.h must be included by the external interface. */
    /* #undef CURL_PULL_SYS_POLL_H */
    #ifdef CURL_PULL_SYS_POLL_H
    # include <sys/poll.h>
    #endif

    /* The size of `long', as computed by sizeof. */
    #define CURL_SIZEOF_LONG 8

    /* Integral data type used for curl_socklen_t. */
    #define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t

    /* The size of `curl_socklen_t', as computed by sizeof. */
    #define CURL_SIZEOF_CURL_SOCKLEN_T 4

    /* Data type definition of curl_socklen_t. */
    typedef CURL_TYPEOF_CURL_SOCKLEN_T curl_socklen_t;

    /* Signed integral data type used for curl_off_t. */
    #define CURL_TYPEOF_CURL_OFF_T long

    /* Data type definition of curl_off_t. */
    typedef CURL_TYPEOF_CURL_OFF_T curl_off_t;

    /* curl_off_t formatting string directive without "%" conversion specifier. */
    #define CURL_FORMAT_CURL_OFF_T "ld"

    /* unsigned curl_off_t formatting string without "%" conversion specifier. */
    #define CURL_FORMAT_CURL_OFF_TU "lu"

    /* curl_off_t formatting string directive with "%" conversion specifier. */
    #define CURL_FORMAT_OFF_T "%ld"

    /* The size of `curl_off_t', as computed by sizeof. */
    #define CURL_SIZEOF_CURL_OFF_T 8

    /* curl_off_t constant suffix. */
    #define CURL_SUFFIX_CURL_OFF_T L

    /* unsigned curl_off_t constant suffix. */
    #define CURL_SUFFIX_CURL_OFF_TU UL

    #endif /* __CURL_CURLBUILD_H */


    So that is not the same .. however, again, I don't see a problem with curl/libcurl here.

    Also, I am using the Oracle Studio 12.3 compilers which are pretty much the very
    latest from the guys like daryl Gove and team at Oracle. Works very well with
    just about everything I build, other than gmp of course. That was always a special
    case and the gmp team are digging into that all last week.

    I will go and have another look at my php configure but I have not changed that
    since 5.4.11 which is running well.

    Dennis
  • Johannes Schlüter at Feb 25, 2013 at 4:12 pm

    On Mon, 2013-02-25 at 10:49 -0500, Dennis Clarke wrote:

    /* The size of `long', as computed by sizeof. */
    #define CURL_SIZEOF_LONG 8
    This is correct with -m64. Now in your config log there is this compiler
    call (quoting your first mail from this thread)
    configure:28678: checking for openssl support in libcurl
    configure:28705: /opt/solarisstudio12.3/bin/cc -o conftest -I/usr/local/include
    -I/usr/local/include -I/usr/local/ssl/include -I/opt/mysql/mysql/include -D_TS_E
    RRNO -D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE -D_POSIX_PTHREAD_SEMANTICS
    -D_POSIX_PTHREAD_SEMANTICS -D_REENTRANT -R/usr/ucblib -L/usr/ucblib -R/usr/loc
    al/lib -L/usr/local/lib -R/usr/local/ssl/lib -L/usr/local/ssl/lib conftest.c -lc
    url -lbz2 -lz -lrt -lm -lnsl -lsocket -lxml2 -lz -liconv -lm -lsocket -lnsl -ls
    sl -lcrypto -lcurl -lidn -lssl -lcrypto -lssl -lcrypto -lldap -lz -lrt -lsocket
    -lnsl >&5
    So the -m64 is lost. Looking at extg/curl/config.m4, again I see

    save_CFLAGS="$CFLAGS"
    CFLAGS="`$CURL_CONFIG --cflags`"

    So running `curl-config --cflags` apparently doesn't contain the -m64
    flag on your setup. In my opinion curl-config should return this, so
    there is a curl issue. I don't know whether there is a good work-around
    from PHP-side.

    johannes
  • Dennis Clarke at Feb 25, 2013 at 4:16 pm

    So the -m64 is lost. Looking at extg/curl/config.m4, again I see

    save_CFLAGS="$CFLAGS"
    CFLAGS="`$CURL_CONFIG --cflags`"

    So running `curl-config --cflags` apparently doesn't contain the -m64
    flag on your setup. In my opinion curl-config should return this, so
    there is a curl issue. I don't know whether there is a good work-around
    from PHP-side.
    good catch !

    Let me test that here :

    $ which curl-config
    /usr/local/bin/curl-config
    $ curl-config --cflags
    -I/usr/local/include


    Well that is broken beyond belief.

    yet this looks fine :

    $ curl-config --configure
    '--enable-shared' '--enable-static' '--with-libidn=/usr/local' '--enable-tls-srp' '--with-ssl' 'CC=/opt/solarisstudio12.3/bin/cc' 'CFLAGS=-errfmt=error -erroff=%none -errshort=full -xstrconst -xildoff -m64 -xmemalign=8s -xnolibmil -Xa -xcode=pic32 -xregs=no%appl -xlibmieee -mc -g -xs -ftrap=%none -Qy -xbuiltin=%none -xdebugformat=dwarf -xunroll=1 -xtarget=ultraT2 -xcache=8/16/4:4096/64/16' 'CPPFLAGS=-I/usr/local/include -I/usr/local/ssl/include -I/opt/mysql/mysql/include -D_TS_ERRNO -D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE'

    odd ... I must go take this up with the curl folks.

    I'll keep you posted if I see a good result.

    Thank you for the awesome catch there.

    Dennis
  • Dennis Clarke at Feb 25, 2013 at 4:56 pm

    On Mon, 2013-02-25 at 10:49 -0500, Dennis Clarke wrote:
    /* The size of `long', as computed by sizeof. */
    #define CURL_SIZEOF_LONG 8
    This is correct with -m64. Now in your config log there is this compiler
    call (quoting your first mail from this thread)
    configure:28678: checking for openssl support in libcurl
    configure:28705: /opt/solarisstudio12.3/bin/cc -o conftest -I/usr/local/include
    -I/usr/local/include -I/usr/local/ssl/include
    -I/opt/mysql/mysql/include -D_TS_E
    RRNO -D_POSIX_PTHREAD_SEMANTICS -D_LARGEFILE64_SOURCE -D_POSIX_PTHREAD_SEMANTICS
    -D_POSIX_PTHREAD_SEMANTICS -D_REENTRANT -R/usr/ucblib
    -L/usr/ucblib -R/usr/loc
    al/lib -L/usr/local/lib -R/usr/local/ssl/lib -L/usr/local/ssl/lib
    conftest.c -lc
    url -lbz2 -lz -lrt -lm -lnsl -lsocket -lxml2 -lz -liconv -lm
    -lsocket -lnsl -ls
    sl -lcrypto -lcurl -lidn -lssl -lcrypto -lssl -lcrypto -lldap -lz
    -lrt -lsocket
    -lnsl >&5
    So the -m64 is lost. Looking at extg/curl/config.m4, again I see

    save_CFLAGS="$CFLAGS"
    CFLAGS="`$CURL_CONFIG --cflags`"

    So running `curl-config --cflags` apparently doesn't contain the -m64
    flag on your setup. In my opinion curl-config should return this, so
    there is a curl issue. I don't know whether there is a good work-around
    from PHP-side.
    OKay, due to your keen eye I simply edited the curl-config script to do what it should :


    $ diff /usr/local/bin/curl-config.backup /usr/local/bin/curl-config
    140c140
    < echo "${CPPFLAG_CURL_STATICLIB}-I${prefix}/include"
    ---
    echo "${CPPFLAG_CURL_STATICLIB}-I${prefix}/include -errfmt=error -erroff=%none -errshort=full -xstrconst -xildoff -m64 -xmemalign=8s -xnolibmil -Xa -xcode=pic32 -xregs=no%appl -xlibmieee -mc -g -xs -ftrap=%none -Qy -xbuiltin=%none -xdebugformat=dwarf -xunroll=1 -xtarget=ultraT2 -xcache=8/16/4:4096/64/16"
    $

    $ curl-config --cflags
    -I/usr/local/include -errfmt=error -erroff=%none -errshort=full -xstrconst -xildoff -m64 -xmemalign=8s -xnolibmil -Xa -xcode=pic32 -xregs=no%appl -xlibmieee -mc -g -xs -ftrap=%none -Qy -xbuiltin=%none -xdebugformat=dwarf -xunroll=1 -xtarget=ultraT2 -xcache=8/16/4:4096/64/16
    $


    Then went back to php 5.4.12 and now configure runs fine :
    [ a few CR+LF's inserted by me for clarity on the affected extensions ]

    $ rm ../php-5.4.12_SunOS5.10_sparcv9+GD.001.cache
    $ ./configure --with-apxs2=/usr/local/bin/apxs --with-mysql=/opt/mysql/mysql \
    --with-libxml-dir=/usr/local --sysconfdir=/usr/local/etc \
    --includedir=/usr/local/include --libdir=/usr/local/lib \
    --libexecdir=/usr/local/libexec --localstatedir=/usr/local/var/php \
    --mandir=/usr/local/share/man --infodir=/usr/local/share \
    --cache-file=../php-5.4.12_SunOS5.10_sparcv9+GD.001.cache \
    --disable-debug --with-pic --with-bz2 --with-gettext --with-gmp \
    --with-iconv --with-openssl --with-zlib --enable-ftp --enable-sockets \
    --without-kerberos --enable-calendar --enable-xml --disable-json \
    --enable-posix --enable-mbstring --with-mysqli --with-jpeg-dir=/usr/local \
    --with-png-dir=/usr/local --with-zlib-dir=/usr/local \
    --with-xpm-dir=/usr/openwin/lib/sparcv9 --with-gd --with-curl \
    --with-freetype-dir=/usr/local
    configure: creating cache ../php-5.4.12_SunOS5.10_sparcv9+GD.001.cache
    checking for grep that handles long lines and -e... /usr/xpg4/bin/grep
    checking for egrep... /usr/xpg4/bin/grep -E
    checking for a sed that does not truncate output... /usr/local/bin/sed
    checking build system type... sparc-sun-solaris2.10
    checking host system type... sparc-sun-solaris2.10
    checking target system type... sparc-sun-solaris2.10
    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... no
    checking whether /opt/solarisstudio12.3/bin/cc accepts -g... yes
    checking for /opt/solarisstudio12.3/bin/cc option to accept ISO C89... none needed
    checking how to run the C preprocessor... /opt/solarisstudio12.3/bin/cc -E
    checking for icc... no
    checking for suncc... yes
    checking whether /opt/solarisstudio12.3/bin/cc and cc understand -c and -o together... yes
    checking how to run the C preprocessor... /opt/solarisstudio12.3/bin/cc -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 minix/config.h usability... no
    checking minix/config.h presence... no
    checking for minix/config.h... no
    checking whether it is safe to define __EXTENSIONS__... yes
    checking whether ln -s works... yes
    checking for system library directory... lib
    checking whether to enable runpaths... yes
    checking if compiler supports -R... yes
    checking for gawk... gawk
    checking for bison... bison -y
    checking for bison version... invalid
    configure: WARNING: bison versions supported for regeneration of the Zend/PHP parsers: 1.28 1.35 1.75 1.875 2.0 2.1 2.2 2.3 2.4 2.4.1 2.4.2 2.4.3 2.5 2.5.1 2.6 2.6.1 2.6.2 (found: 2.6.5).
    checking for re2c... re2c
    checking for re2c version... 0.13.5 (ok)
    checking whether to enable computed goto gcc extension with re2c... no
    checking whether to force non-PIC code in shared modules... no
    checking whether /dev/urandom exists... yes
    checking for pthreads_cflags...
    checking for pthreads_lib...

    Configuring SAPI modules
    checking for AOLserver support... no
    checking for Apache 1.x module support via DSO through APXS... no
    checking for Apache 1.x module support... no
    checking whether to enable Apache charset compatibility option... no
    checking for Apache 2.0 filter-module support via DSO through APXS... no
    checking for Apache 2.0 handler-module support via DSO through APXS... yes
    checking for Apache 1.x (hooks) module support via DSO through APXS... no
    checking for Apache 1.x (hooks) module support... no
    checking whether to enable Apache charset compatibility option... no
    checking for Caudium support... no
    checking for CLI build... yes
    checking for Continuity support... no
    checking for embedded SAPI library support... no
    checking for FPM build... no
    checking for Zeus ISAPI support... no
    checking for LiteSpeed support... no
    checking for Milter support... no
    checking for NSAPI support... no
    checking for PHTTPD support... no
    checking for Pi3Web support... no
    checking whether Roxen module is build using ZTS... no
    checking for Roxen/Pike support...
    checking for thttpd... no
    checking for TUX... no
    checking for webjames... no
    checking for CGI build... yes
    checking for socklen_t in sys/socket.h... yes
    checking for sun_len in sys/un.h... no
    checking whether cross-process locking is required by accept()... yes
    checking for chosen SAPI module... apache2handler
    checking for executable SAPI binaries... cli cgi

    Running system checks
    checking for sendmail... /usr/sbin/sendmail
    checking whether system uses EBCDIC... no
    checking whether byte ordering is bigendian... yes
    checking whether writing to stdout works... This is the test message -- yes
    checking for socket... no
    checking for __socket... no
    checking for socket in -lsocket... yes
    checking for socketpair... yes
    checking for htonl... yes
    checking for gethostname... yes
    checking for gethostbyaddr... no
    checking for __gethostbyaddr... no
    checking for gethostbyaddr in -lnsl... yes
    checking for yp_get_default_domain... yes
    checking for dlopen... yes
    checking for sin in -lm... yes
    checking for inet_aton... yes
    checking for ANSI C header files... (cached) yes
    checking for dirent.h that defines DIR... yes
    checking for library containing opendir... none required
    checking for inttypes.h... (cached) yes
    checking for stdint.h... (cached) yes
    checking for dirent.h... yes
    checking for ApplicationServices/ApplicationServices.h... no
    checking for sys/param.h... yes
    checking for sys/types.h... (cached) yes
    checking for sys/time.h... yes
    checking for netinet/in.h... yes
    checking for alloca.h... yes
    checking for arpa/inet.h... yes
    checking for arpa/nameser.h... yes
    checking for assert.h... yes
    checking for crypt.h... yes
    checking for dns.h... no
    checking for fcntl.h... yes
    checking for grp.h... yes
    checking for ieeefp.h... yes
    checking for langinfo.h... yes
    checking for limits.h... yes
    checking for locale.h... yes
    checking for monetary.h... yes
    checking for netdb.h... yes
    checking for pwd.h... yes
    checking for resolv.h... yes
    checking for signal.h... yes
    checking for stdarg.h... yes
    checking for stdlib.h... (cached) yes
    checking for string.h... (cached) yes
    checking for syslog.h... yes
    checking for sysexits.h... yes
    checking for sys/ioctl.h... yes
    checking for sys/file.h... yes
    checking for sys/mman.h... yes
    checking for sys/mount.h... yes
    checking for sys/poll.h... yes
    checking for sys/resource.h... yes
    checking for sys/select.h... yes
    checking for sys/socket.h... yes
    checking for sys/stat.h... (cached) yes
    checking for sys/statfs.h... yes
    checking for sys/statvfs.h... yes
    checking for sys/vfs.h... yes
    checking for sys/sysexits.h... no
    checking for sys/varargs.h... yes
    checking for sys/wait.h... yes
    checking for sys/loadavg.h... yes
    checking for termios.h... yes
    checking for unistd.h... (cached) yes
    checking for unix.h... no
    checking for utime.h... yes
    checking for sys/utsname.h... yes
    checking for sys/ipc.h... yes
    checking for dlfcn.h... yes
    checking for assert.h... (cached) yes
    checking for fopencookie... no
    checking for broken getcwd... yes
    checking for broken libc stdio... yes
    checking whether struct tm is in sys/time.h or time.h... time.h
    checking for struct tm.tm_zone... no
    checking whether tzname is declared... yes
    checking for tzname... yes
    checking for missing declarations of reentrant functions... done
    checking for fclose declaration... ok
    checking for tm_gmtoff in struct tm... no
    checking for struct flock... yes
    checking for socklen_t... yes
    checking size of size_t... 8
    checking size of long long... 8
    checking size of long long int... 8
    checking size of long... 8
    checking size of int... 4
    checking size of intmax_t... 8
    checking size of ssize_t... 8
    checking size of ptrdiff_t... 8
    checking for struct stat.st_blksize... yes
    checking for struct stat.st_blocks... yes
    checking for struct stat.st_rdev... yes
    checking for size_t... yes
    checking for uid_t in sys/types.h... yes
    checking for struct sockaddr_storage... yes
    checking for field sa_len in struct sockaddr... no
    checking for IPv6 support... yes
    checking for vprintf... yes
    checking for _doprnt... yes
    checking for alphasort... yes
    checking for asctime_r... yes
    checking for chroot... yes
    checking for ctime_r... yes
    checking for cuserid... yes
    checking for crypt... yes
    checking for flock... no
    checking for ftok... yes
    checking for funopen... no
    checking for gai_strerror... yes
    checking for gcvt... yes
    checking for getloadavg... yes
    checking for getlogin... yes
    checking for getprotobyname... yes
    checking for getprotobynumber... yes
    checking for getservbyname... yes
    checking for getservbyport... yes
    checking for gethostname... (cached) yes
    checking for getrusage... yes
    checking for gettimeofday... yes
    checking for gmtime_r... yes
    checking for getpwnam_r... yes
    checking for getgrnam_r... yes
    checking for getpwuid_r... yes
    checking for grantpt... yes
    checking for inet_ntoa... yes
    checking for inet_ntop... yes
    checking for inet_pton... yes
    checking for isascii... yes
    checking for link... yes
    checking for localtime_r... yes
    checking for lockf... yes
    checking for lchown... yes
    checking for lrand48... yes
    checking for memcpy... yes
    checking for memmove... yes
    checking for mkstemp... yes
    checking for mmap... yes
    checking for nl_langinfo... yes
    checking for perror... yes
    checking for poll... yes
    checking for ptsname... yes
    checking for putenv... yes
    checking for realpath... yes
    checking for random... yes
    checking for rand_r... yes
    checking for scandir... yes
    checking for setitimer... yes
    checking for setlocale... yes
    checking for localeconv... yes
    checking for setenv... yes
    checking for setpgid... yes
    checking for setsockopt... yes
    checking for setvbuf... yes
    checking for shutdown... yes
    checking for sin... yes
    checking for snprintf... yes
    checking for srand48... yes
    checking for srandom... yes
    checking for statfs... yes
    checking for statvfs... yes
    checking for std_syslog... no
    checking for strcasecmp... yes
    checking for strcoll... yes
    checking for strdup... yes
    checking for strerror... yes
    checking for strftime... yes
    checking for strnlen... no
    checking for strptime... yes
    checking for strstr... yes
    checking for strtok_r... yes
    checking for symlink... yes
    checking for tempnam... yes
    checking for tzset... yes
    checking for unlockpt... yes
    checking for unsetenv... yes
    checking for usleep... yes
    checking for utime... yes
    checking for vsnprintf... yes
    checking for vasprintf... yes
    checking for asprintf... yes
    checking for nanosleep... no
    checking for nanosleep in -lrt... yes
    checking for getaddrinfo... yes
    checking for __sync_fetch_and_add... no
    checking for strlcat... yes
    checking for strlcpy... yes
    checking for getopt... yes
    checking for utime.h... (cached) yes
    checking whether utime accepts a null argument... yes
    checking for working alloca.h... yes
    checking for alloca... yes
    checking for declared timezone... yes
    checking for type of reentrant time-related functions... POSIX
    checking for readdir_r... yes
    checking for type of readdir_r... POSIX
    checking for in_addr_t... yes
    checking for crypt_r... no

    General settings
    checking whether to include gcov symbols... no
    checking whether to include debugging symbols... no
    checking layout of installed files... PHP
    checking path to configuration file... DEFAULT
    checking where to scan for configuration files...
    checking whether to enable PHP's own SIGCHLD handler... no
    checking whether to explicitly link against libgcc... no
    checking whether to enable short tags by default... yes
    checking whether to enable dmalloc... no
    checking whether to enable IPv6 support... yes
    checking whether to enable DTrace support... no
    checking how big to make fd sets... using system default

    Configuring extensions
    checking size of long... (cached) 8
    checking size of int... (cached) 4
    checking for int32_t... yes
    checking for uint32_t... yes
    checking for sys/types.h... (cached) yes
    checking for inttypes.h... (cached) yes
    checking for stdint.h... (cached) yes
    checking for string.h... (cached) yes
    checking for stdlib.h... (cached) yes
    checking for strtoll... yes
    checking for atoll... yes
    checking for strftime... (cached) yes
    checking which regex library to use... php
    checking whether to enable LIBXML support... yes
    checking libxml2 install dir... /usr/local
    checking for xml2-config path... /usr/local/bin/xml2-config
    checking whether libxml build works... yes
    checking for OpenSSL support... yes
    checking for Kerberos support... no
    checking for DSA_get_default_method in -lssl... no
    checking for X509_free in -lcrypto... yes
    checking for pkg-config... /usr/bin/pkg-config
    checking for PCRE library to use... bundled
    checking whether to enable the SQLite3 extension... yes
    checking bundled sqlite3 library... yes
    checking for ZLIB support... yes
    checking if the location of ZLIB install directory is defined... /usr/local
    checking for zlib version >= 1.2.0.4... 1.2.7
    checking for gzgets in -lz... yes
    checking whether to enable bc style precision math functions... no
    checking for BZip2 support... yes
    checking for BZip2 in default path... found in /usr/local
    checking for BZ2_bzerror in -lbz2... yes
    checking whether to enable calendar conversion support... yes
    checking whether to enable ctype functions... yes



    checking for cURL support... yes
    checking if we should use cURL for url streams... no
    checking for cURL in default path... found in /usr/local
    checking for cURL 7.10.5 or greater... libcurl 7.29.0
    checking for SSL support in libcurl... yes
    checking how to run the C preprocessor... /opt/solarisstudio12.3/bin/cc -E
    checking for openssl support in libcurl... yes
    checking openssl/crypto.h usability... yes
    checking openssl/crypto.h presence... yes
    checking for openssl/crypto.h... yes
    checking for gnutls support in libcurl... no



    checking for curl_easy_perform in -lcurl... yes
    checking for curl_version_info in -lcurl... yes
    checking for curl_easy_strerror in -lcurl... yes
    checking for curl_multi_strerror in -lcurl... yes
    checking for QDBM support... no
    checking for GDBM support... no
    checking for NDBM support... no
    checking for TCADB support... no
    checking for Berkeley DB4 support... no
    checking for Berkeley DB3 support... no
    checking for Berkeley DB2 support... no
    checking for DB1 support... no
    checking for DBM support... no
    checking for CDB support... no
    checking for INI File support... no
    checking for FlatFile support... no
    checking whether to enable DBA interface... no
    checking whether to enable DOM support... yes
    checking for xml2-config path... (cached) /usr/local/bin/xml2-config
    checking whether libxml build works... (cached) yes
    checking for ENCHANT support... no
    checking whether to enable EXIF (metadata from images) support... no
    checking for fileinfo support... yes
    checking for utimes... yes
    checking for strndup... no
    checking whether to enable input filter support... yes
    checking pcre install prefix... no
    checking whether to enable FTP support... yes
    checking OpenSSL dir for FTP... no
    checking for GD support... yes
    checking for the location of libvpx... no
    checking for the location of libjpeg... /usr/local
    checking for the location of libpng... /usr/local
    checking for the location of libXpm... /usr/openwin/lib/sparcv9
    checking for FreeType 2... /usr/local
    checking for T1lib support... no
    checking whether to enable truetype string function in GD... no
    checking whether to enable JIS-mapped Japanese font support in GD... no
    checking for fabsf... yes
    checking for floorf... yes
    checking for jpeg_read_header in -ljpeg... yes
    If configure fails try --with-vpx-dir=<DIR>
    checking for png_write_image in -lpng... yes
    checking for XpmFreeXpmImage in -lXpm... yes
    checking for FT_New_Face in -lfreetype... yes
    checking for GNU gettext support... yes
    checking for bindtextdomain in -lintl... yes
    checking for ngettext in -lintl... yes
    checking for dngettext in -lintl... yes
    checking for dcngettext in -lintl... yes
    checking for bind_textdomain_codeset in -lintl... yes
    checking for GNU MP support... yes
    checking for __gmp_randinit_lc_2exp_size in -lgmp... yes
    checking for mhash support... no
    checking whether to enable hash support... yes
    checking whether byte ordering is bigendian... (cached) yes
    checking size of short... 2
    checking size of int... (cached) 4
    checking size of long... (cached) 8
    checking size of long long... (cached) 8
    checking for iconv support... yes
    checking for iconv... yes
    checking if iconv is glibc's... no
    checking if using GNU libiconv... 270yes
    checking if iconv supports errno... yes
    checking if your cpp allows macro usage in include lines... yes
    checking for IMAP support... no
    checking for IMAP Kerberos support... no
    checking for IMAP SSL support... no
    checking for InterBase support... no
    checking whether to enable internationalization support... no
    checking whether to enable JavaScript Object Serialization support... no
    checking for LDAP support... no
    checking for LDAP Cyrus SASL support... no
    checking whether to enable multibyte string support... yes
    checking whether to enable multibyte regex support... yes
    checking whether to check multibyte regex backtrack... yes
    checking for external libmbfl... no
    checking for external oniguruma... no
    checking for variable length prototypes and stdarg.h... yes
    checking for stdlib.h... (cached) yes
    checking for string.h... (cached) yes
    checking for strings.h... (cached) yes
    checking for unistd.h... (cached) yes
    checking for sys/time.h... (cached) yes
    checking sys/times.h usability... yes
    checking sys/times.h presence... yes
    checking for sys/times.h... yes
    checking for stdarg.h... (cached) yes
    checking size of int... (cached) 4
    checking size of short... (cached) 2
    checking size of long... (cached) 8
    checking for an ANSI C-conforming const... yes
    checking whether time.h and sys/time.h may both be included... yes
    checking for working alloca.h... (cached) yes
    checking for alloca... (cached) yes
    checking for working memcmp... yes
    checking for stdarg.h... (cached) yes
    checking for mcrypt support... no
    checking for MSSQL support via FreeTDS... no
    checking for MySQL support... yes
    checking for specified location of the MySQL UNIX socket... no
    checking for mysql_close in -lmysqlclient_r... yes
    checking for MySQL UNIX socket location... no
    checking for MySQLi support... yes
    checking whether to enable embedded MySQLi support... no
    checking for Oracle Database OCI8 support... no
    checking whether to enable pcntl support... no
    checking whether to enable PDO support... yes
    checking for PDO_DBLIB support via FreeTDS... no
    checking for Firebird support for PDO... no
    checking for MySQL support for PDO... no
    checking Oracle OCI support for PDO... no
    checking for ODBC v3 support for PDO... no
    checking for PostgreSQL support for PDO... no
    checking for sqlite 3 support for PDO... yes
    checking for PDO includes... checking for PDO includes... /usr/local/build/php-5.4.12_SunOS5.10_sparcv9+GD.001/ext
    checking for usleep... (cached) yes
    checking for nanosleep... (cached) yes
    checking time.h usability... yes
    checking time.h presence... yes
    checking for time.h... yes
    checking for fdatasync in -lrt... yes
    checking for PostgreSQL support... no
    checking for phar archive support... yes
    checking for phar openssl support... yes
    checking whether to enable POSIX-like functions... yes
    checking sys/mkdev.h usability... yes
    checking sys/mkdev.h presence... yes
    checking for sys/mkdev.h... yes
    checking for seteuid... yes
    checking for setegid... yes
    checking for setsid... yes
    checking for getsid... yes
    checking for setpgid... (cached) yes
    checking for getpgid... yes
    checking for ctermid... yes
    checking for mkfifo... yes
    checking for mknod... yes
    checking for getrlimit... yes
    checking for getlogin... (cached) yes
    checking for getgroups... yes
    checking for makedev... no
    checking for initgroups... yes
    checking for getpwuid_r... (cached) yes
    checking for getgrgid_r... yes
    checking for working ttyname_r() implementation... no, posix_ttyname() will be thread-unsafe
    checking for utsname.domainname... no
    checking for PSPELL support... no
    checking for libedit readline replacement... no
    checking for readline support... no
    checking for recode support... no
    checking whether to enable PHP sessions... yes
    checking for mm support... no
    checking whether pwrite works... yes
    checking whether pread works... yes
    checking whether to enable shmop support... no
    checking whether to enable SimpleXML support... yes
    checking for xml2-config path... (cached) /usr/local/bin/xml2-config
    checking whether libxml build works... (cached) yes
    checking for SNMP support... no
    checking OpenSSL dir for SNMP... no
    checking whether to enable SOAP support... no
    checking whether to enable sockets support... yes
    checking for struct cmsghdr... yes
    checking for hstrerror... no
    checking for socketpair... (cached) yes
    checking for if_nametoindex... yes
    checking for if_indextoname... yes
    checking for netdb.h... (cached) yes
    checking netinet/tcp.h usability... yes
    checking netinet/tcp.h presence... yes
    checking for netinet/tcp.h... yes
    checking sys/un.h usability... yes
    checking sys/un.h presence... yes
    checking for sys/un.h... yes
    checking sys/sockio.h usability... yes
    checking sys/sockio.h presence... yes
    checking for sys/sockio.h... yes
    checking errno.h usability... yes
    checking errno.h presence... yes
    checking for errno.h... yes
    checking for field ss_family in struct sockaddr_storage... yes
    checking whether zend_object_value is packed... no
    checking whether flush should be called explicitly after a buffered io... yes
    checking for standard DES crypt... yes
    checking for extended DES crypt... no
    checking for MD5 crypt... yes
    checking for Blowfish crypt... yes
    checking for SHA512 crypt... no
    checking for SHA256 crypt... no
    checking whether the compiler supports __alignof__... yes
    checking whether the compiler supports aligned attribute... yes
    checking for getcwd... yes
    checking for getwd... yes
    checking for asinh... yes
    checking for acosh... yes
    checking for atanh... yes
    checking for log1p... yes
    checking for hypot... yes
    checking for glob... yes
    checking for strfmon... yes
    checking for nice... yes
    checking for fpclass... yes
    checking for isinf... no
    checking for isnan... yes
    checking for mempcpy... no
    checking for strpncpy... no
    checking for working POSIX fnmatch... yes
    checking for fork... yes
    checking if your OS can spawn processes with inherited handles... yes
    checking for res_nsearch... no
    checking for __res_nsearch... no
    checking for res_nsearch in -lresolv... yes
    checking for dns_search... no
    checking for __dns_search... no
    checking for dns_search in -lresolv... no
    checking for __dns_search in -lresolv... no
    checking for dns_search in -lbind... no
    checking for __dns_search in -lbind... no
    checking for dns_search in -lsocket... no
    checking for __dns_search in -lsocket... no
    checking for dn_expand... yes
    checking for dn_skipname... yes
    checking for res_search... yes
    checking whether atof() accepts NAN... yes
    checking whether atof() accepts INF... no
    checking whether HUGE_VAL == INF... yes
    checking whether HUGE_VAL + -HUGEVAL == NAN... yes
    checking whether strptime() declaration fails... yes
    checking wchar.h usability... yes
    checking wchar.h presence... yes
    checking for wchar.h... yes
    checking for mblen... yes
    checking for mbrlen... yes
    checking for mbsinit... yes
    checking for mbstate_t... no
    checking atomic.h usability... yes
    checking atomic.h presence... yes
    checking for atomic.h... yes
    checking for Sybase-CT support... no
    checking whether to enable System V IPC support... no
    checking whether to enable System V semaphore support... no
    checking whether to enable System V shared memory support... no
    checking for TIDY support... no
    checking whether to enable tokenizer support... yes
    checking whether to enable WDDX support... no
    checking libexpat dir for WDDX... no
    checking whether to enable XML support... yes
    checking libexpat install dir... no
    checking for xml2-config path... (cached) /usr/local/bin/xml2-config
    checking whether libxml build works... (cached) yes
    checking whether to enable XMLReader support... yes
    checking for xml2-config path... (cached) /usr/local/bin/xml2-config
    checking whether libxml build works... (cached) yes
    checking for XMLRPC-EPI support... no
    checking libexpat dir for XMLRPC-EPI... no
    checking iconv dir for XMLRPC-EPI... no
    checking whether to enable XMLWriter support... yes
    checking for xml2-config path... (cached) /usr/local/bin/xml2-config
    checking whether libxml build works... (cached) yes
    checking for XSL support... no
    checking for zip archive read/writesupport... no
    checking pcre install prefix... no
    checking whether to enable mysqlnd... no
    checking whether to disable compressed protocol support in mysqlnd... yes
    checking whether int8 exists... no
    checking whether uint8 exists... no
    checking whether int16 exists... no
    checking whether uint16 exists... no
    checking whether int32 exists... no
    checking whether uint32 exists... no
    checking whether uchar exists... no
    checking whether ulong exists... yes
    checking whether int8_t exists... yes
    checking whether uint8_t exists... yes
    checking whether int16_t exists... yes
    checking whether uint16_t exists... yes
    checking whether int32_t exists... yes
    checking whether uint32_t exists... yes
    checking whether int64_t exists... yes
    checking whether uint64_t exists... yes

    Configuring PEAR
    checking whether to install PEAR... yes

    Configuring Zend
    checking for bison version... (cached) invalid
    configure: WARNING: bison versions supported for regeneration of the Zend/PHP parsers: 1.28 1.35 1.75 1.875 2.0 2.1 2.2 2.3 2.4 2.4.1 2.4.2 2.4.3 2.5 2.5.1 2.6 2.6.1 2.6.2 (found: none).
    checking for inttypes.h... (cached) yes
    checking for stdint.h... (cached) yes
    checking for limits.h... (cached) yes
    checking malloc.h usability... yes
    checking malloc.h presence... yes
    checking for malloc.h... yes
    checking for string.h... (cached) yes
    checking for unistd.h... (cached) yes
    checking for stdarg.h... (cached) yes
    checking for sys/types.h... (cached) yes
    checking for sys/time.h... (cached) yes
    checking for signal.h... (cached) yes
    checking for unix.h... (cached) no
    checking for stdlib.h... (cached) yes
    checking for dlfcn.h... (cached) yes
    checking for size_t... (cached) yes
    checking return type of signal handlers... void
    checking for uint... yes
    checking for ulong... yes
    checking for int32_t... yes
    checking for uint32_t... yes
    checking for vprintf... (cached) yes
    checking for _doprnt... (cached) yes
    checking for working memcmp... (cached) yes
    checking for working alloca.h... (cached) yes
    checking for alloca... (cached) yes
    checking for memcpy... (cached) yes
    checking for strdup... (cached) yes
    checking for getpid... yes
    checking for kill... yes
    checking for strtod... yes
    checking for strtol... yes
    checking for finite... yes
    checking for fpclass... (cached) yes
    checking for sigsetjmp... yes
    checking whether sprintf is broken... no
    checking for finite... (cached) yes
    checking for isfinite... no
    checking for isinf... (cached) no
    checking for isnan... (cached) yes
    checking whether fp_except is defined... no
    checking for usable _FPU_SETCW... no
    checking for usable fpsetprec... no
    checking for usable _controlfp... no
    checking for usable _controlfp_s... no
    checking whether FPU control word can be manipulated by inline assembler... no
    checking whether double cast to long preserves least significant bits... no
    checking for dlfcn.h... (cached) yes
    checking whether dlsym() requires a leading underscore in symbol names... no
    checking virtual machine dispatch method... CALL
    checking whether to enable thread-safety... yes
    checking whether to enable inline optimization for GCC... yes
    checking whether to enable Zend debugging... no
    checking for inline... inline
    checking target system is Darwin... no
    checking for MM alignment and log values... done
    checking for memory allocation using mmap(MAP_ANON)... yes
    checking for memory allocation using mmap("/dev/zero")... yes
    checking for mremap... no
    checking for sigaction... yes
    checking whether to enable zend signal handling... no

    Configuring TSRM
    checking for stdarg.h... (cached) yes
    checking for sigprocmask... yes
    checking for pthreads_cflags... (cached)
    checking for pthreads_lib... (cached)
    checking for POSIX threads... yes

    Configuring libtool
    checking for non-GNU ld... /usr/ccs/bin/sparcv9/ld
    checking if the linker (/usr/ccs/bin/sparcv9/ld) is GNU ld... no
    checking for /usr/ccs/bin/sparcv9/ld option to reload object files... -r
    checking for BSD-compatible nm... /usr/ccs/bin/sparcv9/nm -p
    checking how to recognize dependent libraries... pass_all
    checking how to run the C++ preprocessor... /opt/solarisstudio12.3/bin/CC -E
    checking the maximum length of command line arguments... 786240
    checking command to parse /usr/ccs/bin/sparcv9/nm -p output from /opt/solarisstudio12.3/bin/cc object... ok
    checking for objdir... .libs
    checking for ar... /usr/ccs/bin/ar
    checking for ranlib... ranlib
    checking for strip... strip
    checking for /opt/solarisstudio12.3/bin/cc option to produce PIC... -KPIC
    checking if /opt/solarisstudio12.3/bin/cc PIC flag -KPIC works... yes
    checking if /opt/solarisstudio12.3/bin/cc static flag -Bstatic works... yes
    checking if /opt/solarisstudio12.3/bin/cc supports -c -o file.o... yes
    checking whether the /opt/solarisstudio12.3/bin/cc linker (/usr/ccs/bin/sparcv9/ld -64) supports shared libraries... yes
    checking dynamic linker characteristics... solaris2.10 ld.so
    checking how to hardcode library paths into programs... immediate
    checking whether stripping libraries is possible... no
    checking if libtool supports shared libraries... yes
    checking whether to build shared libraries... yes
    checking whether to build static libraries... no

    creating libtool
    appending configuration tag "CXX" to libtool
    checking whether the /opt/solarisstudio12.3/bin/CC linker (/usr/ccs/bin/sparcv9/ld -64) supports shared libraries... yes
    checking for /opt/solarisstudio12.3/bin/CC option to produce PIC... -KPIC
    checking if /opt/solarisstudio12.3/bin/CC PIC flag -KPIC works... yes
    checking if /opt/solarisstudio12.3/bin/CC static flag -Bstatic works... yes
    checking if /opt/solarisstudio12.3/bin/CC supports -c -o file.o... yes
    checking whether the /opt/solarisstudio12.3/bin/CC linker (/usr/ccs/bin/sparcv9/ld -64) supports shared libraries... yes
    checking dynamic linker characteristics... solaris2.10 ld.so
    (cached) (cached) checking how to hardcode library paths into programs... immediate

    Generating files
    configure: updating cache ../php-5.4.12_SunOS5.10_sparcv9+GD.001.cache
    configure: creating ./config.status
    creating main/internal_functions.c
    creating main/internal_functions_cli.c
    +--------------------------------------------------------------------+
    License: |
    This software is subject to the PHP License, available in this |
    distribution in the file LICENSE. By continuing this installation |
    process, you are bound by the terms of this license agreement. |
    If you do not agree with the terms of this license, you must abort |
    the installation process at this point. |
    +--------------------------------------------------------------------+

    Thank you for using PHP.

    config.status: creating php5.spec
    config.status: creating main/build-defs.h
    config.status: creating scripts/phpize
    config.status: creating scripts/man1/phpize.1
    config.status: creating scripts/php-config
    config.status: creating scripts/man1/php-config.1
    config.status: creating sapi/cli/php.1
    config.status: creating main/php_config.h
    config.status: main/php_config.h is unchanged
    config.status: executing default commands
    $

    I already have a mail into the curl folks on this :

    http://curl.haxx.se/mail/lib-2013-02/0358.html

    So I will now go back and see if I need to rebuild curl/libcurl and perhaps patch something there and then come back to php.

    dc
  • Pierre Joye at Feb 25, 2013 at 6:35 pm
    hi,
    On Mon, Feb 25, 2013 at 7:58 AM, Dennis Clarke wrote:

    configure in php 5.4.12 seems to have some difficulty with libcurl 7.29.0 :

    $ ./configure --with-apxs2=/usr/local/bin/apxs --with-mysql=/opt/mysql/mysql \
    Also we had no issue to build against 7.29.0 on windows and linux.

    However one should wait for the next release, there is 2 BC breaks in
    this version, if you rely on the multi interface and non default
    backed for DNS resolutions.

    Cheers,
    --
    Pierre

    @pierrejoye
  • Dennis Clarke at Feb 25, 2013 at 6:40 pm

    hi,
    On Mon, Feb 25, 2013 at 7:58 AM, Dennis Clarke wrote:

    configure in php 5.4.12 seems to have some difficulty with libcurl 7.29.0 :
    $ ./configure --with-apxs2=/usr/local/bin/apxs
    --with-mysql=/opt/mysql/mysql \

    Also we had no issue to build against 7.29.0 on windows and linux.
    I had not yet tried either. Was going to get to a RHEL6 server but just got
    hung up in Solaris.
    However one should wait for the next release, there is 2 BC breaks in
    this version, if you rely on the multi interface and non default
    backed for DNS resolutions.
    * sigh *

    There always seems to be another release around the corner. Not sure what those
    2 BC breaks are ... either of them related to curl-config ?

    dc
  • Pierre Joye at Feb 25, 2013 at 6:46 pm
    hi,
    On Mon, Feb 25, 2013 at 7:40 PM, Dennis Clarke wrote:
    However one should wait for the next release, there is 2 BC breaks in
    this version, if you rely on the multi interface and non default
    backed for DNS resolutions.
    * sigh *

    There always seems to be another release around the corner.
    They do monthly or bi monthly releases, good practice :)
    Not sure what those
    2 BC breaks are ... either of them related to curl-config ?
    quoting myself:

    " there is 2 BC breaks in this version, if you rely on the multi
    interface and non default
    backed for DNS resolutions."

    So no, but to runtime code if you use curl_multi or c-ares&co as DNS
    resolutions backend.

    Cheers,

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
groupphp-internals @
categoriesphp
postedFeb 25, '13 at 6:59a
activeFeb 25, '13 at 6:46p
posts12
users3
websitephp.net

People

Translate

site design / logo © 2023 Grokbase