ld: fatal: file /lib/libc.so: version 'SUNW_1.22.5' is unavailable

Jake Goerzen jgoerzen at opencsw.org
Thu Feb 27 23:00:38 CET 2014


Hi Laurent & Dago,

  I tried rebuilding after this version 5.5.36 was pushed but got the 
same link error as before.  But, I added EXTRA_LINKER_FLAGS = -lm to the 
dovecot recipe and the build now completes successfully.

Best Regards,
Jake

On 02/25/14 02:57, Laurent Blume wrote:
> The rebuilt 5.5.36 has been pushed, it works for me.
>
> Regards,
>
> Laurent
>
>
> Le 2014/02/25 11:56 +0100, Dagobert Michelsen a écrit:
>> Hi Jake,
>>
>> Am 18.02.2014 um 18:15 schrieb Jake Goerzen <jgoerzen at opencsw.org
>> <mailto:jgoerzen at opencsw.org>>:
>>> On 02/16/14 04:39, Dagobert Michelsen wrote:
>>>> Am 13.02.2014 um 18:27 schrieb Jake Goerzen <jgoerzen at opencsw.org
>>>> <mailto:jgoerzen at opencsw.org>>:
>>>>>   Since the last update to mysql packages I can no longer build
>>>>> dovecot anymore, configure fails with:
>>>>>
>>>>>     checking for mysql_config... mysql_config
>>>>>     checking for mysql_init in -lmysqlclient... no
>>>>>     configure: error: Can't build with MySQL support: libmysqlclient
>>>>>     not found
>>>>> /home/jgoerzen/opencsw/.buildsys/v2/gar//gar.lib.mk:835: recipe
>>>>>     for target
>>>>> 'configure-work/solaris10-i386/build-isa-pentium_pro/dovecot-2.2.10/configure'
>>>>>     failedgmake[1]: ***
>>>>> [configure-work/solaris10-i386/build-isa-pentium_pro/dovecot-2.2.10/configure]
>>>>>     Error 1
>>>>>
>>>>>
>>>>> Looking In config.log the error encountered is:
>>>>> ld: fatal: file /lib/libc.so: version 'SUNW_1.22.5' is unavailable
>>>>>
>>>>>     configure:23474: checking for mysql_init in -lmysqlclient
>>>>>     configure:23499: /opt/SUNWspro/bin/cc -o conftest -xO3 -m32
>>>>>     -xarch=pentium_pro -xchip=pentium_pro -I/opt/csw/include
>>>>>     -I/opt/csw/include/mysql -I/opt/csw/include/postgresql
>>>>>     -I/opt/csw/include -m32 -xarch=pentium_pro -xchip=pentium_pro
>>>>>     -L/opt/csw/lib conftest.c -lmysqlclient  -lrt -lnsl -lsocket
>>>>>     -lsendfile -L/opt/csw/lib -lmysqlclient  -lsocket -lz -lnsl -lrt
>>>>>     -lssl -lcrypto -lz -lm >&5
>>>>>     "conftest.c", line 155: warning: statement not reached
>>>>>     ld: fatal: file /lib/libc.so: version 'SUNW_1.22.5' is 
>>>>> unavailable:
>>>>>             required by file /opt/csw/lib/libmysqlclient.so
>>>>>     ld: fatal: file processing errors. No output written to conftest
>>>>>
>>>>>
>>>>> I tried switching the compiler to GCC4 but configure still can't
>>>>> find or link -lmysqlclient  What could be the problem?
>>>>
>>>> The problem is that mysql actually needs the newer libc-version for
>>>> getpagesize2() as reported in
>>>> https://www.opencsw.org/mantis/view.php?id=5137
>>>> This is not related to GCC or Sun Studio. I suggest you disable the
>>>> linker map forcing 1.22.5 in your Makefile with
>>>>   # Disable linker map forcing SUNW_1.22.2 as the linked MySQL needs
>>>> SUNW_1.22.5
>>>>   LINKER_MAPS =
>>>> After that everything sould work cleanly.
>>>
>>> Hi Dago,
>>>
>>> I added the suggestion to the dovecot recipe, now configure finishes
>>> successfully but the build fails to link.  Here is what I get in the
>>> build process now:
>>>
>>> on unstable10x:
>>>
>>> libtool: link: /opt/SUNWspro/bin/cc -xO3 -m32 -xarch=pentium_pro
>>> -xchip=pentium_pro -I/opt/csw/include -m32 -xarch=pentium_pro
>>> -xchip=pentium_pro -o .libs/auth auth.o auth-cache.o
>>> auth-client-connection.o auth-master-connection.o
>>> auth-postfix-connection.o mech-otp-skey-common.o mech-plain-common.o
>>> auth-penalty.o auth-request.o auth-request-handler.o auth-settings.o
>>> auth-fields.o auth-token.o auth-worker-client.o auth-worker-server.o
>>> db-checkpassword.o db-dict.o db-dict-cache-key.o db-sql.o
>>> db-passwd-file.o main.o mech.o mech-anonymous.o mech-plain.o
>>> mech-login.o mech-cram-md5.o mech-digest-md5.o mech-external.o
>>> mech-gssapi.o mech-ntlm.o mech-otp.o mech-scram-sha1.o mech-skey.o
>>> mech-rpa.o mech-apop.o mech-winbind.o mech-dovecot-token.o passdb.o
>>> passdb-blocking.o passdb-bsdauth.o passdb-cache.o
>>> passdb-checkpassword.o passdb-dict.o passdb-passwd.o
>>> passdb-passwd-file.o passdb-pam.o passdb-shadow.o passdb-sia.o
>>> passdb-vpopmail.o passdb-sql.o passdb-static.o passdb-template.o
>>> userdb.o userdb-blocking.o userdb-checkpassword.o userdb-dict.o
>>> userdb-nss.o userdb-passwd.o userdb-passwd-file.o userdb-prefetch.o
>>> userdb-static.o userdb-vpopmail.o userdb-sql.o userdb-template.o
>>> db-ldap.o passdb-ldap.o userdb-ldap.o -m32  -L/opt/csw/lib
>>> libpassword.a ../lib-ntlm/libntlm.a ../lib-otp/libotp.a
>>> ../../src/lib-sql/.libs/libsql.a
>>> ../../src/lib-dovecot/.libs/libdovecot.so -liconv -lpam -lintl
>>> -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err -lgss -lldap -llber
>>> -lmysqlclient -lssl -lcrypto -lpq -lsqlite3 -lz -lrt -lnsl -lsocket
>>> -lsendfile -R/opt/csw/lib/dovecot -R/opt/csw/lib
>>> Undefined                       first referenced
>>>  symbol                             in file
>>> floor /opt/csw/lib/libmysqlclient.so
>>> ld: fatal: symbol referencing errors. No output written to .libs/auth
>>> Makefile:812: recipe for target 'auth‘ failed
>>
>> This is because libmysqlclient.so is not self-contained as it should be:
>> it uses floor() but does not link to libm.
>> @Laurent: Can you please rebuild the mysql libs with -lm as
>> EXTRA_LINKER_FLAGS?
>>
>> dam at unstable10s [unstable10s]:/home/dam > ldd -r
>>          librt.so.1 =>    /lib/librt.so.1
>>          libssl.so.1.0.0 =>
>> /opt/csw/lib/sparcv8plus+vis/libssl.so.1.0.0
>>          libcrypto.so.1.0.0 =>
>>   /opt/csw/lib/sparcv8plus+vis/libcrypto.so.1.0.0
>>          libnsl.so.1 =>   /lib/libnsl.so.1
>>          librt.so.1 =>    /lib/librt.so.1
>>          libsocket.so.1 =>        /lib/libsocket.so.1
>>          libpthread.so.1 =>       /lib/libpthread.so.1
>>          libgcc_s.so.1 => /opt/csw/lib/sparcv8/libgcc_s.so.1
>>          libc.so.1 =>     /lib/libc.so.1
>>          libmp.so.2 =>    /lib/libmp.so.2
>>          libmd.so.1 =>    /lib/libmd.so.1
>>          libscf.so.1 =>   /lib/libscf.so.1
>>          libaio.so.1 =>   /lib/libaio.so.1
>>          libdoor.so.1 =>  /lib/libdoor.so.1
>>          libuutil.so.1 =>         /lib/libuutil.so.1
>>          libgen.so.1 =>   /lib/libgen.so.1
>>          /platform/SUNW,SPARC-Enterprise-T5220/lib/libc_psr.so.1
>>          symbol not found: floor (/opt/csw/lib/libmysqlclient.so)
>> /platform/SUNW,SPARC-Enterprise-T5220/lib/libmd_psr.so.1
>>          libm.so.2 =>     /lib/libm.so.2
>>
>>
>> Best regards
>>
>>    — Dago
>>
>> -- 
>> "You don't become great by trying to be great, you become great by
>> wanting to do something,
>> and then doing it so hard that you become great in the process." - 
>> xkcd #896
>>
>
>
>



More information about the maintainers mailing list