ports/74647: fix lang/php4 configure to detect various crypt()s on 64-bit platforms

Anton Berezin tobez at FreeBSD.org
Fri Dec 3 12:40:28 UTC 2004


>Number:         74647
>Category:       ports
>Synopsis:       fix lang/php4 configure to detect various crypt()s on 64-bit platforms
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Fri Dec 03 12:40:28 GMT 2004
>Closed-Date:
>Last-Modified:
>Originator:     Anton Berezin
>Release:        FreeBSD 5.3-STABLE amd64
>Organization:
>Environment:

	
>Description:
The configure script fails to detect various crypt()-related
functionality (DES/MD5/Blowfish) on amd64 platform.
>How-To-Repeat:
Build lang/php4 on an amd64 system, observe configure output.
>Fix:

--- Makefile.orig	Tue Nov 30 22:14:27 2004
+++ Makefile	Tue Nov 30 22:14:51 2004
@@ -164,6 +164,7 @@ post-patch:
 	@${TOUCH} ${WRKSRC}/ext/php_config.h
 	@${REINPLACE_CMD} "s|^\(extension_dir\)|; \1|" ${WRKSRC}/php.ini-*
 	@${REINPLACE_CMD} "s|<crypt.h>|<unistd.h>|g" ${WRKSRC}/configure
+	@${REINPLACE_CMD} "s|HAVE_CRYPT_H|HAVE_UNISTD_H|g" ${WRKSRC}/configure
 
 .if ${PHP_SAPI} == "full"
 pre-configure:


This is needed since without having HAVE_CRYPT_H replaced with
HAVE_UNISTD_H, unistd.h is never included in those pieces of configure
that originally try to include crypt.h.  This goes unnoticed on 32-bit
platforms, since sizeof(int) == sizeof(char *), but leads to a coredump
on 64-bit platforms (well, at least on amd64) when crypt() is implicitly
defined and assumes an int return argument.
>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the freebsd-ports-bugs mailing list