php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #67700 Compile fails when -lcrypt is missing
Submitted: 2014-07-28 16:24 UTC Modified: 2021-08-26 11:00 UTC
Votes:9
Avg. Score:4.0 ± 0.9
Reproduced:8 of 8 (100.0%)
Same Version:1 (12.5%)
Same OS:5 (62.5%)
From: thekid@php.net Assigned: cmb (profile)
Status: Closed Package: Compile Failure
PHP Version: 5.5.15 OS: Linux
Private report: No CVE-ID: None
 [2014-07-28 16:24 UTC] thekid@php.net
Description:
------------
The linking fails with "undefined reference to zm_startup_password".

Test script:
---------------
Configure PHP, run make. 

Expected result:
----------------
Either configure bail and PHP states it depends on `-lcrypt` or the password functions are non-core.

See also https://github.com/php/php-src/pull/703

Actual result:
--------------
The whole of password.c is inside a  #if HAVE_CRYPT  conditional, but  basic_functions.c  unconditionally initializes the password module and tries to declares its functions, leading to this error.

Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2014-07-28 16:25 UTC] thekid@php.net
-Assigned To: +Assigned To: ircmaxell
 [2015-05-04 11:56 UTC] alcione dot sombra at gmail dot com
Para resolver o problema acima descrito utilizei um recurso de alimentar as variáveis do ambiente LDFLAGS e LIBS antes de executar o script de configure, da seguinte forma:

$ LDFLAGS="$LDFLAGS -lcrypt" LIBS="$LIBS -lcrypt" ./configure <opcoes>

Espero ter ajudado

---

To solve the problem described above used a resource to feed the variables LDFLAGS and LIBS environment before running the configure script, as follows:

$ LDFLAGS = "$ LDFLAGS -lcrypt" LIBS = "$ LIBS -lcrypt" ./configure <options>

I hope this helps
 [2017-09-28 02:30 UTC] dapphp at sonic dot net
Ran into this building PHP 5.6.31.  Spent quite a bit of time trying different combinations until I finally found this post.

Thanks much to alcione who suggested adding -lcrypt which at least works around it.
 [2017-10-24 06:55 UTC] kalle@php.net
-Status: Assigned +Status: Open -Assigned To: ircmaxell +Assigned To:
 [2021-08-26 11:00 UTC] cmb@php.net
-Status: Open +Status: Closed -Assigned To: +Assigned To: cmb
 [2021-08-26 11:00 UTC] cmb@php.net
PHP provides its own crypt() fallback when necessary, so actually
the HAVE_CRYPT condition was wrong, and that is fixed[1] as of PHP
7.1.0.

[1] <https://github.com/php/php-src/commit/d3ed75b9ebc998b8cf325e0e3ab954bd10989918>
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Tue Mar 19 04:01:31 2024 UTC