]> granicus.if.org Git - php/commitdiff
Fixed finding CURL on systems with multiarch support
authorCarsten Brandt <mail@cebe.cc>
Fri, 14 Jul 2017 11:45:33 +0000 (13:45 +0200)
committerJoe Watkins <krakjoe@php.net>
Tue, 25 Jul 2017 05:58:11 +0000 (06:58 +0100)
fixes https://bugs.php.net/bug.php?id=74125

This commit makes the cURL config script aware of debian/ubuntu
[multiarch support][1] which installs architecture specific
headers in a different location.

It checks whether the `dpkg-architecture` script exists and is
executeable, if that is the case, the multiarch architecture is
detected by calling `dpkg-architecture -qDEB_HOST_MULTIARCH` as
documented in [debian multiarch implementation docs][2]:

> `/usr/include/<triplet>`: used for arch-varying headers

[1]: https://wiki.debian.org/Multiarch
[2]: https://wiki.debian.org/Multiarch/Implementation

NEWS
ext/curl/config.m4

diff --git a/NEWS b/NEWS
index f82a0f3ac1ce59f9fd1f0570880488191326a2f6..ff9dba5fc4a87d592d1f9a7d001f03befe16c8e9 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -6,6 +6,10 @@ PHP                                                                        NEWS
   . Fixed bug #74947 (Segfault in scanner on INF number). (Laruence)
   . Fixed bug #74954 (null deref and segfault in zend_generator_resume()). (Bob)
 
+- cURL:
+  . Fixed bug #74125 (Fixed finding CURL on systems with multiarch support).
+    (cebe)
+
 - Mbstring:
   . Fixed bug #71606 (Segmentation fault mb_strcut with HTML-ENTITIES encoding).
     (cmb)
index 2f82c3485d8624b7b8b0733c58a0ce5a14f2f582..63682e0f067c1453bd1263bb1c6b85d0a8e50c38 100644 (file)
@@ -17,11 +17,23 @@ if test "$PHP_CURL" != "no"; then
         break
       fi
     done
+    if test -z "$CURL_DIR"; then
+      AC_MSG_RESULT(not found)
+      if which dpkg-architecture>/dev/null; then
+        AC_MSG_CHECKING(for cURL in multiarch path)
+        CURL_MULTIARCH_INCLUDE=/usr/include/$(dpkg-architecture -qDEB_HOST_MULTIARCH)
+        if test -r $CURL_MULTIARCH_INCLUDE/curl/easy.h; then
+          CURL_DIR=/usr
+          AC_MSG_RESULT(found in $CURL_MULTIARCH_INCLUDE)
+        else
+          AC_MSG_RESULT(not found)
+        fi
+      fi
+    fi
   fi
 
   if test -z "$CURL_DIR"; then
-    AC_MSG_RESULT(not found)
-    AC_MSG_ERROR(Please reinstall the libcurl distribution -
+    AC_MSG_ERROR(Could not find cURL, please reinstall the libcurl distribution -
     easy.h should be in <curl-dir>/include/curl/)
   fi
 
@@ -45,7 +57,11 @@ if test "$PHP_CURL" != "no"; then
     AC_MSG_ERROR(cURL version 7.10.5 or later is required to compile php with cURL support)
   fi
 
-  PHP_ADD_INCLUDE($CURL_DIR/include)
+  if test -z "$CURL_MULTIARCH_INCLUDE"; then
+    PHP_ADD_INCLUDE($CURL_DIR/include)
+  else
+    PHP_ADD_INCLUDE($CURL_MULTIARCH_INCLUDE)
+  fi
   PHP_EVAL_LIBLINE($CURL_LIBS, CURL_SHARED_LIBADD)
   PHP_ADD_LIBRARY_WITH_PATH(curl, $CURL_DIR/$PHP_LIBDIR, CURL_SHARED_LIBADD)