1
0
mirror of https://github.com/php/php-src.git synced 2026-03-24 00:02:20 +01:00

fix GH-8533: dynamic libphp linking on Mac

Pass the -dynamiclib flag to libtool to build
a valid Mac dylib.

Closes GH-8533.
This commit is contained in:
Kévin Dunglas
2024-12-16 22:16:18 +01:00
parent 25887b350d
commit 009b5e2bfd
5 changed files with 23 additions and 1 deletions

3
.gitignore vendored
View File

@@ -29,6 +29,9 @@
# Libtool library files generated during build process
*.la
# Mac shared library files generated during build process
*.dylib
# Directories created by Libtool for storing generated library files
.libs/

3
NEWS
View File

@@ -9,6 +9,9 @@ PHP NEWS
. Fixed bug GH-17984 (calls with arguments as array with references).
(David Carlier)
- Embed:
. Fixed bug GH-8533 (Unable to link dynamic libphp on Mac). (Kévin Dunglas)
- Mbstring:
. Fixed bug GH-17989 (mb_output_handler crash with unset
http_output_conv_mimetypes). (nielsdos)

View File

@@ -19,6 +19,10 @@ libphp.la: $(PHP_GLOBAL_OBJS) $(PHP_SAPI_OBJS)
$(LIBTOOL) --tag=CC --mode=link $(CC) $(LIBPHP_CFLAGS) $(CFLAGS) $(EXTRA_CFLAGS) -rpath $(phptempdir) $(EXTRA_LDFLAGS) $(LDFLAGS) $(PHP_RPATHS) $(PHP_GLOBAL_OBJS) $(PHP_SAPI_OBJS) $(EXTRA_LIBS) $(ZEND_EXTRA_LIBS) -o $@
-@$(LIBTOOL) --silent --tag=CC --mode=install cp $@ $(phptempdir)/$@ >/dev/null 2>&1
libphp.dylib: libphp.la
$(LIBTOOL) --tag=CC --mode=link $(CC) -dynamiclib $(LIBPHP_CFLAGS) $(CFLAGS_CLEAN) $(EXTRA_CFLAGS) -rpath $(phptempdir) -install_name @rpath/$@ $(EXTRA_LDFLAGS) $(LDFLAGS) $(PHP_RPATHS) $(PHP_GLOBAL_OBJS) $(PHP_SAPI_OBJS) $(EXTRA_LIBS) $(ZEND_EXTRA_LIBS) -o $@
-@$(LIBTOOL) --silent --tag=CC --mode=install cp $@ $(phptempdir)/$@ >/dev/null 2>&1
libs/libphp.bundle: $(PHP_GLOBAL_OBJS) $(PHP_SAPI_OBJS)
$(CC) $(MH_BUNDLE_FLAGS) $(CFLAGS_CLEAN) $(EXTRA_CFLAGS) $(LDFLAGS) $(EXTRA_LDFLAGS) $(PHP_GLOBAL_OBJS:.lo=.o) $(PHP_SAPI_OBJS:.lo=.o) $(PHP_FRAMEWORKS) $(EXTRA_LIBS) $(ZEND_EXTRA_LIBS) -o $@ && cp $@ libs/libphp.so

View File

@@ -764,6 +764,14 @@ AC_DEFUN([PHP_BUILD_SHARED],[
php_lo=$shared_lo
])
dnl
dnl PHP_BUILD_SHARED_DYLIB
dnl
AC_DEFUN([PHP_BUILD_SHARED_DYLIB],[
PHP_BUILD_SHARED
OVERALL_TARGET=libphp.dylib
])
dnl
dnl PHP_BUILD_STATIC
dnl
@@ -876,6 +884,7 @@ AC_DEFUN([PHP_SELECT_SAPI],[
case "$2" in
static[)] PHP_BUILD_STATIC;;
shared[)] PHP_BUILD_SHARED;;
shared-dylib[)] PHP_BUILD_SHARED_DYLIB;;
bundle[)] PHP_BUILD_BUNDLE;;
esac
install_sapi="install-sapi"

View File

@@ -11,7 +11,10 @@ if test "$PHP_EMBED" != "no"; then
case "$PHP_EMBED" in
yes|shared)
LIBPHP_CFLAGS="-shared"
PHP_EMBED_TYPE=shared
AS_CASE(["$host_alias"], [*darwin*], [
SAPI_SHARED="libs/libphp.dylib"
PHP_EMBED_TYPE=shared-dylib
], [PHP_EMBED_TYPE=shared])
INSTALL_IT="\$(mkinstalldirs) \$(INSTALL_ROOT)\$(prefix)/lib; \$(INSTALL) -m 0755 $SAPI_SHARED \$(INSTALL_ROOT)\$(prefix)/lib"
;;
static)