Menu

#1217 Linkage problem of libcurl.la introduced between 7.28.1 and 7.29.0

closed-fixed
4
2015-03-02
2013-04-18
No

I am trying to build curl on Solaris 10 x86 with Sun Studio 12. This went fine up to the 7.28.1 tarball. The 7.29.0 tarball throws a linkage error on compilation.

I compile with

PKG_CONFIG_PATH=/opt/csw/lib/pkgconfig \
CC=/opt/SUNWspro/bin/cc \
./configure --prefix=/opt/csw && gmake

and get on 7.29.0 the following error

/bin/bash ../libtool --tag=CC   --mode=link /opt/SUNWspro/bin/cc  -xldscope=hidden -s -xO2   -version-info 7:0:3   -lidn -lrtmp -lssh2 -lssl -lcrypto -lssl -lcrypto -lldap -lz -lrt -lsocket -lnsl -L/opt/csw/lib -o libcurl.la -rpath /opt/csw/lib libcurl_la-file.lo libcurl_la-timeval.lo libcurl_la-base64.lo libcurl_la-hostip.lo libcurl_la-progress.lo libcurl_la-formdata.lo libcurl_la-cookie.lo libcurl_la-http.lo libcurl_la-sendf.lo libcurl_la-ftp.lo libcurl_la-url.lo libcurl_la-dict.lo libcurl_la-if2ip.lo libcurl_la-speedcheck.lo libcurl_la-ldap.lo libcurl_la-ssluse.lo libcurl_la-version.lo libcurl_la-getenv.lo libcurl_la-escape.lo libcurl_la-mprintf.lo libcurl_la-telnet.lo libcurl_la-netrc.lo libcurl_la-getinfo.lo libcurl_la-transfer.lo libcurl_la-strequal.lo libcurl_la-easy.lo libcurl_la-security.lo libcurl_la-krb4.lo libcurl_la-curl_fnmatch.lo libcurl_la-fileinfo.lo libcurl_la-ftplistparser.lo libcurl_la-wildcard.lo libcurl_la-krb5.lo libcurl_la-memdebug.lo libcurl_la-http_chunks.lo libcurl_la-strtok.lo libcurl_la-connect.lo libcurl_la-llist.lo libcurl_la-hash.lo libcurl_la-multi.lo libcurl_la-content_encoding.lo libcurl_la-share.lo libcurl_la-http_digest.lo libcurl_la-md4.lo libcurl_la-md5.lo libcurl_la-curl_rand.lo libcurl_la-http_negotiate.lo libcurl_la-inet_pton.lo libcurl_la-strtoofft.lo libcurl_la-strerror.lo libcurl_la-amigaos.lo libcurl_la-hostasyn.lo libcurl_la-hostip4.lo libcurl_la-hostip6.lo libcurl_la-hostsyn.lo libcurl_la-inet_ntop.lo libcurl_la-parsedate.lo libcurl_la-select.lo libcurl_la-gtls.lo libcurl_la-sslgen.lo libcurl_la-tftp.lo libcurl_la-splay.lo libcurl_la-strdup.lo libcurl_la-socks.lo libcurl_la-ssh.lo libcurl_la-nss.lo libcurl_la-qssl.lo libcurl_la-rawstr.lo libcurl_la-curl_addrinfo.lo libcurl_la-socks_gssapi.lo libcurl_la-socks_sspi.lo libcurl_la-curl_sspi.lo libcurl_la-slist.lo libcurl_la-nonblock.lo libcurl_la-curl_memrchr.lo libcurl_la-imap.lo libcurl_la-pop3.lo libcurl_la-smtp.lo libcurl_la-pingpong.lo libcurl_la-rtsp.lo libcurl_la-curl_threads.lo libcurl_la-warnless.lo libcurl_la-hmac.lo libcurl_la-polarssl.lo libcurl_la-curl_rtmp.lo libcurl_la-openldap.lo libcurl_la-curl_gethostname.lo libcurl_la-gopher.lo libcurl_la-axtls.lo libcurl_la-idn_win32.lo libcurl_la-http_negotiate_sspi.lo libcurl_la-cyassl.lo libcurl_la-http_proxy.lo libcurl_la-non-ascii.lo libcurl_la-asyn-ares.lo libcurl_la-asyn-thread.lo libcurl_la-curl_gssapi.lo libcurl_la-curl_ntlm.lo libcurl_la-curl_ntlm_wb.lo libcurl_la-curl_ntlm_core.lo libcurl_la-curl_ntlm_msgs.lo libcurl_la-curl_sasl.lo libcurl_la-curl_schannel.lo libcurl_la-curl_multibyte.lo libcurl_la-curl_darwinssl.lo libcurl_la-hostcheck.lo libcurl_la-bundles.lo libcurl_la-conncache.lo   
libtool: link: /opt/SUNWspro/bin/cc -G -h libcurl.so.4 -o .libs/libcurl.so.4.3.0  .libs/libcurl_la-file.o .libs/libcurl_la-timeval.o .libs/libcurl_la-base64.o .libs/libcurl_la-hostip.o .libs/libcurl_la-progress.o .libs/libcurl_la-formdata.o .libs/libcurl_la-cookie.o .libs/libcurl_la-http.o .libs/libcurl_la-sendf.o .libs/libcurl_la-ftp.o .libs/libcurl_la-url.o .libs/libcurl_la-dict.o .libs/libcurl_la-if2ip.o .libs/libcurl_la-speedcheck.o .libs/libcurl_la-ldap.o .libs/libcurl_la-ssluse.o .libs/libcurl_la-version.o .libs/libcurl_la-getenv.o .libs/libcurl_la-escape.o .libs/libcurl_la-mprintf.o .libs/libcurl_la-telnet.o .libs/libcurl_la-netrc.o .libs/libcurl_la-getinfo.o .libs/libcurl_la-transfer.o .libs/libcurl_la-strequal.o .libs/libcurl_la-easy.o .libs/libcurl_la-security.o .libs/libcurl_la-krb4.o .libs/libcurl_la-curl_fnmatch.o .libs/libcurl_la-fileinfo.o .libs/libcurl_la-ftplistparser.o .libs/libcurl_la-wildcard.o .libs/libcurl_la-krb5.o .libs/libcurl_la-memdebug.o .libs/libcurl_la-http_chunks.o .libs/libcurl_la-strtok.o .libs/libcurl_la-connect.o .libs/libcurl_la-llist.o .libs/libcurl_la-hash.o .libs/libcurl_la-multi.o .libs/libcurl_la-content_encoding.o .libs/libcurl_la-share.o .libs/libcurl_la-http_digest.o .libs/libcurl_la-md4.o .libs/libcurl_la-md5.o .libs/libcurl_la-curl_rand.o .libs/libcurl_la-http_negotiate.o .libs/libcurl_la-inet_pton.o .libs/libcurl_la-strtoofft.o .libs/libcurl_la-strerror.o .libs/libcurl_la-amigaos.o .libs/libcurl_la-hostasyn.o .libs/libcurl_la-hostip4.o .libs/libcurl_la-hostip6.o .libs/libcurl_la-hostsyn.o .libs/libcurl_la-inet_ntop.o .libs/libcurl_la-parsedate.o .libs/libcurl_la-select.o .libs/libcurl_la-gtls.o .libs/libcurl_la-sslgen.o .libs/libcurl_la-tftp.o .libs/libcurl_la-splay.o .libs/libcurl_la-strdup.o .libs/libcurl_la-socks.o .libs/libcurl_la-ssh.o .libs/libcurl_la-nss.o .libs/libcurl_la-qssl.o .libs/libcurl_la-rawstr.o .libs/libcurl_la-curl_addrinfo.o .libs/libcurl_la-socks_gssapi.o .libs/libcurl_la-socks_sspi.o .libs/libcurl_la-curl_sspi.o .libs/libcurl_la-slist.o .libs/libcurl_la-nonblock.o .libs/libcurl_la-curl_memrchr.o .libs/libcurl_la-imap.o .libs/libcurl_la-pop3.o .libs/libcurl_la-smtp.o .libs/libcurl_la-pingpong.o .libs/libcurl_la-rtsp.o .libs/libcurl_la-curl_threads.o .libs/libcurl_la-warnless.o .libs/libcurl_la-hmac.o .libs/libcurl_la-polarssl.o .libs/libcurl_la-curl_rtmp.o .libs/libcurl_la-openldap.o .libs/libcurl_la-curl_gethostname.o .libs/libcurl_la-gopher.o .libs/libcurl_la-axtls.o .libs/libcurl_la-idn_win32.o .libs/libcurl_la-http_negotiate_sspi.o .libs/libcurl_la-cyassl.o .libs/libcurl_la-http_proxy.o .libs/libcurl_la-non-ascii.o .libs/libcurl_la-asyn-ares.o .libs/libcurl_la-asyn-thread.o .libs/libcurl_la-curl_gssapi.o .libs/libcurl_la-curl_ntlm.o .libs/libcurl_la-curl_ntlm_wb.o .libs/libcurl_la-curl_ntlm_core.o .libs/libcurl_la-curl_ntlm_msgs.o .libs/libcurl_la-curl_sasl.o .libs/libcurl_la-curl_schannel.o .libs/libcurl_la-curl_multibyte.o .libs/libcurl_la-curl_darwinssl.o .libs/libcurl_la-hostcheck.o .libs/libcurl_la-bundles.o .libs/libcurl_la-conncache.o   -lidn -lrtmp -lssh2 -lssl -lcrypto -lldap -lz -lrt -lsocket -lnsl -L/opt/csw/lib -lc   
ld: fatal: library -lidn: not found
ld: fatal: library -lrtmp: not found
ld: fatal: library -lssh2: not found
ld: fatal: library -lssl: not found
ld: fatal: library -lcrypto: not found

Please note that the necessary -L/opt/csw/lib comes after the -lidn -lrtmp -lssh2 -lssl ....

The working compilation on 7.28.1 looked like this:

/bin/bash ../libtool --tag=CC --mode=link /opt/SUNWspro/bin/cc  -s -xO2   -L/opt/csw/lib -o libcurl.la -rpath /opt/csw/lib  -version-info 7:0:3   -lidn -lssh2 -lssl -lcrypto -lldap -lrt -lsocket -lnsl -lssl -lcrypto -lz -lrtmp libcurl_la-file.lo libcurl_la-timeval.lo libcurl_la-base64.lo libcurl_la-hostip.lo libcurl_la-progress.lo libcurl_la-formdata.lo libcurl_la-cookie.lo libcurl_la-http.lo libcurl_la-sendf.lo libcurl_la-ftp.lo libcurl_la-url.lo libcurl_la-dict.lo libcurl_la-if2ip.lo libcurl_la-speedcheck.lo libcurl_la-ldap.lo libcurl_la-ssluse.lo libcurl_la-version.lo libcurl_la-getenv.lo libcurl_la-escape.lo libcurl_la-mprintf.lo libcurl_la-telnet.lo libcurl_la-netrc.lo libcurl_la-getinfo.lo libcurl_la-transfer.lo libcurl_la-strequal.lo libcurl_la-easy.lo libcurl_la-security.lo libcurl_la-krb4.lo libcurl_la-curl_fnmatch.lo libcurl_la-fileinfo.lo libcurl_la-ftplistparser.lo libcurl_la-wildcard.lo libcurl_la-krb5.lo libcurl_la-memdebug.lo libcurl_la-http_chunks.lo libcurl_la-strtok.lo libcurl_la-connect.lo libcurl_la-llist.lo libcurl_la-hash.lo libcurl_la-multi.lo libcurl_la-content_encoding.lo libcurl_la-share.lo libcurl_la-http_digest.lo libcurl_la-md4.lo libcurl_la-md5.lo libcurl_la-curl_rand.lo libcurl_la-http_negotiate.lo libcurl_la-inet_pton.lo libcurl_la-strtoofft.lo libcurl_la-strerror.lo libcurl_la-amigaos.lo libcurl_la-hostasyn.lo libcurl_la-hostip4.lo libcurl_la-hostip6.lo libcurl_la-hostsyn.lo libcurl_la-inet_ntop.lo libcurl_la-parsedate.lo libcurl_la-select.lo libcurl_la-gtls.lo libcurl_la-sslgen.lo libcurl_la-tftp.lo libcurl_la-splay.lo libcurl_la-strdup.lo libcurl_la-socks.lo libcurl_la-ssh.lo libcurl_la-nss.lo libcurl_la-qssl.lo libcurl_la-rawstr.lo libcurl_la-curl_addrinfo.lo libcurl_la-socks_gssapi.lo libcurl_la-socks_sspi.lo libcurl_la-curl_sspi.lo libcurl_la-slist.lo libcurl_la-nonblock.lo libcurl_la-curl_memrchr.lo libcurl_la-imap.lo libcurl_la-pop3.lo libcurl_la-smtp.lo libcurl_la-pingpong.lo libcurl_la-rtsp.lo libcurl_la-curl_threads.lo libcurl_la-warnless.lo libcurl_la-hmac.lo libcurl_la-polarssl.lo libcurl_la-curl_rtmp.lo libcurl_la-openldap.lo libcurl_la-curl_gethostname.lo libcurl_la-gopher.lo libcurl_la-axtls.lo libcurl_la-idn_win32.lo libcurl_la-http_negotiate_sspi.lo libcurl_la-cyassl.lo libcurl_la-http_proxy.lo libcurl_la-non-ascii.lo libcurl_la-asyn-ares.lo libcurl_la-asyn-thread.lo libcurl_la-curl_gssapi.lo libcurl_la-curl_ntlm.lo libcurl_la-curl_ntlm_wb.lo libcurl_la-curl_ntlm_core.lo libcurl_la-curl_ntlm_msgs.lo libcurl_la-curl_sasl.lo libcurl_la-curl_schannel.lo libcurl_la-curl_multibyte.lo libcurl_la-curl_darwinssl.lo libcurl_la-hostcheck.lo   
libtool: link: /opt/SUNWspro/bin/cc -G -h libcurl.so.4 -o .libs/libcurl.so.4.3.0  .libs/libcurl_la-file.o .libs/libcurl_la-timeval.o .libs/libcurl_la-base64.o .libs/libcurl_la-hostip.o .libs/libcurl_la-progress.o .libs/libcurl_la-formdata.o .libs/libcurl_la-cookie.o .libs/libcurl_la-http.o .libs/libcurl_la-sendf.o .libs/libcurl_la-ftp.o .libs/libcurl_la-url.o .libs/libcurl_la-dict.o .libs/libcurl_la-if2ip.o .libs/libcurl_la-speedcheck.o .libs/libcurl_la-ldap.o .libs/libcurl_la-ssluse.o .libs/libcurl_la-version.o .libs/libcurl_la-getenv.o .libs/libcurl_la-escape.o .libs/libcurl_la-mprintf.o .libs/libcurl_la-telnet.o .libs/libcurl_la-netrc.o .libs/libcurl_la-getinfo.o .libs/libcurl_la-transfer.o .libs/libcurl_la-strequal.o .libs/libcurl_la-easy.o .libs/libcurl_la-security.o .libs/libcurl_la-krb4.o .libs/libcurl_la-curl_fnmatch.o .libs/libcurl_la-fileinfo.o .libs/libcurl_la-ftplistparser.o .libs/libcurl_la-wildcard.o .libs/libcurl_la-krb5.o .libs/libcurl_la-memdebug.o .libs/libcurl_la-http_chunks.o .libs/libcurl_la-strtok.o .libs/libcurl_la-connect.o .libs/libcurl_la-llist.o .libs/libcurl_la-hash.o .libs/libcurl_la-multi.o .libs/libcurl_la-content_encoding.o .libs/libcurl_la-share.o .libs/libcurl_la-http_digest.o .libs/libcurl_la-md4.o .libs/libcurl_la-md5.o .libs/libcurl_la-curl_rand.o .libs/libcurl_la-http_negotiate.o .libs/libcurl_la-inet_pton.o .libs/libcurl_la-strtoofft.o .libs/libcurl_la-strerror.o .libs/libcurl_la-amigaos.o .libs/libcurl_la-hostasyn.o .libs/libcurl_la-hostip4.o .libs/libcurl_la-hostip6.o .libs/libcurl_la-hostsyn.o .libs/libcurl_la-inet_ntop.o .libs/libcurl_la-parsedate.o .libs/libcurl_la-select.o .libs/libcurl_la-gtls.o .libs/libcurl_la-sslgen.o .libs/libcurl_la-tftp.o .libs/libcurl_la-splay.o .libs/libcurl_la-strdup.o .libs/libcurl_la-socks.o .libs/libcurl_la-ssh.o .libs/libcurl_la-nss.o .libs/libcurl_la-qssl.o .libs/libcurl_la-rawstr.o .libs/libcurl_la-curl_addrinfo.o .libs/libcurl_la-socks_gssapi.o .libs/libcurl_la-socks_sspi.o .libs/libcurl_la-curl_sspi.o .libs/libcurl_la-slist.o .libs/libcurl_la-nonblock.o .libs/libcurl_la-curl_memrchr.o .libs/libcurl_la-imap.o .libs/libcurl_la-pop3.o .libs/libcurl_la-smtp.o .libs/libcurl_la-pingpong.o .libs/libcurl_la-rtsp.o .libs/libcurl_la-curl_threads.o .libs/libcurl_la-warnless.o .libs/libcurl_la-hmac.o .libs/libcurl_la-polarssl.o .libs/libcurl_la-curl_rtmp.o .libs/libcurl_la-openldap.o .libs/libcurl_la-curl_gethostname.o .libs/libcurl_la-gopher.o .libs/libcurl_la-axtls.o .libs/libcurl_la-idn_win32.o .libs/libcurl_la-http_negotiate_sspi.o .libs/libcurl_la-cyassl.o .libs/libcurl_la-http_proxy.o .libs/libcurl_la-non-ascii.o .libs/libcurl_la-asyn-ares.o .libs/libcurl_la-asyn-thread.o .libs/libcurl_la-curl_gssapi.o .libs/libcurl_la-curl_ntlm.o .libs/libcurl_la-curl_ntlm_wb.o .libs/libcurl_la-curl_ntlm_core.o .libs/libcurl_la-curl_ntlm_msgs.o .libs/libcurl_la-curl_sasl.o .libs/libcurl_la-curl_schannel.o .libs/libcurl_la-curl_multibyte.o .libs/libcurl_la-curl_darwinssl.o .libs/libcurl_la-hostcheck.o   -L/opt/csw/lib -lidn -lssh2 -lldap -lrt -lsocket -lnsl -lssl -lcrypto -lz -lrtmp -lc   
libtool: link: (cd ".libs" && rm -f "libcurl.so.4" && ln -s "libcurl.so.4.3.0" "libcurl.so.4")
libtool: link: (cd ".libs" && rm -f "libcurl.so" && ln -s "libcurl.so.4.3.0" "libcurl.so")
libtool: link: /usr/ccs/bin/ar cru .libs/libcurl.a  libcurl_la-file.o libcurl_la-timeval.o libcurl_la-base64.o libcurl_la-hostip.o libcurl_la-progress.o libcurl_la-formdata.o libcurl_la-cookie.o libcurl_la-http.o libcurl_la-sendf.o libcurl_la-ftp.o libcurl_la-url.o libcurl_la-dict.o libcurl_la-if2ip.o libcurl_la-speedcheck.o libcurl_la-ldap.o libcurl_la-ssluse.o libcurl_la-version.o libcurl_la-getenv.o libcurl_la-escape.o libcurl_la-mprintf.o libcurl_la-telnet.o libcurl_la-netrc.o libcurl_la-getinfo.o libcurl_la-transfer.o libcurl_la-strequal.o libcurl_la-easy.o libcurl_la-security.o libcurl_la-krb4.o libcurl_la-curl_fnmatch.o libcurl_la-fileinfo.o libcurl_la-ftplistparser.o libcurl_la-wildcard.o libcurl_la-krb5.o libcurl_la-memdebug.o libcurl_la-http_chunks.o libcurl_la-strtok.o libcurl_la-connect.o libcurl_la-llist.o libcurl_la-hash.o libcurl_la-multi.o libcurl_la-content_encoding.o libcurl_la-share.o libcurl_la-http_digest.o libcurl_la-md4.o libcurl_la-md5.o libcurl_la-curl_rand.o libcurl_la-http_negotiate.o libcurl_la-inet_pton.o libcurl_la-strtoofft.o libcurl_la-strerror.o libcurl_la-amigaos.o libcurl_la-hostasyn.o libcurl_la-hostip4.o libcurl_la-hostip6.o libcurl_la-hostsyn.o libcurl_la-inet_ntop.o libcurl_la-parsedate.o libcurl_la-select.o libcurl_la-gtls.o libcurl_la-sslgen.o libcurl_la-tftp.o libcurl_la-splay.o libcurl_la-strdup.o libcurl_la-socks.o libcurl_la-ssh.o libcurl_la-nss.o libcurl_la-qssl.o libcurl_la-rawstr.o libcurl_la-curl_addrinfo.o libcurl_la-socks_gssapi.o libcurl_la-socks_sspi.o libcurl_la-curl_sspi.o libcurl_la-slist.o libcurl_la-nonblock.o libcurl_la-curl_memrchr.o libcurl_la-imap.o libcurl_la-pop3.o libcurl_la-smtp.o libcurl_la-pingpong.o libcurl_la-rtsp.o libcurl_la-curl_threads.o libcurl_la-warnless.o libcurl_la-hmac.o libcurl_la-polarssl.o libcurl_la-curl_rtmp.o libcurl_la-openldap.o libcurl_la-curl_gethostname.o libcurl_la-gopher.o libcurl_la-axtls.o libcurl_la-idn_win32.o libcurl_la-http_negotiate_sspi.o libcurl_la-cyassl.o libcurl_la-http_proxy.o libcurl_la-non-ascii.o libcurl_la-asyn-ares.o libcurl_la-asyn-thread.o libcurl_la-curl_gssapi.o libcurl_la-curl_ntlm.o libcurl_la-curl_ntlm_wb.o libcurl_la-curl_ntlm_core.o libcurl_la-curl_ntlm_msgs.o libcurl_la-curl_sasl.o libcurl_la-curl_schannel.o libcurl_la-curl_multibyte.o libcurl_la-curl_darwinssl.o libcurl_la-hostcheck.o
libtool: link: ranlib .libs/libcurl.a
libtool: link: ( cd ".libs" && rm -f "libcurl.la" && ln -s "../libcurl.la" "libcurl.la" )

Here the -L/opt/csw/lib was at the correct location.

The respective lines in 7.28.1/lib/Makefile are

LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
        $(AM_LDFLAGS) $(LDFLAGS) -o $@
...
libcurl.la: $(libcurl_la_OBJECTS) $(libcurl_la_DEPENDENCIES)        $(LINK) -rpath $(libdir) $(libcurl_la_LDFLAGS) $(libcurl_la_OBJECTS) $(libcurl_la_LIBADD) $(LIBS)

LDFLAGS carries the -L/opt/csw/lib, so it works.

In 7.29.0/lib/Makefile the lines are are

LIBCURL_LIBS = -lidn -lrtmp -lssh2 -lssl -lcrypto -lssl -lcrypto -lldap -lz -lrt -lsocket -lnsl
...
libcurl_la_LDFLAGS = $(UNDEF) $(VERSIONINFO) $(MIMPURE) $(VERSIONED_SYMBOLS) $(LIBCURL_LIBS)
...
libcurl_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \        $(LIBTOOLFLAGS) --mode=link $(CCLD) $(libcurl_la_CFLAGS) \        $(CFLAGS) $(libcurl_la_LDFLAGS) $(LDFLAGS) -o $@
...
libcurl.la: $(libcurl_la_OBJECTS) $(libcurl_la_DEPENDENCIES) $(EXTRA_libcurl_la_DEPENDENCIES)
        $(libcurl_la_LINK) -rpath $(libdir) $(libcurl_la_OBJECTS) $(libcurl_la_LIBADD) $(LIBS)

This ends up in being -L/opt/csw/lib after the addition of the respective libraries.

I tried to reproduce the error with the tags for 7.28.1 and 7.29.0 on github and noticed that the error is present in both version after bootstrapping with buildconf and recent autotools. So the error is most likely coming from changes in the autotools environment you used to bootstrap the tarballs.

After changing the line in lib/Makefile.am to add LDFLAGS like

libcurl_la_LDFLAGS = $(UNDEF) $(VERSIONINFO) $(MIMPURE) $(VERSIONED_SYMBOLS) $(LDFLAGS) $(LIBCURL_LIBS)

building works again, however, my knowledge in libtool/autotools integration is not deep enough to state this is a valid fix and not a hack.

Best regards -- Dago

Discussion

  • Daniel Stenberg

    Daniel Stenberg - 2013-04-21

    Thanks for the report.

    Can you try 7.30.0 as well just to make sure the problem still remains?

    Which check/package brings the -L/opt/csw/lib option to the build?

    Any chance you can bisect down to when the problem was introduced?

     
  • Dagobert Michelsen

    Hi Daniel,

    I tried 7.30.0 tarball which also has the problem.

    The flags are from OpenSSL:
    configure:21725: pkg-config: SSL_LDFLAGS: "-L/opt/csw/lib "
    and the detection during configure works:
    configure:21792: /opt/SUNWspro/bin/cc -o conftest -s -xO2 -I/opt/csw/include -L/opt/csw/lib conftest.c -lcrypto -lssl -lcrypto -lldap -lz -lrt -lsocket -lnsl >&5

    I already tried to bisect, but as I need to bootstrap autotools with buildconf and recent libtool/automake etc. on my platform I observe the issue even on 7.28.1 from Git whereas the 7.28.1 tarball works.

    So my suspucion is that something in the autotools-chain has changed and you probably made the update between the release of the 7.28.1 and 7.29.0 tarball. Most likely this change in autotools requires some minor adjustment in Makefile.am or such, but I haven't been successfull fixing it apart from the above cited workaround.

     
  • Daniel Stenberg

    Daniel Stenberg - 2013-04-22

    Yes, I believe it may very well be because I switched from automake 1.9.something to 1.11.6 and generally speaking just about every time I ever tried to switch from automake 1.9 some version of Solaris build broke.

    But there were other reasons why I started getting pains in sticking to the old version so I really do not want to go back. Let's make an effort in figuring this out and try to work around or even fix this problem correctly.

    Can you attach your full (maybe compressed) config.log file after you've run configure?

     
  • Dagobert Michelsen

    Sure, attached.

    What worked for me was the probably hackish addition of LDFLAGS here:
    libcurl_la_LDFLAGS = $(UNDEF) $(VERSIONINFO) $(MIMPURE) $(VERSIONED_SYMBOLS) $(LDFLAGS) $(LIBCURL_LIBS)

     
    • Daniel Stenberg

      Daniel Stenberg - 2013-04-24

      That line looks very different in current git though.

      And I still haven't figured out why you get this funny order, as it doesn't seem to happen on my linux tests.

       
  • Dagobert Michelsen

    Maybe this is of interest, here is the buildconf configuration:

    dam@unstable10s [unstable10s]:/home/dam/work/curl > ./buildconf && PKG_CONFIG_PATH=/opt/csw/lib/pkgconfig CC=/opt/SUNWspro/bin/cc ./configure --prefix=/opt/csw && gmake
    buildconf: autoconf version 2.69 (ok)
    buildconf: autom4te version 2.69 (ok)
    buildconf: autoheader version 2.69 (ok)
    buildconf: automake version 1.13.1 (ok)
    buildconf: aclocal version 1.13.1 (ok)
    buildconf: libtool version 2.4.2 (ok)
    buildconf: GNU m4 version 1.4.16 (ok)
    buildconf: running libtoolize
    buildconf: converting all mv to mv -f in local m4/libtool.m4
    buildconf: running aclocal
    /opt/csw/share/aclocal/imlib.m4:9: warning: underquoted definition of AM_PATH_IMLIB
    /opt/csw/share/aclocal/imlib.m4:9:   run info Automake 'Extending aclocal'
    /opt/csw/share/aclocal/imlib.m4:9:   or see http://www.gnu.org/software/automake/manual/automake.html#Extending-aclocal
    buildconf: converting all mv to mv -f in local aclocal.m4
    buildconf: running autoheader
    buildconf: running autoconf
    buildconf: running automake
    configure.ac:128: installing './compile'
    configure.ac:182: installing './config.guess'
    configure.ac:182: installing './config.sub'
    docs/examples/Makefile.am: installing './depcomp'
    buildconf: OK
    
     
  • Daniel Stenberg

    Daniel Stenberg - 2013-05-21
    • Priority: 5 --> 4
     
  • Daniel Stenberg

    Daniel Stenberg - 2013-05-21

    Due to me not having any such systems and a general shortage of time, I don't expect to do much progress on this issue within the foreseeable future unless I get help.

     
  • Dagobert Michelsen

    Hi Daniel, thanks a lot for your support. If it helps I can provide access to the OpenCSW buildfarm, there are already quite a lot of projects using the buildfarm to ensure Solaris compatibility:
    http://www.opencsw.org/extend-it/signup/to-upstream-maintainers/

     
  • Daniel Stenberg

    Daniel Stenberg - 2013-06-22
    • status: open --> pending-needsinfo
     
  • Daniel Stenberg

    Daniel Stenberg - 2013-06-22

    Thanks, but I will defer to people who actually work on this platform to work on it and possibly even report it and work with libtool/automake upstream projects. I do not think this is a problem caused by curl in particular.

    Unless someone steps up and helps us with this within shortly, this bug entry will be closed and this subject added to the known bugs document instead.

     
  • Daniel Stenberg

    Daniel Stenberg - 2013-07-16

    Can you try a newer (newest even?) automake version and see if this problem has been fixed already?

     
  • Dagobert Michelsen

    Hi Daniel,

    I just tried the current HEAD a77ac42e52e3a335fe6942bd31b8bf25c2a0a947 and the issue still persists. I can probably spend some time in the future and talk to the autotools-people about a solution. Please leave the bug open, probable with even less priority.

    Best regards -- Dago

     
  • Dagobert Michelsen

    I just verified that the previous fix still works, please judge yourself if it would be safe for inclusion:

    diff --git a/lib/Makefile.am b/lib/Makefile.am
    index 925483b..4477cc2 100644
    --- a/lib/Makefile.am
    +++ b/lib/Makefile.am
    @@ -141,7 +141,7 @@ libcurl_la_CFLAGS_EXTRA += $(CFLAG_CURL_SYMBOL_HIDING)
     endif
    
     libcurl_la_CPPFLAGS = $(AM_CPPFLAGS) $(libcurl_la_CPPFLAGS_EXTRA)
    -libcurl_la_LDFLAGS = $(AM_LDFLAGS) $(libcurl_la_LDFLAGS_EXTRA) $(LIBCURL_LIBS)
    +libcurl_la_LDFLAGS = $(AM_LDFLAGS) $(libcurl_la_LDFLAGS_EXTRA) $(LDFLAGS) $(LIBCURL_LIBS)
     libcurl_la_CFLAGS = $(AM_CFLAGS) $(libcurl_la_CFLAGS_EXTRA)
    
     libcurlu_la_CPPFLAGS = $(AM_CPPFLAGS) -DCURL_STATICLIB -DUNITTESTS
    
     
  • Daniel Stenberg

    Daniel Stenberg - 2013-07-23

    Thanks, I tried it a bit and it seems to be safe enough and I've now merged and pushed this fix!

    Can you verify and see that you can now build the latest version off git?

     
  • Dagobert Michelsen

    Yes, the version from GIT works fine.

     
  • Daniel Stenberg

    Daniel Stenberg - 2013-07-25
    • status: pending-needsinfo --> closed-fixed
     
  • Daniel Stenberg

    Daniel Stenberg - 2013-07-25

    Thanks a lot. Case closed!