diff -pruN 0.5.5-3/debian/changelog 0.5.5-3ubuntu2/debian/changelog
--- 0.5.5-3/debian/changelog	2021-02-14 15:40:51.000000000 +0000
+++ 0.5.5-3ubuntu2/debian/changelog	2021-11-02 23:59:32.000000000 +0000
@@ -1,3 +1,31 @@
+libvirt-php (0.5.5-3ubuntu2) jammy; urgency=medium
+
+  * No change rebuild
+
+ -- Bryce Harrington <bryce@canonical.com>  Tue, 02 Nov 2021 23:59:32 +0000
+
+libvirt-php (0.5.5-3ubuntu1) impish; urgency=medium
+
+  * d/rules: Allow building against PHP 8.0
+  * d/p/0001-Drop-use-of-deprecated-TSRMLS-macros.patch: Fix FTBFS by
+    removing deprecated macros.
+  * d/p/fix-missing-semicolon.patch: Fix coding error with PHP 8 due to
+    missing semicolon.
+
+ -- Bryce Harrington <bryce@canonical.com>  Fri, 11 Jun 2021 23:24:13 +0000
+
+libvirt-php (0.5.5-3build2) impish; urgency=medium
+
+  * No change rebuild for PHP 8.0
+
+ -- Bryce Harrington <bryce@canonical.com>  Sat, 22 May 2021 03:01:15 +0000
+
+libvirt-php (0.5.5-3build1) hirsute; urgency=medium
+
+  * No change rebuild with fixed ownership.
+
+ -- Dimitri John Ledkov <xnox@ubuntu.com>  Tue, 16 Feb 2021 15:17:23 +0000
+
 libvirt-php (0.5.5-3) unstable; urgency=medium
 
   * Lower the dh-php dependency to Debian sid version
diff -pruN 0.5.5-3/debian/control 0.5.5-3ubuntu2/debian/control
--- 0.5.5-3/debian/control	2021-02-14 15:40:51.000000000 +0000
+++ 0.5.5-3ubuntu2/debian/control	2021-06-11 23:15:54.000000000 +0000
@@ -1,7 +1,8 @@
 Source: libvirt-php
 Section: php
 Priority: optional
-Maintainer: Debian PHP PECL Maintainers <team+php-pecl@tracker.debian.org>
+Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
+XSBC-Original-Maintainer: Debian PHP PECL Maintainers <team+php-pecl@tracker.debian.org>
 Uploaders: Ondřej Surý <ondrej@debian.org>
 Build-Depends: debhelper (>= 10~),
                dh-php,
diff -pruN 0.5.5-3/debian/patches/0001-Drop-use-of-deprecated-TSRMLS-macros.patch 0.5.5-3ubuntu2/debian/patches/0001-Drop-use-of-deprecated-TSRMLS-macros.patch
--- 0.5.5-3/debian/patches/0001-Drop-use-of-deprecated-TSRMLS-macros.patch	1970-01-01 00:00:00.000000000 +0000
+++ 0.5.5-3ubuntu2/debian/patches/0001-Drop-use-of-deprecated-TSRMLS-macros.patch	2021-06-11 23:24:13.000000000 +0000
@@ -0,0 +1,2607 @@
+From df424b1844aee1e00a546067456a06bcd9b83e80 Mon Sep 17 00:00:00 2001
+From: Bryce Harrington <bryce@canonical.com>
+Date: Fri, 11 Jun 2021 23:14:46 +0000
+Subject: [PATCH] Drop use of deprecated TSRMLS macros
+
+---
+ src/libvirt-connection.c |  42 ++++----
+ src/libvirt-connection.h |   8 +-
+ src/libvirt-domain.c     | 202 +++++++++++++++++++--------------------
+ src/libvirt-domain.h     |   8 +-
+ src/libvirt-network.c    |  32 +++----
+ src/libvirt-network.h    |   8 +-
+ src/libvirt-node.c       |  20 ++--
+ src/libvirt-nodedev.c    |  20 ++--
+ src/libvirt-nodedev.h    |   8 +-
+ src/libvirt-nwfilter.c   |  22 ++---
+ src/libvirt-nwfilter.h   |   8 +-
+ src/libvirt-php.c        | 140 +++++++++++++--------------
+ src/libvirt-php.h        |  22 ++---
+ src/libvirt-snapshot.c   |  12 +--
+ src/libvirt-snapshot.h   |   8 +-
+ src/libvirt-storage.c    |  56 +++++------
+ src/libvirt-storage.h    |  16 ++--
+ src/libvirt-stream.c     |  36 +++----
+ src/libvirt-stream.h     |   2 +-
+ 19 files changed, 335 insertions(+), 335 deletions(-)
+
+--- a/src/libvirt-connection.c
++++ b/src/libvirt-connection.c
+@@ -21,7 +21,7 @@
+  * Returns:                 None
+  */
+ static void
+-free_resources_on_connection(virConnectPtr conn TSRMLS_DC)
++free_resources_on_connection(virConnectPtr conn)
+ {
+     int binding_resources_count = 0;
+     resource_info *binding_resources;
+@@ -32,28 +32,28 @@
+ 
+     for (i = 0; i < binding_resources_count; i++) {
+         if ((binding_resources[i].overwrite == 0) && (binding_resources[i].conn == conn))
+-            free_resource(binding_resources[i].type, binding_resources[i].mem TSRMLS_CC);
++            free_resource(binding_resources[i].type, binding_resources[i].mem);
+     }
+ }
+ 
+ /* Destructor for connection resource */
+ void
+-php_libvirt_connection_dtor(virt_resource *rsrc TSRMLS_DC)
++php_libvirt_connection_dtor(virt_resource *rsrc)
+ {
+     php_libvirt_connection *conn = (php_libvirt_connection *) rsrc->ptr;
+     int rv = 0;
+ 
+     if (conn != NULL) {
+         if (conn->conn != NULL) {
+-            free_resources_on_connection(conn->conn TSRMLS_CC);
++            free_resources_on_connection(conn->conn);
+ 
+             rv = virConnectClose(conn->conn);
+             if (rv == -1) {
+                 DPRINTF("%s: virConnectClose(%p) returned %d (%s)\n", __FUNCTION__, conn->conn, rv, LIBVIRT_G(last_error));
+-                php_error_docref(NULL TSRMLS_CC, E_WARNING, "virConnectClose failed with %i on destructor: %s", rv, LIBVIRT_G(last_error));
++                php_error_docref(NULL, E_WARNING, "virConnectClose failed with %i on destructor: %s", rv, LIBVIRT_G(last_error));
+             } else {
+                 DPRINTF("%s: virConnectClose(%p) completed successfully\n", __FUNCTION__, conn->conn);
+-                resource_change_counter(INT_RESOURCE_CONNECTION, NULL, conn->conn, 0 TSRMLS_CC);
++                resource_change_counter(INT_RESOURCE_CONNECTION, NULL, conn->conn, 0);
+             }
+             conn->conn = NULL;
+         }
+@@ -69,8 +69,6 @@
+ static int libvirt_virConnectAuthCallback(virConnectCredentialPtr cred,
+                                           unsigned int ncred, void *cbdata)
+ {
+-    TSRMLS_FETCH();
+-
+     unsigned int i, j;
+     php_libvirt_cred_value *creds = (php_libvirt_cred_value *) cbdata;
+     for (i = 0; i < (unsigned int)ncred; i++) {
+@@ -135,7 +133,7 @@
+ 
+     unsigned long libVer;
+ 
+-    if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|sba", &url, &url_len, &readonly, &zcreds) == FAILURE) {
++    if (zend_parse_parameters(ZEND_NUM_ARGS(), "|sba", &url, &url_len, &readonly, &zcreds) == FAILURE) {
+         RETURN_FALSE;
+     }
+ 
+@@ -143,13 +141,13 @@
+         RETURN_FALSE;
+ 
+     if (libVer < 6002) {
+-        set_error("Only libvirt 0.6.2 and higher supported. Please upgrade your libvirt" TSRMLS_CC);
++        set_error("Only libvirt 0.6.2 and higher supported. Please upgrade your libvirt");
+         RETURN_FALSE;
+     }
+ 
+-    if ((count_resources(INT_RESOURCE_CONNECTION TSRMLS_CC) + 1) > LIBVIRT_G(max_connections_ini)) {
++    if ((count_resources(INT_RESOURCE_CONNECTION) + 1) > LIBVIRT_G(max_connections_ini)) {
+         DPRINTF("%s: maximum number of connections allowed exceeded (max %lu)\n", PHPFUNC, (unsigned long)LIBVIRT_G(max_connections_ini));
+-        set_error("Maximum number of connections allowed exceeded" TSRMLS_CC);
++        set_error("Maximum number of connections allowed exceeded");
+         RETURN_FALSE;
+     }
+ 
+@@ -206,7 +204,7 @@
+         RETURN_FALSE;
+     }
+ 
+-    resource_change_counter(INT_RESOURCE_CONNECTION, NULL, conn->conn, 1 TSRMLS_CC);
++    resource_change_counter(INT_RESOURCE_CONNECTION, NULL, conn->conn, 1);
+     DPRINTF("%s: Connection to %s established, returning %p\n", PHPFUNC, url, conn->conn);
+ 
+     VIRT_REGISTER_RESOURCE(conn, le_libvirt_connection);
+@@ -353,9 +351,9 @@
+     if ((arch == NULL) || (arch_len == 0))
+         arch = NULL;
+ 
+-    tmp = connection_get_emulator(conn->conn, arch TSRMLS_CC);
++    tmp = connection_get_emulator(conn->conn, arch);
+     if (tmp == NULL) {
+-        set_error("Cannot get emulator" TSRMLS_CC);
++        set_error("Cannot get emulator");
+         RETURN_FALSE;
+     }
+ 
+@@ -383,13 +381,13 @@
+ 
+     /* Disable getting it on remote connections */
+     if (!is_local_connection(conn->conn)) {
+-        set_error("This function works only on local connections" TSRMLS_CC);
++        set_error("This function works only on local connections");
+         RETURN_FALSE;
+     }
+ 
+     /* This approach is working only for QEMU driver so bails if not currently using it */
+     if (strcmp(virConnectGetType(conn->conn), "QEMU") != 0) {
+-        set_error("This function can be used only for QEMU driver" TSRMLS_CC);
++        set_error("This function can be used only for QEMU driver");
+         RETURN_FALSE;
+     }
+ 
+@@ -397,9 +395,9 @@
+     if ((arch == NULL) || (arch_len == 0))
+         arch = NULL;
+ 
+-    tmp = connection_get_emulator(conn->conn, arch TSRMLS_CC);
++    tmp = connection_get_emulator(conn->conn, arch);
+     if (tmp == NULL) {
+-        set_error("Cannot get emulator" TSRMLS_CC);
++        set_error("Cannot get emulator");
+         RETURN_FALSE;
+     }
+ 
+@@ -459,20 +457,20 @@
+ 
+     /* Disable getting it on remote connections */
+     if (!is_local_connection(conn->conn)) {
+-        set_error("This function works only on local connections" TSRMLS_CC);
++        set_error("This function works only on local connections");
+         RETURN_FALSE;
+     }
+ 
+ #ifndef EXTWIN
+     /* This approach is working only for QEMU driver so bails if not currently using it */
+     if (strcmp(virConnectGetType(conn->conn), "QEMU") != 0) {
+-        set_error("This function can be used only for QEMU driver" TSRMLS_CC);
++        set_error("This function can be used only for QEMU driver");
+         RETURN_FALSE;
+     }
+ 
+-    tmp = connection_get_emulator(conn->conn, arch TSRMLS_CC);
++    tmp = connection_get_emulator(conn->conn, arch);
+     if (tmp == NULL) {
+-        set_error("Cannot get emulator" TSRMLS_CC);
++        set_error("Cannot get emulator");
+         RETURN_FALSE;
+     }
+ 
+--- a/src/libvirt-connection.h
++++ b/src/libvirt-connection.h
+@@ -30,11 +30,11 @@
+ 
+ # define GET_CONNECTION_FROM_ARGS(args, ...)                                   \
+     do {                                                                       \
+-        reset_error(TSRMLS_C);                                                 \
+-        if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC,                   \
++        reset_error();                                                 \
++        if (zend_parse_parameters(ZEND_NUM_ARGS(),                   \
+                                   args,                                        \
+                                   __VA_ARGS__) == FAILURE) {                   \
+-           set_error("Invalid arguments" TSRMLS_CC);                           \
++           set_error("Invalid arguments");                           \
+            RETURN_FALSE;                                                       \
+         }                                                                      \
+                                                                                \
+@@ -60,7 +60,7 @@
+     unsigned int    resultlen;
+ } php_libvirt_cred_value;
+ 
+-void php_libvirt_connection_dtor(virt_resource *rsrc TSRMLS_DC);
++void php_libvirt_connection_dtor(virt_resource *rsrc);
+ 
+ PHP_FUNCTION(libvirt_connect);
+ PHP_FUNCTION(libvirt_connect_get_uri);
+--- a/src/libvirt-domain.c
++++ b/src/libvirt-domain.c
+@@ -18,14 +18,14 @@
+ int le_libvirt_domain;
+ 
+ void
+-php_libvirt_domain_dtor(virt_resource *rsrc TSRMLS_DC)
++php_libvirt_domain_dtor(virt_resource *rsrc)
+ {
+     php_libvirt_domain *domain = (php_libvirt_domain *)rsrc->ptr;
+     int rv = 0;
+ 
+     if (domain != NULL) {
+         if (domain->domain != NULL) {
+-            if (!check_resource_allocation(domain->conn->conn, INT_RESOURCE_DOMAIN, domain->domain TSRMLS_CC)) {
++            if (!check_resource_allocation(domain->conn->conn, INT_RESOURCE_DOMAIN, domain->domain)) {
+                 domain->domain = NULL;
+                 efree(domain);
+                 return;
+@@ -34,10 +34,10 @@
+             rv = virDomainFree(domain->domain);
+             if (rv != 0) {
+                 DPRINTF("%s: virDomainFree(%p) returned %d (%s)\n", __FUNCTION__, domain->domain, rv, LIBVIRT_G(last_error));
+-                php_error_docref(NULL TSRMLS_CC, E_WARNING, "virDomainFree failed with %i on destructor: %s", rv, LIBVIRT_G(last_error));
++                php_error_docref(NULL, E_WARNING, "virDomainFree failed with %i on destructor: %s", rv, LIBVIRT_G(last_error));
+             } else {
+                 DPRINTF("%s: virDomainFree(%p) completed successfully\n", __FUNCTION__, domain->domain);
+-                resource_change_counter(INT_RESOURCE_DOMAIN, domain->conn->conn, domain->domain, 0 TSRMLS_CC);
++                resource_change_counter(INT_RESOURCE_DOMAIN, domain->conn->conn, domain->domain, 0);
+             }
+             domain->domain = NULL;
+         }
+@@ -148,36 +148,36 @@
+     tmp = installation_get_xml(conn->conn, name, memMB, maxmemMB,
+                                NULL, NULL, vcpus, iso_image,
+                                vmDisks, numDisks, vmNetworks, numNets,
+-                               flags TSRMLS_CC);
++                               flags);
+     if (tmp == NULL) {
+         DPRINTF("%s: Cannot get installation XML\n", PHPFUNC);
+-        set_error("Cannot get installation XML" TSRMLS_CC);
++        set_error("Cannot get installation XML");
+         goto error;
+     }
+ 
+     domain = virDomainDefineXML(conn->conn, tmp);
+     if (domain == NULL) {
+-        set_error_if_unset("Cannot define domain from the XML description" TSRMLS_CC);
++        set_error_if_unset("Cannot define domain from the XML description");
+         DPRINTF("%s: Cannot define domain from the XML description (%s): %s\n", PHPFUNC, LIBVIRT_G(last_error), tmp);
+         goto error;
+     }
+ 
+     if (virDomainCreate(domain) < 0) {
+         DPRINTF("%s: Cannot create domain: %s\n", PHPFUNC, LIBVIRT_G(last_error));
+-        set_error_if_unset("Cannot create domain" TSRMLS_CC);
++        set_error_if_unset("Cannot create domain");
+         goto error;
+     }
+ 
+     xml = virDomainGetXMLDesc(domain, 0);
+     if (!xml) {
+         DPRINTF("%s: Cannot get the XML description: %s\n", PHPFUNC, LIBVIRT_G(last_error));
+-        set_error_if_unset("Cannot get the XML description" TSRMLS_CC);
++        set_error_if_unset("Cannot get the XML description");
+         goto error;
+     }
+ 
+     if (virDomainGetUUIDString(domain, uuid) < 0) {
+         DPRINTF("%s: Cannot get domain UUID: %s\n", PHPFUNC, LIBVIRT_G(last_error));
+-        set_error_if_unset("Cannot get domain UUID" TSRMLS_CC);
++        set_error_if_unset("Cannot get domain UUID");
+         goto error;
+     }
+ 
+@@ -185,7 +185,7 @@
+     tmp = get_string_from_xpath(xml, "//domain/devices/graphics[@type='vnc']/@port", NULL, &retval);
+     if (retval < 0) {
+         DPRINTF("%s: Cannot get port from XML description\n", PHPFUNC);
+-        set_error_if_unset("Cannot get port from XML description" TSRMLS_CC);
++        set_error_if_unset("Cannot get port from XML description");
+         goto error;
+     }
+     VIR_FREE(xml);
+@@ -193,7 +193,7 @@
+     hostname = virConnectGetHostname(conn->conn);
+     if (!hostname) {
+         DPRINTF("%s: Cannot get hostname\n", PHPFUNC);
+-        set_error_if_unset("Cannot get hostname" TSRMLS_CC);
++        set_error_if_unset("Cannot get hostname");
+         goto error;
+     }
+ 
+@@ -213,22 +213,22 @@
+     }
+ #endif
+ 
+-    set_vnc_location(vncl TSRMLS_CC);
++    set_vnc_location(vncl);
+ 
+     VIR_FREE(tmp);
+     tmp = installation_get_xml(conn->conn, name, memMB, maxmemMB,
+                                NULL, uuid, vcpus, NULL,
+                                vmDisks, numDisks, vmNetworks, numNets,
+-                               flags TSRMLS_CC);
++                               flags);
+     if (tmp == NULL) {
+         DPRINTF("%s: Cannot get installation XML\n", PHPFUNC);
+-        set_error("Cannot get installation XML" TSRMLS_CC);
++        set_error("Cannot get installation XML");
+         goto error;
+     }
+ 
+     domainUpdated = virDomainDefineXML(conn->conn, tmp);
+     if (domainUpdated == NULL) {
+-        set_error_if_unset("Cannot update domain definition" TSRMLS_CC);
++        set_error_if_unset("Cannot update domain definition");
+         DPRINTF("%s: Cannot update domain definition "
+                 "(name = '%s', uuid = '%s', error = '%s')\n",
+                 PHPFUNC, name, uuid, LIBVIRT_G(last_error));
+@@ -242,7 +242,7 @@
+     res_domain->conn = conn;
+ 
+     DPRINTF("%s: returning %p\n", PHPFUNC, res_domain->domain);
+-    resource_change_counter(INT_RESOURCE_DOMAIN, conn->conn, res_domain->domain, 1 TSRMLS_CC);
++    resource_change_counter(INT_RESOURCE_DOMAIN, conn->conn, res_domain->domain, 1);
+ 
+     VIRT_REGISTER_RESOURCE(res_domain, le_libvirt_domain);
+     VIR_FREE(vmDisks);
+@@ -360,7 +360,7 @@
+     res_domain->conn = conn;
+ 
+     DPRINTF("%s: domain name = '%s', returning %p\n", PHPFUNC, name, res_domain->domain);
+-    resource_change_counter(INT_RESOURCE_DOMAIN, conn->conn, res_domain->domain, 1 TSRMLS_CC);
++    resource_change_counter(INT_RESOURCE_DOMAIN, conn->conn, res_domain->domain, 1);
+ 
+     VIRT_REGISTER_RESOURCE(res_domain, le_libvirt_domain);
+ }
+@@ -392,7 +392,7 @@
+ 
+     xml = virDomainGetXMLDesc(domain->domain, flags);
+     if (!xml) {
+-        set_error_if_unset("Cannot get the XML description" TSRMLS_CC);
++        set_error_if_unset("Cannot get the XML description");
+         RETURN_FALSE;
+     }
+ 
+@@ -428,7 +428,7 @@
+ 
+     xml = virDomainGetXMLDesc(domain->domain, 0);
+     if (!xml) {
+-        set_error_if_unset("Cannot get the XML description" TSRMLS_CC);
++        set_error_if_unset("Cannot get the XML description");
+         RETURN_FALSE;
+     }
+ 
+@@ -465,7 +465,7 @@
+ 
+     xml = virDomainGetXMLDesc(domain->domain, 0);
+     if (!xml) {
+-        set_error_if_unset("Cannot get the XML description" TSRMLS_CC);
++        set_error_if_unset("Cannot get the XML description");
+         RETURN_FALSE;
+     }
+ 
+@@ -548,7 +548,7 @@
+ 
+     xml = virDomainGetXMLDesc(domain->domain, xflags);
+     if (!xml) {
+-        set_error_if_unset("Cannot get the XML description" TSRMLS_CC);
++        set_error_if_unset("Cannot get the XML description");
+         RETURN_FALSE;
+     }
+ 
+@@ -557,7 +557,7 @@
+     tmp1 = strstr(xml, "</currentMemory>") + strlen("</currentMemory>");
+     // pos = strlen(xml) - strlen(tmp1);
+     if (!tmpA || !tmp1) {
+-        set_error_if_unset("Cannot parse domain XML" TSRMLS_CC);
++        set_error_if_unset("Cannot parse domain XML");
+         RETURN_FALSE;
+     }
+     len = strlen(xml) - strlen(tmpA);
+@@ -586,7 +586,7 @@
+     res_domain->conn = conn;
+ 
+     DPRINTF("%s: returning %p\n", PHPFUNC, res_domain->domain);
+-    resource_change_counter(INT_RESOURCE_DOMAIN, conn->conn, res_domain->domain, 1 TSRMLS_CC);
++    resource_change_counter(INT_RESOURCE_DOMAIN, conn->conn, res_domain->domain, 1);
+ 
+     VIRT_REGISTER_RESOURCE(res_domain, le_libvirt_domain);
+ }
+@@ -627,7 +627,7 @@
+ 
+     xml = virDomainGetXMLDesc(domain->domain, xflags);
+     if (!xml) {
+-        set_error_if_unset("Cannot get the XML description" TSRMLS_CC);
++        set_error_if_unset("Cannot get the XML description");
+         RETURN_FALSE;
+     }
+ 
+@@ -668,7 +668,7 @@
+     res_domain->conn = conn;
+ 
+     DPRINTF("%s: returning %p\n", PHPFUNC, res_domain->domain);
+-    resource_change_counter(INT_RESOURCE_DOMAIN, conn->conn, res_domain->domain, 1 TSRMLS_CC);
++    resource_change_counter(INT_RESOURCE_DOMAIN, conn->conn, res_domain->domain, 1);
+ 
+     VIRT_REGISTER_RESOURCE(res_domain, le_libvirt_domain);
+ }
+@@ -712,36 +712,36 @@
+ 
+     xml = virDomainGetXMLDesc(domain->domain, xflags);
+     if (!xml) {
+-        set_error_if_unset("Cannot get the XML description" TSRMLS_CC);
++        set_error_if_unset("Cannot get the XML description");
+         goto error;
+     }
+ 
+     if (asprintf(&xpath, "//domain/devices/disk/source[@file=\"%s\"]/./@file", img) < 0) {
+-        set_error("Out of memory" TSRMLS_CC);
++        set_error("Out of memory");
+         goto error;
+     }
+     tmp = get_string_from_xpath(xml, xpath, NULL, &retval);
+     if (tmp != NULL) {
+         VIR_FREE(tmp);
+         if (asprintf(&tmp, "Domain already has image <i>%s</i> connected", img) < 0)
+-            set_error("Out of memory" TSRMLS_CC);
++            set_error("Out of memory");
+         else
+-            set_error(tmp TSRMLS_CC);
++            set_error(tmp);
+         goto error;
+     }
+ 
+     VIR_FREE(xpath);
+     if (asprintf(&xpath, "//domain/devices/disk/target[@dev='%s']/./@dev", dev) < 0) {
+-        set_error("Out of memory" TSRMLS_CC);
++        set_error("Out of memory");
+         goto error;
+     }
+     tmp = get_string_from_xpath(xml, newXml, NULL, &retval);
+     if (tmp != NULL) {
+         VIR_FREE(tmp);
+         if (asprintf(&tmp, "Domain already has device <i>%s</i> connected", dev) < 0)
+-            set_error("Out of memory" TSRMLS_CC);
++            set_error("Out of memory");
+         else
+-            set_error(tmp TSRMLS_CC);
++            set_error(tmp);
+         goto error;
+     }
+ 
+@@ -751,7 +751,7 @@
+                  "      <source file='%s'/>\n"
+                  "      <target dev='%s' bus='%s'/>\n"
+                  "    </disk>", driver, img, dev, typ) < 0) {
+-        set_error("Out of memory" TSRMLS_CC);
++        set_error("Out of memory");
+         goto error;
+     }
+ 
+@@ -759,7 +759,7 @@
+         attachFlags = VIR_DOMAIN_AFFECT_CONFIG;
+ 
+     if (virDomainAttachDeviceFlags(domain->domain, newXml, attachFlags) < 0) {
+-        set_error("Unable to attach disk" TSRMLS_CC);
++        set_error("Unable to attach disk");
+         goto error;
+     }
+ 
+@@ -806,20 +806,20 @@
+ 
+     xml = virDomainGetXMLDesc(domain->domain, xflags);
+     if (!xml) {
+-        set_error_if_unset("Cannot get the XML description" TSRMLS_CC);
++        set_error_if_unset("Cannot get the XML description");
+         RETURN_FALSE;
+     }
+ 
+     if (asprintf(&xpath, "/domain/devices/disk[target/@dev='%s']", dev) < 0) {
+-        set_error("Out of memory" TSRMLS_CC);
++        set_error("Out of memory");
+         goto error;
+     }
+     newXml = get_node_string_from_xpath(xml, xpath);
+     if (!newXml) {
+         if (asprintf(&tmp, "Device <i>%s</i> is not connected to the guest", dev) < 0)
+-            set_error("Out of memory" TSRMLS_CC);
++            set_error("Out of memory");
+         else
+-            set_error(tmp TSRMLS_CC);
++            set_error(tmp);
+         goto error;
+     }
+ 
+@@ -827,7 +827,7 @@
+         detachFlags = VIR_DOMAIN_AFFECT_CONFIG;
+ 
+     if (virDomainDetachDeviceFlags(domain->domain, newXml, detachFlags) < 0) {
+-        set_error("Unable to detach disk" TSRMLS_CC);
++        set_error("Unable to detach disk");
+         goto error;
+     }
+ 
+@@ -884,21 +884,21 @@
+ 
+     xml = virDomainGetXMLDesc(domain->domain, xflags);
+     if (!xml) {
+-        set_error_if_unset("Cannot get the XML description" TSRMLS_CC);
++        set_error_if_unset("Cannot get the XML description");
+         RETURN_FALSE;
+     }
+ 
+     if (asprintf(&xpath, "//domain/devices/interface[@type='network']/mac[@address='%s']/./@mac", mac) < 0) {
+-        set_error("Out of memory" TSRMLS_CC);
++        set_error("Out of memory");
+         goto error;
+     }
+     tmp = get_string_from_xpath(xml, xpath, NULL, &retval);
+     if (tmp) {
+         VIR_FREE(tmp);
+         if (asprintf(&tmp, "Domain already has NIC device with MAC address <i>%s</i> connected", mac) < 0)
+-            set_error("Out of memory" TSRMLS_CC);
++            set_error("Out of memory");
+         else
+-            set_error(tmp TSRMLS_CC);
++            set_error(tmp);
+         goto error;
+     }
+ 
+@@ -909,7 +909,7 @@
+                      "       <source network='%s' />\n"
+                      "       <model type='%s' />\n"
+                      "   </interface>", mac, net, model) < 0) {
+-            set_error("Out of memory" TSRMLS_CC);
++            set_error("Out of memory");
+             goto error;
+         }
+     } else {
+@@ -918,7 +918,7 @@
+                      "       <mac address='%s' />\n"
+                      "       <source network='%s' />\n"
+                      "   </interface>", mac, net) < 0) {
+-            set_error("Out of memory" TSRMLS_CC);
++            set_error("Out of memory");
+             goto error;
+         }
+     }
+@@ -927,7 +927,7 @@
+         attachFlags = VIR_DOMAIN_AFFECT_CONFIG;
+ 
+     if (virDomainAttachDeviceFlags(domain->domain, newXml, attachFlags) < 0) {
+-        set_error("Unable to attach interface" TSRMLS_CC);
++        set_error("Unable to attach interface");
+         goto error;
+     }
+ 
+@@ -974,21 +974,21 @@
+ 
+     xml = virDomainGetXMLDesc(domain->domain, xflags);
+     if (!xml) {
+-        set_error_if_unset("Cannot get the XML description" TSRMLS_CC);
++        set_error_if_unset("Cannot get the XML description");
+         RETURN_FALSE;
+     }
+ 
+     if (asprintf(&xpath, "/domain/devices/interface[mac/@address='%s']", mac) < 0) {
+-        set_error("Out of memory" TSRMLS_CC);
++        set_error("Out of memory");
+         goto error;
+     }
+ 
+     newXml = get_node_string_from_xpath(xml, xpath);
+     if (!newXml) {
+         if (asprintf(&tmp, "Domain has no such interface with mac %s", mac) < 0)
+-            set_error("Out of memory" TSRMLS_CC);
++            set_error("Out of memory");
+         else
+-            set_error(tmp TSRMLS_CC);
++            set_error(tmp);
+         goto error;
+     }
+ 
+@@ -996,7 +996,7 @@
+         detachFlags = VIR_DOMAIN_AFFECT_CONFIG;
+ 
+     if (virDomainDetachDeviceFlags(domain->domain, newXml, detachFlags) < 0) {
+-        set_error("Unable to detach interface" TSRMLS_CC);
++        set_error("Unable to detach interface");
+         goto error;
+     }
+ 
+@@ -1224,7 +1224,7 @@
+     res_domain->conn = conn;
+ 
+     DPRINTF("%s: domain UUID = '%s', returning %p\n", PHPFUNC, uuid, res_domain->domain);
+-    resource_change_counter(INT_RESOURCE_DOMAIN, conn->conn, res_domain->domain, 1 TSRMLS_CC);
++    resource_change_counter(INT_RESOURCE_DOMAIN, conn->conn, res_domain->domain, 1);
+ 
+     VIRT_REGISTER_RESOURCE(res_domain, le_libvirt_domain);
+ }
+@@ -1259,7 +1259,7 @@
+     res_domain->conn = conn;
+ 
+     DPRINTF("%s: domain UUID string = '%s', returning %p\n", PHPFUNC, uuid, res_domain->domain);
+-    resource_change_counter(INT_RESOURCE_DOMAIN, conn->conn, res_domain->domain, 1 TSRMLS_CC);
++    resource_change_counter(INT_RESOURCE_DOMAIN, conn->conn, res_domain->domain, 1);
+ 
+     VIRT_REGISTER_RESOURCE(res_domain, le_libvirt_domain);
+ }
+@@ -1291,7 +1291,7 @@
+     res_domain->conn = conn;
+ 
+     DPRINTF("%s: domain id = '%d', returning %p\n", PHPFUNC, (int)id, res_domain->domain);
+-    resource_change_counter(INT_RESOURCE_DOMAIN, conn->conn, res_domain->domain, 1 TSRMLS_CC);
++    resource_change_counter(INT_RESOURCE_DOMAIN, conn->conn, res_domain->domain, 1);
+ 
+     VIRT_REGISTER_RESOURCE(res_domain, le_libvirt_domain);
+ }
+@@ -1550,7 +1550,7 @@
+     res_domain->conn = conn;
+ 
+     DPRINTF("%s: returning %p\n", PHPFUNC, res_domain->domain);
+-    resource_change_counter(INT_RESOURCE_DOMAIN, conn->conn, res_domain->domain, 1 TSRMLS_CC);
++    resource_change_counter(INT_RESOURCE_DOMAIN, conn->conn, res_domain->domain, 1);
+ 
+     VIRT_REGISTER_RESOURCE(res_domain, le_libvirt_domain);
+ }
+@@ -1585,7 +1585,7 @@
+     res_domain->conn = conn;
+ 
+     DPRINTF("%s: returning %p\n", PHPFUNC, res_domain->domain);
+-    resource_change_counter(INT_RESOURCE_DOMAIN, conn->conn, res_domain->domain, 1 TSRMLS_CC);
++    resource_change_counter(INT_RESOURCE_DOMAIN, conn->conn, res_domain->domain, 1);
+ 
+     VIRT_REGISTER_RESOURCE(res_domain, le_libvirt_domain);
+ }
+@@ -1615,7 +1615,7 @@
+     xml = virConnectDomainXMLFromNative(conn->conn, format, config_data, flags);
+ 
+     if (xml == NULL) {
+-        set_error_if_unset("Cannot convert native format to XML" TSRMLS_CC);
++        set_error_if_unset("Cannot convert native format to XML");
+         RETURN_FALSE;
+     }
+ 
+@@ -1648,7 +1648,7 @@
+     config_data = virConnectDomainXMLToNative(conn->conn, format, xml_data, flags);
+ 
+     if (config_data == NULL) {
+-        set_error_if_unset("Cannot convert to native format from XML" TSRMLS_CC);
++        set_error_if_unset("Cannot convert to native format from XML");
+         RETURN_FALSE;
+     }
+ 
+@@ -1746,7 +1746,7 @@
+ 
+     GET_DOMAIN_FROM_ARGS("rlll", &zdomain, &start, &size, &flags);
+     if (start < 0) {
+-        set_error("Negative argument start" TSRMLS_CC);
++        set_error("Negative argument start");
+         RETURN_FALSE;
+     }
+     buff = (char *)emalloc(size);
+@@ -2127,13 +2127,13 @@
+     GET_DOMAIN_FROM_ARGS("rrl|sl", &zdomain, &zdconn, &flags, &dname, &dname_len, &bandwidth);
+ 
+     if ((domain->domain == NULL) || (domain->conn->conn == NULL)) {
+-        set_error("Domain object is not valid" TSRMLS_CC);
++        set_error("Domain object is not valid");
+         RETURN_FALSE;
+     }
+ 
+     VIRT_FETCH_RESOURCE(dconn, php_libvirt_connection*, &zdconn, PHP_LIBVIRT_CONNECTION_RES_NAME, le_libvirt_connection);
+     if ((dconn == NULL) || (dconn->conn == NULL)) {
+-        set_error("Destination connection object is not valid" TSRMLS_CC);
++        set_error("Destination connection object is not valid");
+         RETURN_FALSE;
+     }
+ 
+@@ -2146,7 +2146,7 @@
+     res_domain->conn = dconn;
+ 
+     DPRINTF("%s: returning %p\n", PHPFUNC, res_domain->domain);
+-    resource_change_counter(INT_RESOURCE_DOMAIN, dconn->conn, res_domain->domain, 1 TSRMLS_CC);
++    resource_change_counter(INT_RESOURCE_DOMAIN, dconn->conn, res_domain->domain, 1);
+ 
+     VIRT_REGISTER_RESOURCE(res_domain, le_libvirt_domain);
+ }
+@@ -2354,45 +2354,45 @@
+     /* Get XML for the domain */
+     xml = virDomainGetXMLDesc(domain->domain, VIR_DOMAIN_XML_INACTIVE);
+     if (!xml) {
+-        set_error("Cannot get domain XML" TSRMLS_CC);
++        set_error("Cannot get domain XML");
+         RETURN_FALSE;
+     }
+ 
+     isFile = 0;
+ 
+     if (asprintf(&xpath, "//domain/devices/disk/target[@dev='%s']/../source/@dev", dev) < 0) {
+-        set_error("Out of memory" TSRMLS_CC);
++        set_error("Out of memory");
+         goto error;
+     }
+     tmp = get_string_from_xpath(xml, xpath, NULL, &retval);
+     if (retval < 0) {
+-        set_error("Cannot get XPath expression result for device storage" TSRMLS_CC);
++        set_error("Cannot get XPath expression result for device storage");
+         goto error;
+     }
+ 
+     if (retval == 0) {
+         VIR_FREE(xpath);
+         if (asprintf(&xpath, "//domain/devices/disk/target[@dev='%s']/../source/@file", dev) < 0) {
+-            set_error("Out of memory" TSRMLS_CC);
++            set_error("Out of memory");
+             goto error;
+         }
+         VIR_FREE(tmp);
+         tmp = get_string_from_xpath(xml, xpath, NULL, &retval);
+         if (retval < 0) {
+-            set_error("Cannot get XPath expression result for file storage" TSRMLS_CC);
++            set_error("Cannot get XPath expression result for file storage");
+             goto error;
+         }
+         isFile = 1;
+     }
+ 
+     if (retval == 0) {
+-        set_error("No relevant node found" TSRMLS_CC);
++        set_error("No relevant node found");
+         goto error;
+     }
+ 
+     retval = virDomainGetBlockInfo(domain->domain, tmp, &info, 0);
+     if (retval == -1) {
+-        set_error("Cannot get domain block information" TSRMLS_CC);
++        set_error("Cannot get domain block information");
+         goto error;
+     }
+ 
+@@ -2407,7 +2407,7 @@
+ 
+     VIR_FREE(xpath);
+     if (asprintf(&xpath, "//domain/devices/disk/target[@dev='%s']/../driver/@type", dev) < 0) {
+-        set_error("Out of memory" TSRMLS_CC);
++        set_error("Out of memory");
+         goto error;
+     }
+     VIR_FREE(tmp);
+@@ -2455,23 +2455,23 @@
+     /* Get XML for the domain */
+     xml = virDomainGetXMLDesc(domain->domain, VIR_DOMAIN_XML_INACTIVE);
+     if (!xml) {
+-        set_error("Cannot get domain XML" TSRMLS_CC);
++        set_error("Cannot get domain XML");
+         RETURN_FALSE;
+     }
+ 
+     DPRINTF("%s: Getting network information for NIC with MAC address '%s'\n", PHPFUNC, mac);
+     if (asprintf(&xpath, "//domain/devices/interface[@type='network']/mac[@address='%s']/../source/@network", mac) < 0) {
+-        set_error("Out of memory" TSRMLS_CC);
++        set_error("Out of memory");
+         goto error;
+     }
+     tmp = get_string_from_xpath(xml, xpath, NULL, &retval);
+     if (tmp == NULL) {
+-        set_error("Invalid XPath node for source network" TSRMLS_CC);
++        set_error("Invalid XPath node for source network");
+         goto error;
+     }
+ 
+     if (retval < 0) {
+-        set_error("Cannot get XPath expression result for network source" TSRMLS_CC);
++        set_error("Cannot get XPath expression result for network source");
+         goto error;
+     }
+ 
+@@ -2483,7 +2483,7 @@
+     VIR_FREE(xpath);
+ 
+     if (asprintf(&xpath, "//domain/devices/interface[@type='network']/mac[@address='%s']/../model/@type", mac) < 0) {
+-        set_error("Out of memory" TSRMLS_CC);
++        set_error("Out of memory");
+         goto error;
+     }
+     tmp = get_string_from_xpath(xml, xpath, NULL, &retval);
+@@ -2702,7 +2702,7 @@
+         use_builtin = 1;
+     } else {
+         if (!(pathDup = strdup(path))) {
+-            set_error("Out of memory" TSRMLS_CC);
++            set_error("Out of memory");
+             goto error;
+         }
+     }
+@@ -2711,13 +2711,13 @@
+ 
+     xml = virDomainGetXMLDesc(domain->domain, 0);
+     if (!xml) {
+-        set_error_if_unset("Cannot get the XML description" TSRMLS_CC);
++        set_error_if_unset("Cannot get the XML description");
+         goto error;
+     }
+ 
+     tmp = get_string_from_xpath(xml, "//domain/devices/graphics/@port", NULL, &retval);
+     if ((tmp == NULL) || (retval < 0)) {
+-        set_error("Cannot get the VNC port" TSRMLS_CC);
++        set_error("Cannot get the VNC port");
+         goto error;
+     }
+ 
+@@ -2735,7 +2735,7 @@
+         DPRINTF("%s: Binary not found, using builtin approach to %s:%s, tmp file = %s\n", PHPFUNC, hostname, tmp, file);
+ 
+         if (vnc_get_bitmap(hostname, tmp, file) != 0) {
+-            set_error("Cannot use builtin approach to get VNC window contents" TSRMLS_CC);
++            set_error("Cannot use builtin approach to get VNC window contents");
+             goto error;
+         }
+     } else {
+@@ -2762,7 +2762,7 @@
+         }
+ 
+         if (WEXITSTATUS(retval) != 0) {
+-            set_error("Cannot spawn utility to get screenshot" TSRMLS_CC);
++            set_error("Cannot spawn utility to get screenshot");
+             goto error;
+         }
+     }
+@@ -2800,7 +2800,7 @@
+     VIR_FREE(pathDup);
+     RETURN_FALSE;
+ #else
+-    set_error("Function is not supported on Windows systems" TSRMLS_CC);
++    set_error("Function is not supported on Windows systems");
+     RETURN_FALSE;
+ #endif
+ }
+@@ -2825,37 +2825,37 @@
+     const char *bin = get_feature_binary("screenshot-convert");
+ 
+ #ifdef EXTWIN
+-    set_error_if_unset("Cannot get domain screenshot on Windows systems" TSRMLS_CC);
++    set_error_if_unset("Cannot get domain screenshot on Windows systems");
+     RETURN_FALSE;
+ #endif
+ 
+     GET_DOMAIN_FROM_ARGS("r|l", &zdomain, &screen);
+ 
+     if (!(st = virStreamNew(domain->conn->conn, 0))) {
+-        set_error("Cannot create new stream" TSRMLS_CC);
++        set_error("Cannot create new stream");
+         goto error;
+     }
+ 
+     mime = virDomainScreenshot(domain->domain, st, screen, 0);
+     if (!mime) {
+-        set_error_if_unset("Cannot get domain screenshot" TSRMLS_CC);
++        set_error_if_unset("Cannot get domain screenshot");
+         goto error;
+     }
+ 
+     if (!(fd = mkstemp(file))) {
+         virStreamAbort(st);
+-        set_error_if_unset("Cannot get create file to save domain screenshot" TSRMLS_CC);
++        set_error_if_unset("Cannot get create file to save domain screenshot");
+         goto error;
+     }
+ 
+     if (virStreamRecvAll(st, streamSink, &fd) < 0) {
+-        set_error_if_unset("Cannot receive screenshot data" TSRMLS_CC);
++        set_error_if_unset("Cannot receive screenshot data");
+         virStreamAbort(st);
+         goto error;
+     }
+ 
+     if (virStreamFinish(st) < 0) {
+-        set_error_if_unset("Cannot close stream for domain" TSRMLS_CC);
++        set_error_if_unset("Cannot close stream for domain");
+         goto error;
+     }
+ 
+@@ -2926,13 +2926,13 @@
+ 
+     xml = virDomainGetXMLDesc(domain->domain, 0);
+     if (!xml) {
+-        set_error_if_unset("Cannot get the XML description" TSRMLS_CC);
++        set_error_if_unset("Cannot get the XML description");
+         goto error;
+     }
+ 
+     tmp = get_string_from_xpath(xml, "//domain/devices/graphics/@port", NULL, &retval);
+     if ((tmp == NULL) || (retval < 0)) {
+-        set_error("Cannot get the VNC port" TSRMLS_CC);
++        set_error("Cannot get the VNC port");
+         goto error;
+     }
+ 
+@@ -2946,7 +2946,7 @@
+         else
+             snprintf(error, sizeof(error), "Cannot get screen dimensions, error code = %d (%s)", ret, strerror(-ret));
+ 
+-        set_error(error TSRMLS_CC);
++        set_error(error);
+         goto error;
+     }
+ 
+@@ -2963,7 +2963,7 @@
+     VIR_FREE(xml);
+     RETURN_FALSE;
+ #else
+-    set_error("Function is not supported on Windows systems" TSRMLS_CC);
++    set_error("Function is not supported on Windows systems");
+     RETURN_FALSE;
+ #endif
+ }
+@@ -2997,13 +2997,13 @@
+ 
+     xml = virDomainGetXMLDesc(domain->domain, 0);
+     if (!xml) {
+-        set_error_if_unset("Cannot get the XML description" TSRMLS_CC);
++        set_error_if_unset("Cannot get the XML description");
+         goto error;
+     }
+ 
+     tmp = get_string_from_xpath(xml, "//domain/devices/graphics/@port", NULL, &retval);
+     if ((tmp == NULL) || (retval < 0)) {
+-        set_error("Cannot get the VNC port" TSRMLS_CC);
++        set_error("Cannot get the VNC port");
+         goto error;
+     }
+ 
+@@ -3015,7 +3015,7 @@
+     if (!ret) {
+         char tmpp[64] = { 0 };
+         snprintf(tmpp, sizeof(tmpp), "Cannot send keys, error code %d", ret);
+-        set_error(tmpp TSRMLS_CC);
++        set_error(tmpp);
+         goto error;
+     }
+ 
+@@ -3028,7 +3028,7 @@
+     VIR_FREE(xml);
+     RETURN_FALSE;
+ #else
+-    set_error("Function is not supported on Windows systems" TSRMLS_CC);
++    set_error("Function is not supported on Windows systems");
+     RETURN_FALSE;
+ #endif
+ }
+@@ -3114,13 +3114,13 @@
+ 
+     xml = virDomainGetXMLDesc(domain->domain, 0);
+     if (!xml) {
+-        set_error_if_unset("Cannot get the XML description" TSRMLS_CC);
++        set_error_if_unset("Cannot get the XML description");
+         goto error;
+     }
+ 
+     tmp = get_string_from_xpath(xml, "//domain/devices/graphics/@port", NULL, &retval);
+     if ((tmp == NULL) || (retval < 0)) {
+-        set_error("Cannot get the VNC port" TSRMLS_CC);
++        set_error("Cannot get the VNC port");
+         goto error;
+     }
+ 
+@@ -3133,7 +3133,7 @@
+         else
+             snprintf(error, sizeof(error), "Cannot send pointer event, error code = %d (%s)", ret, strerror(-ret));
+ 
+-        set_error(error TSRMLS_CC);
++        set_error(error);
+         goto error;
+     }
+ 
+@@ -3146,7 +3146,7 @@
+     VIR_FREE(xml);
+     RETURN_FALSE;
+ #else
+-    set_error("Function is not supported on Windows systems" TSRMLS_CC);
++    set_error("Function is not supported on Windows systems");
+     RETURN_FALSE;
+ #endif
+ }
+@@ -3293,7 +3293,7 @@
+         res_domain->conn = conn;
+ 
+         VIRT_REGISTER_LIST_RESOURCE(domain);
+-        resource_change_counter(INT_RESOURCE_DOMAIN, conn->conn, res_domain->domain, 1 TSRMLS_CC);
++        resource_change_counter(INT_RESOURCE_DOMAIN, conn->conn, res_domain->domain, 1);
+     }
+ 
+     /* Avoid freeing domains, they are registered as resources
+--- a/src/libvirt-domain.h
++++ b/src/libvirt-domain.h
+@@ -25,11 +25,11 @@
+ 
+ # define GET_DOMAIN_FROM_ARGS(args, ...)                                       \
+     do {                                                                       \
+-        reset_error(TSRMLS_C);                                                 \
+-        if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC,                   \
++        reset_error();                                                 \
++        if (zend_parse_parameters(ZEND_NUM_ARGS(),                   \
+                                   args,                                        \
+                                   __VA_ARGS__) == FAILURE) {                   \
+-            set_error("Invalid arguments" TSRMLS_CC);                          \
++            set_error("Invalid arguments");                          \
+             RETURN_FALSE;                                                      \
+         }                                                                      \
+                                                                                \
+@@ -127,7 +127,7 @@
+     php_libvirt_connection* conn;
+ } php_libvirt_domain;
+ 
+-void php_libvirt_domain_dtor(virt_resource *rsrc TSRMLS_DC);
++void php_libvirt_domain_dtor(virt_resource *rsrc);
+ 
+ PHP_FUNCTION(libvirt_domain_new);
+ PHP_FUNCTION(libvirt_domain_new_get_vnc);
+--- a/src/libvirt-network.c
++++ b/src/libvirt-network.c
+@@ -14,14 +14,14 @@
+ int le_libvirt_network;
+ 
+ void
+-php_libvirt_network_dtor(virt_resource *rsrc TSRMLS_DC)
++php_libvirt_network_dtor(virt_resource *rsrc)
+ {
+     php_libvirt_network *network = (php_libvirt_network *)rsrc->ptr;
+     int rv = 0;
+ 
+     if (network != NULL) {
+         if (network->network != NULL) {
+-            if (!check_resource_allocation(network->conn->conn, INT_RESOURCE_NETWORK, network->network TSRMLS_CC)) {
++            if (!check_resource_allocation(network->conn->conn, INT_RESOURCE_NETWORK, network->network)) {
+                 network->network = NULL;
+                 efree(network);
+                 return;
+@@ -29,10 +29,10 @@
+             rv = virNetworkFree(network->network);
+             if (rv != 0) {
+                 DPRINTF("%s: virNetworkFree(%p) returned %d (%s)\n", __FUNCTION__, network->network, rv, LIBVIRT_G(last_error));
+-                php_error_docref(NULL TSRMLS_CC, E_WARNING, "virStorageVolFree failed with %i on destructor: %s", rv, LIBVIRT_G(last_error));
++                php_error_docref(NULL, E_WARNING, "virStorageVolFree failed with %i on destructor: %s", rv, LIBVIRT_G(last_error));
+             } else {
+                 DPRINTF("%s: virNetworkFree(%p) completed successfully\n", __FUNCTION__, network->network);
+-                resource_change_counter(INT_RESOURCE_NETWORK, NULL, network->network, 0 TSRMLS_CC);
++                resource_change_counter(INT_RESOURCE_NETWORK, NULL, network->network, 0);
+             }
+             network->network = NULL;
+         }
+@@ -60,7 +60,7 @@
+     GET_CONNECTION_FROM_ARGS("rs", &zconn, &xml, &xml_len);
+ 
+     if ((net = virNetworkDefineXML(conn->conn, xml)) == NULL) {
+-        set_error_if_unset("Cannot define a new network" TSRMLS_CC);
++        set_error_if_unset("Cannot define a new network");
+         RETURN_FALSE;
+     }
+ 
+@@ -69,7 +69,7 @@
+     res_net->conn = conn;
+ 
+     DPRINTF("%s: returning %p\n", PHPFUNC, res_net->network);
+-    resource_change_counter(INT_RESOURCE_NETWORK, conn->conn, res_net->network, 1 TSRMLS_CC);
++    resource_change_counter(INT_RESOURCE_NETWORK, conn->conn, res_net->network, 1);
+ 
+     VIRT_REGISTER_RESOURCE(res_net, le_libvirt_network);
+ }
+@@ -99,7 +99,7 @@
+     xml = virNetworkGetXMLDesc(network->network, 0);
+ 
+     if (xml == NULL) {
+-        set_error_if_unset("Cannot get network XML" TSRMLS_CC);
++        set_error_if_unset("Cannot get network XML");
+         RETURN_FALSE;
+     }
+ 
+@@ -154,7 +154,7 @@
+     GET_CONNECTION_FROM_ARGS("rs", &zconn, &name, &name_len);
+ 
+     if ((net = virNetworkLookupByName(conn->conn, name)) == NULL) {
+-        set_error_if_unset("Cannot get find requested network" TSRMLS_CC);
++        set_error_if_unset("Cannot get find requested network");
+         RETURN_FALSE;
+     }
+ 
+@@ -163,7 +163,7 @@
+     res_net->conn = conn;
+ 
+     DPRINTF("%s: returning %p\n", PHPFUNC, res_net->network);
+-    resource_change_counter(INT_RESOURCE_NETWORK, conn->conn, res_net->network, 1 TSRMLS_CC);
++    resource_change_counter(INT_RESOURCE_NETWORK, conn->conn, res_net->network, 1);
+ 
+     VIRT_REGISTER_RESOURCE(res_net, le_libvirt_network);
+ }
+@@ -186,7 +186,7 @@
+     name = virNetworkGetBridgeName(network->network);
+ 
+     if (name == NULL) {
+-        set_error_if_unset("Cannot get network bridge name" TSRMLS_CC);
++        set_error_if_unset("Cannot get network bridge name");
+         RETURN_FALSE;
+     }
+ 
+@@ -212,7 +212,7 @@
+     res = virNetworkIsActive(network->network);
+ 
+     if (res == -1) {
+-        set_error_if_unset("Error getting virtual network state" TSRMLS_CC);
++        set_error_if_unset("Error getting virtual network state");
+         RETURN_FALSE;
+     }
+ 
+@@ -238,7 +238,7 @@
+     GET_NETWORK_FROM_ARGS("rl", &znetwork, &act);
+ 
+     if ((act != 0) && (act != 1)) {
+-        set_error("Invalid network activity state" TSRMLS_CC);
++        set_error("Invalid network activity state");
+         RETURN_FALSE;
+     }
+ 
+@@ -290,7 +290,7 @@
+     xml = virNetworkGetXMLDesc(network->network, 0);
+ 
+     if (xml == NULL) {
+-        set_error_if_unset("Cannot get network XML" TSRMLS_CC);
++        set_error_if_unset("Cannot get network XML");
+         RETURN_FALSE;
+     }
+ 
+@@ -299,12 +299,12 @@
+     /* Get name */
+     name = get_string_from_xpath(xml, "//network/name", NULL, &retval);
+     if (name == NULL) {
+-        set_error("Invalid XPath node for network name" TSRMLS_CC);
++        set_error("Invalid XPath node for network name");
+         RETURN_FALSE;
+     }
+ 
+     if (retval < 0) {
+-        set_error("Cannot get XPath expression result for network name" TSRMLS_CC);
++        set_error("Cannot get XPath expression result for network name");
+         RETURN_FALSE;
+     }
+ 
+@@ -520,7 +520,7 @@
+ 
+         VIRT_REGISTER_LIST_RESOURCE(network);
+         resource_change_counter(INT_RESOURCE_NETWORK, conn->conn,
+-                                res_network->network, 1 TSRMLS_CC);
++                                res_network->network, 1);
+     }
+ }
+ 
+--- a/src/libvirt-network.h
++++ b/src/libvirt-network.h
+@@ -14,11 +14,11 @@
+ 
+ # define GET_NETWORK_FROM_ARGS(args, ...)                                      \
+     do {                                                                       \
+-        reset_error(TSRMLS_C);                                                 \
+-        if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC,                   \
++        reset_error();                                                 \
++        if (zend_parse_parameters(ZEND_NUM_ARGS(),                   \
+                                   args,                                        \
+                                   __VA_ARGS__) == FAILURE) {                   \
+-            set_error("Invalid arguments" TSRMLS_CC);                          \
++            set_error("Invalid arguments");                          \
+             RETURN_FALSE;                                                      \
+         }                                                                      \
+                                                                                \
+@@ -52,7 +52,7 @@
+     php_libvirt_connection* conn;
+ } php_libvirt_network;
+ 
+-void php_libvirt_network_dtor(virt_resource *rsrc TSRMLS_DC);
++void php_libvirt_network_dtor(virt_resource *rsrc);
+ 
+ PHP_FUNCTION(libvirt_network_define_xml);
+ PHP_FUNCTION(libvirt_network_get_xml_desc);
+--- a/src/libvirt-node.c
++++ b/src/libvirt-node.c
+@@ -66,7 +66,7 @@
+     GET_CONNECTION_FROM_ARGS("r|l", &zconn, &cpunr);
+ 
+     if (virNodeGetInfo(conn->conn, &info) != 0) {
+-        set_error("Cannot get number of CPUs" TSRMLS_CC);
++        set_error("Cannot get number of CPUs");
+         RETURN_FALSE;
+     }
+ 
+@@ -75,7 +75,7 @@
+         char tmp[256] = { 0 };
+         snprintf(tmp, sizeof(tmp), "Invalid CPU number, valid numbers in range 0 to %d or VIR_NODE_CPU_STATS_ALL_CPUS",
+                  numCpus - 1);
+-        set_error(tmp TSRMLS_CC);
++        set_error(tmp);
+ 
+         RETURN_FALSE;
+     }
+@@ -83,7 +83,7 @@
+     cpuNum = (int)cpunr;
+ 
+     if (virNodeGetCPUStats(conn->conn, cpuNum, NULL, &nparams, 0) != 0) {
+-        set_error("Cannot get number of CPU stats" TSRMLS_CC);
++        set_error("Cannot get number of CPU stats");
+         RETURN_FALSE;
+     }
+ 
+@@ -106,7 +106,7 @@
+ #endif
+ 
+         if (virNodeGetCPUStats(conn->conn, cpuNum, params, &nparams, 0) != 0) {
+-            set_error("Unable to get node cpu stats" TSRMLS_CC);
++            set_error("Unable to get node cpu stats");
+             RETURN_FALSE;
+         }
+ 
+@@ -160,12 +160,12 @@
+     GET_CONNECTION_FROM_ARGS("r|l", &zconn, &avg);
+ 
+     if (virNodeGetInfo(conn->conn, &info) != 0) {
+-        set_error("Cannot get number of CPUs" TSRMLS_CC);
++        set_error("Cannot get number of CPUs");
+         RETURN_FALSE;
+     }
+ 
+     if (virNodeGetCPUStats(conn->conn, VIR_NODE_CPU_STATS_ALL_CPUS, NULL, &nparams, 0) != 0) {
+-        set_error("Cannot get number of CPU stats" TSRMLS_CC);
++        set_error("Cannot get number of CPU stats");
+         RETURN_FALSE;
+     }
+ 
+@@ -191,7 +191,7 @@
+             zval *arr2;
+ 
+             if (virNodeGetCPUStats(conn->conn, i, params, &nparams, 0) != 0) {
+-                set_error("Unable to get node cpu stats" TSRMLS_CC);
++                set_error("Unable to get node cpu stats");
+                 RETURN_FALSE;
+             }
+ 
+@@ -248,7 +248,7 @@
+     GET_CONNECTION_FROM_ARGS("r", &zconn);
+ 
+     if (virNodeGetMemoryStats(conn->conn, memNum, NULL, &nparams, 0) != 0) {
+-        set_error("Cannot get number of memory stats" TSRMLS_CC);
++        set_error("Cannot get number of memory stats");
+         RETURN_FALSE;
+     }
+ 
+@@ -261,7 +261,7 @@
+ 
+     array_init(return_value);
+     if (virNodeGetMemoryStats(conn->conn, memNum, params, &nparams, 0) != 0) {
+-        set_error("Unable to get node memory stats" TSRMLS_CC);
++        set_error("Unable to get node memory stats");
+         RETURN_FALSE;
+     }
+ 
+@@ -295,7 +295,7 @@
+     if ((ret = virNodeGetFreeMemory(conn->conn)) != 0) {
+         LONGLONG_RETURN_AS_STRING(ret);
+     } else {
+-        set_error("Cannot get the free memory for the node" TSRMLS_CC);
++        set_error("Cannot get the free memory for the node");
+         RETURN_FALSE;
+     }
+ }
+--- a/src/libvirt-nodedev.c
++++ b/src/libvirt-nodedev.c
+@@ -14,14 +14,14 @@
+ int le_libvirt_nodedev;
+ 
+ void
+-php_libvirt_nodedev_dtor(virt_resource *rsrc TSRMLS_DC)
++php_libvirt_nodedev_dtor(virt_resource *rsrc)
+ {
+     php_libvirt_nodedev *nodedev = (php_libvirt_nodedev *)rsrc->ptr;
+     int rv = 0;
+ 
+     if (nodedev != NULL) {
+         if (nodedev->device != NULL) {
+-            if (!check_resource_allocation(nodedev->conn->conn, INT_RESOURCE_NODEDEV, nodedev->device TSRMLS_CC)) {
++            if (!check_resource_allocation(nodedev->conn->conn, INT_RESOURCE_NODEDEV, nodedev->device)) {
+                 nodedev->device = NULL;
+                 efree(nodedev);
+                 return;
+@@ -29,10 +29,10 @@
+             rv = virNodeDeviceFree(nodedev->device);
+             if (rv != 0) {
+                 DPRINTF("%s: virNodeDeviceFree(%p) returned %d (%s)\n", __FUNCTION__, nodedev->device, rv, LIBVIRT_G(last_error));
+-                php_error_docref(NULL TSRMLS_CC, E_WARNING, "virStorageVolFree failed with %i on destructor: %s", rv, LIBVIRT_G(last_error));
++                php_error_docref(NULL, E_WARNING, "virStorageVolFree failed with %i on destructor: %s", rv, LIBVIRT_G(last_error));
+             } else {
+                 DPRINTF("%s: virNodeDeviceFree(%p) completed successfully\n", __FUNCTION__, nodedev->device);
+-                resource_change_counter(INT_RESOURCE_NODEDEV, nodedev->conn->conn, nodedev->device, 0 TSRMLS_CC);
++                resource_change_counter(INT_RESOURCE_NODEDEV, nodedev->conn->conn, nodedev->device, 0);
+             }
+             nodedev->device = NULL;
+         }
+@@ -60,7 +60,7 @@
+     GET_CONNECTION_FROM_ARGS("rs", &zconn, &name, &name_len);
+ 
+     if ((dev = virNodeDeviceLookupByName(conn->conn, name)) == NULL) {
+-        set_error("Cannot get find requested node device" TSRMLS_CC);
++        set_error("Cannot get find requested node device");
+         RETURN_FALSE;
+     }
+ 
+@@ -69,7 +69,7 @@
+     res_dev->conn = conn;
+ 
+     DPRINTF("%s: returning %p\n", PHPFUNC, res_dev->device);
+-    resource_change_counter(INT_RESOURCE_NODEDEV, conn->conn, res_dev->device, 1 TSRMLS_CC);
++    resource_change_counter(INT_RESOURCE_NODEDEV, conn->conn, res_dev->device, 1);
+ 
+     VIRT_REGISTER_RESOURCE(res_dev, le_libvirt_nodedev);
+ }
+@@ -132,7 +132,7 @@
+ 
+     xml = virNodeDeviceGetXMLDesc(nodedev->device, 0);
+     if (!xml) {
+-        set_error("Cannot get the device XML information" TSRMLS_CC);
++        set_error("Cannot get the device XML information");
+         RETURN_FALSE;
+     }
+ 
+@@ -166,7 +166,7 @@
+ 
+     xml = virNodeDeviceGetXMLDesc(nodedev->device, 0);
+     if (!xml) {
+-        set_error("Cannot get the device XML information" TSRMLS_CC);
++        set_error("Cannot get the device XML information");
+         RETURN_FALSE;
+     }
+ 
+@@ -175,12 +175,12 @@
+     /* Get name */
+     tmp = get_string_from_xpath(xml, "//device/name", NULL, &retval);
+     if (tmp == NULL) {
+-        set_error("Invalid XPath node for device name" TSRMLS_CC);
++        set_error("Invalid XPath node for device name");
+         goto error;
+     }
+ 
+     if (retval < 0) {
+-        set_error("Cannot get XPath expression result for device name" TSRMLS_CC);
++        set_error("Cannot get XPath expression result for device name");
+         goto error;
+     }
+ 
+--- a/src/libvirt-nodedev.h
++++ b/src/libvirt-nodedev.h
+@@ -21,11 +21,11 @@
+ 
+ # define GET_NODEDEV_FROM_ARGS(args, ...)                                      \
+     do {                                                                       \
+-        reset_error(TSRMLS_C);                                                 \
+-        if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC,                   \
++        reset_error();                                                 \
++        if (zend_parse_parameters(ZEND_NUM_ARGS(),                   \
+                                   args,                                        \
+                                   __VA_ARGS__) == FAILURE) {                   \
+-            set_error("Invalid arguments" TSRMLS_CC);                          \
++            set_error("Invalid arguments");                          \
+             RETURN_FALSE;                                                      \
+         }                                                                      \
+                                                                                \
+@@ -43,7 +43,7 @@
+ } php_libvirt_nodedev;
+ 
+ 
+-void php_libvirt_nodedev_dtor(virt_resource *rsrc TSRMLS_DC);
++void php_libvirt_nodedev_dtor(virt_resource *rsrc);
+ 
+ PHP_FUNCTION(libvirt_nodedev_get);
+ PHP_FUNCTION(libvirt_nodedev_capabilities);
+--- a/src/libvirt-nwfilter.c
++++ b/src/libvirt-nwfilter.c
+@@ -14,14 +14,14 @@
+ int le_libvirt_nwfilter;
+ 
+ void
+-php_libvirt_nwfilter_dtor(virt_resource *rsrc TSRMLS_DC)
++php_libvirt_nwfilter_dtor(virt_resource *rsrc)
+ {
+     php_libvirt_nwfilter *nwfilter = (php_libvirt_nwfilter *) rsrc->ptr;
+     int rv = 0;
+ 
+     if (nwfilter != NULL) {
+         if (nwfilter->nwfilter != NULL) {
+-            if (!check_resource_allocation(NULL, INT_RESOURCE_NWFILTER, nwfilter->nwfilter TSRMLS_CC)) {
++            if (!check_resource_allocation(NULL, INT_RESOURCE_NWFILTER, nwfilter->nwfilter)) {
+                 nwfilter->nwfilter = NULL;
+                 efree(nwfilter);
+ 
+@@ -30,10 +30,10 @@
+             rv = virNWFilterFree(nwfilter->nwfilter);
+             if (rv != 0) {
+                 DPRINTF("%s: virNWFilterFree(%p) returned %d\n", __FUNCTION__, nwfilter->nwfilter, rv);
+-                php_error_docref(NULL TSRMLS_CC, E_WARNING, "virNWFilterFree failed with %i on destructor: %s", rv, LIBVIRT_G(last_error));
++                php_error_docref(NULL, E_WARNING, "virNWFilterFree failed with %i on destructor: %s", rv, LIBVIRT_G(last_error));
+             } else {
+                 DPRINTF("%s: virNWFilterFree(%p) completed successfully\n", __FUNCTION__, nwfilter->nwfilter);
+-                resource_change_counter(INT_RESOURCE_NWFILTER, nwfilter->conn->conn, nwfilter->nwfilter, 0 TSRMLS_CC);
++                resource_change_counter(INT_RESOURCE_NWFILTER, nwfilter->conn->conn, nwfilter->nwfilter, 0);
+             }
+             nwfilter->nwfilter = NULL;
+         }
+@@ -61,7 +61,7 @@
+     GET_CONNECTION_FROM_ARGS("rs", &zconn, &xml, &xml_len);
+ 
+     if ((nwfilter = virNWFilterDefineXML(conn->conn, xml)) == NULL) {
+-        set_error_if_unset("Cannot define a new NWFilter" TSRMLS_CC);
++        set_error_if_unset("Cannot define a new NWFilter");
+         RETURN_FALSE;
+     }
+ 
+@@ -70,7 +70,7 @@
+     res_nwfilter->conn = conn;
+ 
+     resource_change_counter(INT_RESOURCE_NWFILTER, conn->conn,
+-                            res_nwfilter->nwfilter, 1 TSRMLS_CC);
++                            res_nwfilter->nwfilter, 1);
+ 
+     VIRT_REGISTER_RESOURCE(res_nwfilter, le_libvirt_nwfilter);
+ }
+@@ -121,7 +121,7 @@
+     xml = virNWFilterGetXMLDesc(nwfilter->nwfilter, 0);
+ 
+     if (xml == NULL) {
+-        set_error_if_unset("Cannot get nwfilter XML" TSRMLS_CC);
++        set_error_if_unset("Cannot get nwfilter XML");
+         RETURN_FALSE;
+     }
+ 
+@@ -250,7 +250,7 @@
+     res_nwfilter->nwfilter = nwfilter;
+ 
+     resource_change_counter(INT_RESOURCE_NWFILTER, conn->conn,
+-                            res_nwfilter->nwfilter, 1 TSRMLS_CC);
++                            res_nwfilter->nwfilter, 1);
+ 
+     VIRT_REGISTER_RESOURCE(res_nwfilter, le_libvirt_nwfilter);
+ }
+@@ -287,7 +287,7 @@
+     res_nwfilter->nwfilter = nwfilter;
+ 
+     resource_change_counter(INT_RESOURCE_NWFILTER, conn->conn,
+-                            res_nwfilter->nwfilter, 1 TSRMLS_CC);
++                            res_nwfilter->nwfilter, 1);
+ 
+     VIRT_REGISTER_RESOURCE(res_nwfilter, le_libvirt_nwfilter);
+ }
+@@ -324,7 +324,7 @@
+     res_nwfilter->nwfilter = nwfilter;
+ 
+     resource_change_counter(INT_RESOURCE_NWFILTER, conn->conn,
+-                            res_nwfilter->nwfilter, 1 TSRMLS_CC);
++                            res_nwfilter->nwfilter, 1);
+ 
+     VIRT_REGISTER_RESOURCE(res_nwfilter, le_libvirt_nwfilter);
+ }
+@@ -363,7 +363,7 @@
+         res_nwfilter->conn = conn;
+ 
+         resource_change_counter(INT_RESOURCE_NWFILTER, conn->conn,
+-                                res_nwfilter->nwfilter, 1 TSRMLS_CC);
++                                res_nwfilter->nwfilter, 1);
+         VIRT_REGISTER_LIST_RESOURCE(nwfilter);
+     }
+     VIR_FREE(filters);
+--- a/src/libvirt-nwfilter.h
++++ b/src/libvirt-nwfilter.h
+@@ -27,11 +27,11 @@
+ 
+ # define GET_NWFILTER_FROM_ARGS(args, ...)                                     \
+     do {                                                                       \
+-        reset_error(TSRMLS_C);                                                 \
+-        if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC,                   \
++        reset_error();                                                 \
++        if (zend_parse_parameters(ZEND_NUM_ARGS(),                   \
+                                   args,                                        \
+                                   __VA_ARGS__) == FAILURE) {                   \
+-            set_error("Invalid arguments" TSRMLS_CC);                          \
++            set_error("Invalid arguments");                          \
+             RETURN_FALSE;                                                      \
+         }                                                                      \
+                                                                                \
+@@ -49,7 +49,7 @@
+     php_libvirt_connection* conn;
+ } php_libvirt_nwfilter;
+ 
+-void php_libvirt_nwfilter_dtor(virt_resource *rsrc TSRMLS_DC);
++void php_libvirt_nwfilter_dtor(virt_resource *rsrc);
+ 
+ PHP_FUNCTION(libvirt_nwfilter_define_xml);
+ PHP_FUNCTION(libvirt_nwfilter_undefine);
+--- a/src/libvirt-php.c
++++ b/src/libvirt-php.c
+@@ -530,7 +530,7 @@
+ STD_PHP_INI_ENTRY("libvirt.max_connections", "5", PHP_INI_ALL, OnUpdateLong, max_connections_ini, zend_libvirt_globals, libvirt_globals)
+ PHP_INI_END()
+ 
+-void change_debug(int val TSRMLS_DC)
++void change_debug(int val)
+ {
+ #ifdef DEBUG_SUPPORT
+     LIBVIRT_G(debug) = val;
+@@ -539,7 +539,7 @@
+ }
+ 
+ /* PHP requires to have this function defined */
+-static void php_libvirt_init_globals(zend_libvirt_globals *libvirt_globals TSRMLS_DC)
++static void php_libvirt_init_globals(zend_libvirt_globals *libvirt_globals)
+ {
+     libvirt_globals->longlong_to_string_ini = 1;
+     libvirt_globals->iso_path_ini = "/var/lib/libvirt/images/iso";
+@@ -549,7 +549,7 @@
+     libvirt_globals->binding_resources = NULL;
+ #ifdef DEBUG_SUPPORT
+     libvirt_globals->debug = 0;
+-    change_debug(0 TSRMLS_CC);
++    change_debug(0);
+ #endif
+ }
+ 
+@@ -558,7 +558,7 @@
+ {
+     LIBVIRT_G(last_error) = NULL;
+     LIBVIRT_G(vnc_location) = NULL;
+-    change_debug(0 TSRMLS_CC);
++    change_debug(0);
+     return SUCCESS;
+ }
+ 
+@@ -580,13 +580,13 @@
+  *                          @maxsize [long]: integer value of maximum file size, file will be truncated after reaching max file size. Value is set in KiB.
+  * Returns:                 0 on success, -errno otherwise
+  */
+-int set_logfile(char *filename, long maxsize TSRMLS_DC)
++int set_logfile(char *filename, long maxsize)
+ {
+     int res;
+     struct stat st;
+ 
+     if (filename == NULL) {
+-        change_debug(0 TSRMLS_CC);
++        change_debug(0);
+         return 0;
+     }
+ 
+@@ -600,7 +600,7 @@
+ 
+     res = (freopen(filename, "a", stderr) != NULL) ? 0 : -errno;
+     if (res == 0)
+-        change_debug(1 TSRMLS_CC);
++        change_debug(1);
+     return res;
+ }
+ 
+@@ -703,7 +703,7 @@
+  *                          @inc [int/bool]: Increment the counter (1 = add memory location) or decrement the counter (0 = remove memory location) from entries.
+  * Returns:                 0 on success, -errno otherwise
+  */
+-int resource_change_counter(int type, virConnectPtr conn, void *mem, int inc TSRMLS_DC)
++int resource_change_counter(int type, virConnectPtr conn, void *mem, int inc)
+ {
+     int i;
+     int pos = -1;
+@@ -876,7 +876,7 @@
+  * Arguments:               @msg [string]: error message string
+  * Returns:                 None
+  */
+-void set_error(char *msg TSRMLS_DC)
++void set_error(char *msg)
+ {
+     if (LIBVIRT_G(last_error) != NULL)
+         efree(LIBVIRT_G(last_error));
+@@ -886,7 +886,7 @@
+         return;
+     }
+ 
+-    php_error_docref(NULL TSRMLS_CC, E_WARNING, "%s", msg);
++    php_error_docref(NULL, E_WARNING, "%s", msg);
+     LIBVIRT_G(last_error) = estrndup(msg, strlen(msg));
+ }
+ 
+@@ -897,7 +897,7 @@
+  * Arguments:               @msg [string]: vnc location string
+  * Returns:                 None
+  */
+-void set_vnc_location(char *msg TSRMLS_DC)
++void set_vnc_location(char *msg)
+ {
+     if (LIBVIRT_G(vnc_location) != NULL)
+         efree(LIBVIRT_G(vnc_location));
+@@ -919,10 +919,10 @@
+  * Arguments:               @msg [string]: error message string
+  * Returns:                 None
+  */
+-void set_error_if_unset(char *msg TSRMLS_DC)
++void set_error_if_unset(char *msg)
+ {
+     if (LIBVIRT_G(last_error) == NULL)
+-        set_error(msg TSRMLS_CC);
++        set_error(msg);
+ }
+ 
+ /*
+@@ -932,9 +932,9 @@
+  * Arguments:               None
+  * Returns:                 None
+  */
+-void reset_error(TSRMLS_D)
++void reset_error()
+ {
+-    set_error(NULL TSRMLS_CC);
++    set_error(NULL);
+ }
+ 
+ 
+@@ -942,8 +942,7 @@
+ static void catch_error(void *userData,
+                         virErrorPtr error)
+ {
+-    TSRMLS_FETCH_FROM_CTX(userData);
+-    set_error(error->message TSRMLS_CC);
++    set_error(error->message);
+ }
+ 
+ /*
+@@ -954,7 +953,7 @@
+  *                          @mem [uint]: memory location of the resource to be freed
+  * Returns:                 None
+  */
+-void free_resource(int type, void *mem TSRMLS_DC)
++void free_resource(int type, void *mem)
+ {
+     int rv;
+ 
+@@ -964,10 +963,10 @@
+         rv = virDomainFree((virDomainPtr)mem);
+         if (rv != 0) {
+             DPRINTF("%s: virDomainFree(%p) returned %d (%s)\n", __FUNCTION__, (virDomainPtr)mem, rv, LIBVIRT_G(last_error));
+-            php_error_docref(NULL TSRMLS_CC, E_WARNING, "virDomainFree failed with %i on destructor: %s", rv, LIBVIRT_G(last_error));
++            php_error_docref(NULL, E_WARNING, "virDomainFree failed with %i on destructor: %s", rv, LIBVIRT_G(last_error));
+         } else {
+             DPRINTF("%s: virDomainFree(%p) completed successfully\n", __FUNCTION__, (virDomainPtr)mem);
+-            resource_change_counter(INT_RESOURCE_DOMAIN, NULL, (virDomainPtr)mem, 0 TSRMLS_CC);
++            resource_change_counter(INT_RESOURCE_DOMAIN, NULL, (virDomainPtr)mem, 0);
+         }
+     }
+ 
+@@ -975,10 +974,10 @@
+         rv = virStreamFree((virStreamPtr)mem);
+         if (rv != 0) {
+             DPRINTF("%s: virStreamFree(%p) returned %d (%s)\n", __FUNCTION__, (virStreamPtr)mem, rv, LIBVIRT_G(last_error));
+-            php_error_docref(NULL TSRMLS_CC, E_WARNING, "virStreamFree failed with %i on destructor: %s", rv, LIBVIRT_G(last_error));
++            php_error_docref(NULL, E_WARNING, "virStreamFree failed with %i on destructor: %s", rv, LIBVIRT_G(last_error));
+         } else {
+             DPRINTF("%s: virStreamFree(%p) completed successfully\n", __FUNCTION__, (virStreamPtr)mem);
+-            resource_change_counter(INT_RESOURCE_STREAM, NULL, (virStreamPtr)mem, 0 TSRMLS_CC);
++            resource_change_counter(INT_RESOURCE_STREAM, NULL, (virStreamPtr)mem, 0);
+         }
+     }
+ 
+@@ -986,10 +985,10 @@
+         rv = virNetworkFree((virNetworkPtr)mem);
+         if (rv != 0) {
+             DPRINTF("%s: virNetworkFree(%p) returned %d (%s)\n", __FUNCTION__, (virNetworkPtr)mem, rv, LIBVIRT_G(last_error));
+-            php_error_docref(NULL TSRMLS_CC, E_WARNING, "virNetworkFree failed with %i on destructor: %s", rv, LIBVIRT_G(last_error));
++            php_error_docref(NULL, E_WARNING, "virNetworkFree failed with %i on destructor: %s", rv, LIBVIRT_G(last_error));
+         } else {
+             DPRINTF("%s: virNetworkFree(%p) completed successfully\n", __FUNCTION__, (virNetworkPtr)mem);
+-            resource_change_counter(INT_RESOURCE_NETWORK, NULL, (virNetworkPtr)mem, 0 TSRMLS_CC);
++            resource_change_counter(INT_RESOURCE_NETWORK, NULL, (virNetworkPtr)mem, 0);
+         }
+     }
+ 
+@@ -997,10 +996,10 @@
+         rv = virNodeDeviceFree((virNodeDevicePtr)mem);
+         if (rv != 0) {
+             DPRINTF("%s: virNodeDeviceFree(%p) returned %d (%s)\n", __FUNCTION__, (virNodeDevicePtr)mem, rv, LIBVIRT_G(last_error));
+-            php_error_docref(NULL TSRMLS_CC, E_WARNING, "virNodeDeviceFree failed with %i on destructor: %s", rv, LIBVIRT_G(last_error));
++            php_error_docref(NULL, E_WARNING, "virNodeDeviceFree failed with %i on destructor: %s", rv, LIBVIRT_G(last_error));
+         } else {
+             DPRINTF("%s: virNodeDeviceFree(%p) completed successfully\n", __FUNCTION__, (virNodeDevicePtr)mem);
+-            resource_change_counter(INT_RESOURCE_NODEDEV, NULL, (virNodeDevicePtr)mem, 0 TSRMLS_CC);
++            resource_change_counter(INT_RESOURCE_NODEDEV, NULL, (virNodeDevicePtr)mem, 0);
+         }
+     }
+ 
+@@ -1008,10 +1007,10 @@
+         rv = virStoragePoolFree((virStoragePoolPtr)mem);
+         if (rv != 0) {
+             DPRINTF("%s: virStoragePoolFree(%p) returned %d (%s)\n", __FUNCTION__, (virStoragePoolPtr)mem, rv, LIBVIRT_G(last_error));
+-            php_error_docref(NULL TSRMLS_CC, E_WARNING, "virStoragePoolFree failed with %i on destructor: %s", rv, LIBVIRT_G(last_error));
++            php_error_docref(NULL, E_WARNING, "virStoragePoolFree failed with %i on destructor: %s", rv, LIBVIRT_G(last_error));
+         } else {
+             DPRINTF("%s: virStoragePoolFree(%p) completed successfully\n", __FUNCTION__, (virStoragePoolPtr)mem);
+-            resource_change_counter(INT_RESOURCE_STORAGEPOOL, NULL, (virStoragePoolPtr)mem, 0 TSRMLS_CC);
++            resource_change_counter(INT_RESOURCE_STORAGEPOOL, NULL, (virStoragePoolPtr)mem, 0);
+         }
+     }
+ 
+@@ -1019,10 +1018,10 @@
+         rv = virStorageVolFree((virStorageVolPtr)mem);
+         if (rv != 0) {
+             DPRINTF("%s: virStorageVolFree(%p) returned %d (%s)\n", __FUNCTION__, (virStorageVolPtr)mem, rv, LIBVIRT_G(last_error));
+-            php_error_docref(NULL TSRMLS_CC, E_WARNING, "virStorageVolFree failed with %i on destructor: %s", rv, LIBVIRT_G(last_error));
++            php_error_docref(NULL, E_WARNING, "virStorageVolFree failed with %i on destructor: %s", rv, LIBVIRT_G(last_error));
+         } else {
+             DPRINTF("%s: virStorageVolFree(%p) completed successfully\n", __FUNCTION__, (virStorageVolPtr)mem);
+-            resource_change_counter(INT_RESOURCE_VOLUME, NULL, (virStorageVolPtr)mem, 0 TSRMLS_CC);
++            resource_change_counter(INT_RESOURCE_VOLUME, NULL, (virStorageVolPtr)mem, 0);
+         }
+     }
+ 
+@@ -1030,10 +1029,10 @@
+         rv = virDomainSnapshotFree((virDomainSnapshotPtr)mem);
+         if (rv != 0) {
+             DPRINTF("%s: virDomainSnapshotFree(%p) returned %d (%s)\n", __FUNCTION__, (virDomainSnapshotPtr)mem, rv, LIBVIRT_G(last_error));
+-            php_error_docref(NULL TSRMLS_CC, E_WARNING, "virDomainSnapshotFree failed with %i on destructor: %s", rv, LIBVIRT_G(last_error));
++            php_error_docref(NULL, E_WARNING, "virDomainSnapshotFree failed with %i on destructor: %s", rv, LIBVIRT_G(last_error));
+         } else {
+             DPRINTF("%s: virDomainSnapshotFree(%p) completed successfully\n", __FUNCTION__, (virDomainSnapshotPtr)mem);
+-            resource_change_counter(INT_RESOURCE_SNAPSHOT, NULL, (virDomainSnapshotPtr)mem, 0 TSRMLS_CC);
++            resource_change_counter(INT_RESOURCE_SNAPSHOT, NULL, (virDomainSnapshotPtr)mem, 0);
+         }
+     }
+ 
+@@ -1041,10 +1040,10 @@
+         rv = virNWFilterFree((virNWFilterPtr) mem);
+         if (rv != 0) {
+             DPRINTF("%s: virNWFilterFree(%p) returned %d (%s)\n", __FUNCTION__, (virNWFilterPtr) mem, rv, LIBVIRT_G(last_error));
+-            php_error_docref(NULL TSRMLS_CC, E_WARNING, "virDomainSnapshotFree failed with %i on destructor: %s", rv, LIBVIRT_G(last_error));
++            php_error_docref(NULL, E_WARNING, "virDomainSnapshotFree failed with %i on destructor: %s", rv, LIBVIRT_G(last_error));
+         } else {
+             DPRINTF("%s: virNWFilterFree(%p) completed successfully\n", __FUNCTION__, (virNWFilterPtr) mem);
+-            resource_change_counter(INT_RESOURCE_NWFILTER, NULL, (virNWFilterPtr) mem, 0 TSRMLS_CC);
++            resource_change_counter(INT_RESOURCE_NWFILTER, NULL, (virNWFilterPtr) mem, 0);
+         }
+     }
+ }
+@@ -1058,7 +1057,7 @@
+  *                          @memp [pointer]: pointer to the memory
+  * Returns:                 1 if resource is allocated, 0 otherwise
+  */
+-int check_resource_allocation(virConnectPtr conn, int type, void *mem TSRMLS_DC)
++int check_resource_allocation(virConnectPtr conn, int type, void *mem)
+ {
+     int binding_resources_count = 0;
+     resource_info *binding_resources = NULL;
+@@ -1089,7 +1088,7 @@
+  * Arguments:               @type [int]: integer interpretation of the type, see free_resource() API function for possible values
+  * Returns:                 number of resources already used
+  */
+-int count_resources(int type TSRMLS_DC)
++int count_resources(int type)
+ {
+     int binding_resources_count = 0;
+     resource_info *binding_resources = NULL;
+@@ -1508,7 +1507,6 @@
+     virInitialize();
+ 
+     void *thread_ctx = NULL;
+-    TSRMLS_SET_CTX(thread_ctx);
+     virSetErrorFunc(thread_ctx, catch_error);
+ 
+     return SUCCESS;
+@@ -1570,7 +1568,7 @@
+         path = strdup(LIBVIRT_G(image_path_ini));
+ 
+     if ((path == NULL) || (path[0] != '/')) {
+-        set_error("Invalid argument, path must be set and absolute (start by slash character [/])" TSRMLS_CC);
++        set_error("Invalid argument, path must be set and absolute (start by slash character [/])");
+         RETURN_FALSE;
+     }
+ 
+@@ -1584,7 +1582,7 @@
+     if (!is_local_connection(conn->conn)) {
+         // TODO: Try to implement remote connection somehow. Maybe using SSH tunneling
+         snprintf(msg, sizeof(msg), "%s works only on local systems!", PHPFUNC);
+-        set_error(msg TSRMLS_CC);
++        set_error(msg);
+         RETURN_FALSE;
+     }
+ 
+@@ -1592,7 +1590,7 @@
+ 
+     const char *qemu_img_cmd = get_feature_binary("create-image");
+     if (qemu_img_cmd == NULL) {
+-        set_error("Feature 'create-image' is not supported" TSRMLS_CC);
++        set_error("Feature 'create-image' is not supported");
+         RETURN_FALSE;
+     }
+ 
+@@ -1604,7 +1602,7 @@
+         RETURN_TRUE;
+     } else {
+         snprintf(msg, sizeof(msg), "Cannot create image: %s", fpath);
+-        set_error(msg TSRMLS_CC);
++        set_error(msg);
+         RETURN_FALSE;
+     }
+ }
+@@ -1631,7 +1629,7 @@
+ 
+     // Disable remote connections
+     if (!is_local_connection(conn->conn)) {
+-        set_error("Function works only on local connection" TSRMLS_CC);
++        set_error("Function works only on local connection");
+         RETURN_FALSE;
+     }
+ 
+@@ -1644,7 +1642,7 @@
+ #endif
+     if (strcmp(name, hostname) != 0) {
+         snprintf(msg, sizeof(msg), "%s works only on local systems!", PHPFUNC);
+-        set_error(msg TSRMLS_CC);
++        set_error(msg);
+         VIR_FREE(hostname);
+         RETURN_FALSE;
+     }
+@@ -1652,7 +1650,7 @@
+ 
+     if (unlink(image) != 0) {
+         snprintf(msg, sizeof(msg), "An error occured while unlinking %s: %d (%s)", image, errno, strerror(errno));
+-        set_error(msg TSRMLS_CC);
++        set_error(msg);
+         RETURN_FALSE;
+     } else {
+         RETURN_TRUE;
+@@ -1780,14 +1778,14 @@
+         goto cleanup;
+ 
+     if (result->nodesetval->nodeNr > 1) {
+-        set_error("XPATH returned too much nodes, expeced only 1" TSRMLS_CC);
++        set_error("XPATH returned too much nodes, expeced only 1");
+         goto cleanup;
+     }
+ 
+     if (!(xmlbuf = xmlBufferCreate()) ||
+         xmlNodeDump(xmlbuf, doc, result->nodesetval->nodeTab[0], 0, 1) == 0 ||
+         !(ret = strdup((const char *)xmlBufferContent(xmlbuf)))) {
+-        set_error("failed to convert the XML node tree" TSRMLS_CC);
++        set_error("failed to convert the XML node tree");
+         goto cleanup;
+     }
+ 
+@@ -2031,7 +2029,7 @@
+  *                          @arch [string]: optional architecture string, can be NULL to get default
+  * Returns:                 path to the emulator
+  */
+-char *connection_get_domain_type(virConnectPtr conn, char *arch TSRMLS_DC)
++char *connection_get_domain_type(virConnectPtr conn, char *arch)
+ {
+     char *ret = NULL;
+     char *tmp = NULL;
+@@ -2080,7 +2078,7 @@
+  *                          @arch [string]: optional architecture string, can be NULL to get default
+  * Returns:                 path to the emulator
+  */
+-char *connection_get_emulator(virConnectPtr conn, char *arch TSRMLS_DC)
++char *connection_get_emulator(virConnectPtr conn, char *arch)
+ {
+     char *ret = NULL;
+     char *tmp = NULL;
+@@ -2132,7 +2130,7 @@
+  * Arguments:               @conn [virConnectPtr]: libvirt connection pointer of connection to get architecture for
+  * Returns:                 path to the emulator
+  */
+-char *connection_get_arch(virConnectPtr conn TSRMLS_DC)
++char *connection_get_arch(virConnectPtr conn)
+ {
+     char *ret = NULL;
+     char *tmp = NULL;
+@@ -2191,7 +2189,7 @@
+  * Arguments:               @conn [virConnectPtr]: libvirt connection pointer
+  * Returns:                 a new unused random UUID string
+  */
+-char *generate_uuid(virConnectPtr conn TSRMLS_DC)
++char *generate_uuid(virConnectPtr conn)
+ {
+     virDomainPtr domain = NULL;
+     char *uuid = NULL;
+@@ -2220,7 +2218,7 @@
+  *                          @disk_flags [int]: disk type, VIR_DOMAIN_DISK_FILE or VIR_DOMAIN_DISK_BLOCK
+  * Returns:                 XML output for the disk
+  */
+-char *get_disk_xml(unsigned long long size, char *path, char *driver, char *bus, char *dev, int disk_flags TSRMLS_DC)
++char *get_disk_xml(unsigned long long size, char *path, char *driver, char *bus, char *dev, int disk_flags)
+ {
+     char xml[4096] = { 0 };
+ 
+@@ -2337,7 +2335,7 @@
+                            int maxmemMB, char *arch, char *uuid, int vCpus,
+                            char *iso_image, tVMDisk *disks, int numDisks,
+                            tVMNetwork *networks, int numNetworks, int
+-                           domain_flags TSRMLS_DC)
++                           domain_flags)
+ {
+     int i;
+     char *xml = NULL;
+@@ -2355,7 +2353,7 @@
+     }
+ 
+     if (uuid == NULL)
+-        uuid = generate_uuid(conn TSRMLS_CC);
++        uuid = generate_uuid(conn);
+ 
+     if (domain_flags & DOMAIN_FLAG_FEATURE_ACPI)
+         strcat(features, "<acpi/>");
+@@ -2365,11 +2363,11 @@
+         strcat(features, "<pae/>");
+ 
+     if (arch == NULL) {
+-        arch = connection_get_arch(conn TSRMLS_CC);
++        arch = connection_get_arch(conn);
+         DPRINTF("%s: No architecture defined, got host arch of '%s'\n", __FUNCTION__, arch);
+     }
+ 
+-    if (!(emulator = connection_get_emulator(conn, arch TSRMLS_CC))) {
++    if (!(emulator = connection_get_emulator(conn, arch))) {
+         DPRINTF("%s: Cannot get emulator\n", __FUNCTION__);
+         return NULL;
+     }
+@@ -2379,12 +2377,12 @@
+         return NULL;
+     }
+ 
+-    tmp = connection_get_domain_type(conn, arch TSRMLS_CC);
++    tmp = connection_get_domain_type(conn, arch);
+     if (tmp != NULL)
+         snprintf(type, sizeof(type), " type='%s'", tmp);
+ 
+     for (i = 0; i < numDisks; i++) {
+-        char *disk = get_disk_xml(disks[i].size, disks[i].path, disks[i].driver, disks[i].bus, disks[i].dev, disks[i].flags TSRMLS_CC);
++        char *disk = get_disk_xml(disks[i].size, disks[i].path, disks[i].driver, disks[i].bus, disks[i].dev, disks[i].flags);
+ 
+         if (disk != NULL)
+             strcat(disks_xml, disk);
+@@ -2576,8 +2574,8 @@
+     unsigned long typeVer;
+     strsize_t type_len;
+     char *type = NULL;
+-    if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|s", &type, &type_len) == FAILURE) {
+-        set_error("Invalid arguments" TSRMLS_CC);
++    if (zend_parse_parameters(ZEND_NUM_ARGS(), "|s", &type, &type_len) == FAILURE) {
++        set_error("Invalid arguments");
+         RETURN_FALSE;
+     }
+ 
+@@ -2623,8 +2621,8 @@
+     unsigned long libVer;
+     zend_long major = 0, minor = 0, micro = 0, type = VIR_VERSION_BINDING;
+ 
+-    if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "lll|l", &major, &minor, &micro, &type) == FAILURE) {
+-        set_error("Invalid arguments" TSRMLS_CC);
++    if (zend_parse_parameters(ZEND_NUM_ARGS(), "lll|l", &major, &minor, &micro, &type) == FAILURE) {
++        set_error("Invalid arguments");
+         RETURN_FALSE;
+     }
+ 
+@@ -2649,7 +2647,7 @@
+                  ((libVer % 1000) >= micro)))
+                 RETURN_TRUE;
+         } else {
+-            set_error("Invalid version type" TSRMLS_CC);
++            set_error("Invalid version type");
+         }
+     }
+ 
+@@ -2670,8 +2668,8 @@
+     const char *binary = NULL;
+     int ret = 0;
+ 
+-    if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &name, &name_len) == FAILURE) {
+-        set_error("Invalid argument" TSRMLS_CC);
++    if (zend_parse_parameters(ZEND_NUM_ARGS(), "s", &name, &name_len) == FAILURE) {
++        set_error("Invalid argument");
+         RETURN_FALSE;
+     }
+ 
+@@ -2701,8 +2699,8 @@
+ #endif
+     int num = 0;
+ 
+-    if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|s", &path, &path_len) == FAILURE) {
+-        set_error("Invalid argument" TSRMLS_CC);
++    if (zend_parse_parameters(ZEND_NUM_ARGS(), "|s", &path, &path_len) == FAILURE) {
++        set_error("Invalid argument");
+         RETURN_FALSE;
+     }
+ 
+@@ -2710,7 +2708,7 @@
+         path = strdup(LIBVIRT_G(iso_path_ini));
+ 
+     if ((path == NULL) || (path[0] != '/')) {
+-        set_error("Invalid argument, path must be set and absolute (start by slash character [/])" TSRMLS_CC);
++        set_error("Invalid argument, path must be set and absolute (start by slash character [/])");
+         RETURN_FALSE;
+     }
+ 
+@@ -2785,20 +2783,20 @@
+     strsize_t filename_len = 0;
+     int err;
+ 
+-    if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|l", &filename, &filename_len, &maxsize) == FAILURE) {
+-        set_error("Invalid argument" TSRMLS_CC);
++    if (zend_parse_parameters(ZEND_NUM_ARGS(), "s|l", &filename, &filename_len, &maxsize) == FAILURE) {
++        set_error("Invalid argument");
+         RETURN_FALSE;
+     }
+ 
+     if ((filename == NULL) || (strcasecmp(filename, "null") == 0))
+-        err = set_logfile(NULL, 0 TSRMLS_CC);
++        err = set_logfile(NULL, 0);
+     else
+-        err = set_logfile(filename, maxsize TSRMLS_CC);
++        err = set_logfile(filename, maxsize);
+ 
+     if (err < 0) {
+         char tmp[1024] = { 0 };
+         snprintf(tmp, sizeof(tmp), "Cannot set the log file to %s, error code = %d (%s)", filename, err, strerror(-err));
+-        set_error(tmp TSRMLS_CC);
++        set_error(tmp);
+         RETURN_FALSE;
+     }
+ 
+--- a/src/libvirt-php.h
++++ b/src/libvirt-php.h
+@@ -158,20 +158,20 @@
+ ZEND_EXTERN_MODULE_GLOBALS(libvirt)
+ 
+ /* Private definitions */
+-void set_error(char *msg TSRMLS_DC);
+-void set_error_if_unset(char *msg TSRMLS_DC);
+-void reset_error(TSRMLS_D);
+-int count_resources(int type TSRMLS_DC);
++void set_error(char *msg);
++void set_error_if_unset(char *msg);
++void reset_error();
++int count_resources(int type);
+ int resource_change_counter(int type, virConnectPtr conn, void *mem,
+-                            int inc TSRMLS_DC);
++                            int inc);
+ int check_resource_allocation(virConnectPtr conn, int type,
+-                              void *mem TSRMLS_DC);
+-void free_resource(int type, void *mem TSRMLS_DC);
+-char *connection_get_emulator(virConnectPtr conn, char *arch TSRMLS_DC);
++                              void *mem);
++void free_resource(int type, void *mem);
++char *connection_get_emulator(virConnectPtr conn, char *arch);
+ int is_local_connection(virConnectPtr conn);
+ tTokenizer tokenize(char *string, char *by);
+ void free_tokens(tTokenizer t);
+-int set_logfile(char *filename, long maxsize TSRMLS_DC);
++int set_logfile(char *filename, long maxsize);
+ char *get_string_from_xpath(char *xml, char *xpath, zval **val, int *retVal);
+ char *get_node_string_from_xpath(char *xml, char *xpath);
+ char **get_array_from_xpath(char *xml, char *xpath, int *num);
+@@ -180,8 +180,8 @@
+                            int maxmemMB, char *arch, char *uuid, int vCpus,
+                            char *iso_image, tVMDisk *disks, int numDisks,
+                            tVMNetwork *networks, int numNetworks,
+-                           int domain_flags TSRMLS_DC);
+-void set_vnc_location(char *msg TSRMLS_DC);
++                           int domain_flags);
++void set_vnc_location(char *msg);
+ int streamSink(virStreamPtr st ATTRIBUTE_UNUSED,
+                const char *bytes, size_t nbytes, void *opaque);
+ const char *get_feature_binary(const char *name);
+--- a/src/libvirt-snapshot.c
++++ b/src/libvirt-snapshot.c
+@@ -13,14 +13,14 @@
+ 
+ int le_libvirt_snapshot;
+ 
+-void php_libvirt_snapshot_dtor(virt_resource *rsrc TSRMLS_DC)
++void php_libvirt_snapshot_dtor(virt_resource *rsrc)
+ {
+     php_libvirt_snapshot *snapshot = (php_libvirt_snapshot *)rsrc->ptr;
+     int rv = 0;
+ 
+     if (snapshot != NULL) {
+         if (snapshot->snapshot != NULL) {
+-            if (!check_resource_allocation(NULL, INT_RESOURCE_SNAPSHOT, snapshot->snapshot TSRMLS_CC)) {
++            if (!check_resource_allocation(NULL, INT_RESOURCE_SNAPSHOT, snapshot->snapshot)) {
+                 snapshot->snapshot = NULL;
+                 efree(snapshot);
+                 return;
+@@ -28,10 +28,10 @@
+             rv = virDomainSnapshotFree(snapshot->snapshot);
+             if (rv != 0) {
+                 DPRINTF("%s: virDomainSnapshotFree(%p) returned %d\n", __FUNCTION__, snapshot->snapshot, rv);
+-                php_error_docref(NULL TSRMLS_CC, E_WARNING, "virDomainSnapshotFree failed with %i on destructor: %s", rv, LIBVIRT_G(last_error));
++                php_error_docref(NULL, E_WARNING, "virDomainSnapshotFree failed with %i on destructor: %s", rv, LIBVIRT_G(last_error));
+             } else {
+                 DPRINTF("%s: virDomainSnapshotFree(%p) completed successfully\n", __FUNCTION__, snapshot->snapshot);
+-                resource_change_counter(INT_RESOURCE_SNAPSHOT, snapshot->domain->conn->conn, snapshot->snapshot, 0 TSRMLS_CC);
++                resource_change_counter(INT_RESOURCE_SNAPSHOT, snapshot->domain->conn->conn, snapshot->snapshot, 0);
+             }
+             snapshot->snapshot = NULL;
+         }
+@@ -94,7 +94,7 @@
+     res_snapshot->snapshot = snapshot;
+ 
+     DPRINTF("%s: returning %p\n", PHPFUNC, res_snapshot->snapshot);
+-    resource_change_counter(INT_RESOURCE_SNAPSHOT, domain->conn->conn, res_snapshot->snapshot, 1 TSRMLS_CC);
++    resource_change_counter(INT_RESOURCE_SNAPSHOT, domain->conn->conn, res_snapshot->snapshot, 1);
+ 
+     VIRT_REGISTER_RESOURCE(res_snapshot, le_libvirt_snapshot);
+ }
+@@ -127,7 +127,7 @@
+     res_snapshot->snapshot = snapshot;
+ 
+     DPRINTF("%s: returning %p\n", PHPFUNC, res_snapshot->snapshot);
+-    resource_change_counter(INT_RESOURCE_SNAPSHOT, domain->conn->conn, res_snapshot->snapshot, 1 TSRMLS_CC);
++    resource_change_counter(INT_RESOURCE_SNAPSHOT, domain->conn->conn, res_snapshot->snapshot, 1);
+ 
+     VIRT_REGISTER_RESOURCE(res_snapshot, le_libvirt_snapshot);
+ }
+--- a/src/libvirt-snapshot.h
++++ b/src/libvirt-snapshot.h
+@@ -23,11 +23,11 @@
+ 
+ # define GET_SNAPSHOT_FROM_ARGS(args, ...)                                     \
+     do {                                                                       \
+-        reset_error(TSRMLS_C);                                                 \
+-        if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC,                   \
++        reset_error();                                                 \
++        if (zend_parse_parameters(ZEND_NUM_ARGS(),                   \
+                                   args,                                        \
+                                   __VA_ARGS__) == FAILURE) {                   \
+-            set_error("Invalid arguments" TSRMLS_CC);                          \
++            set_error("Invalid arguments");                          \
+             RETURN_FALSE;                                                      \
+         }                                                                      \
+                                                                                \
+@@ -45,7 +45,7 @@
+     php_libvirt_domain* domain;
+ } php_libvirt_snapshot;
+ 
+-void php_libvirt_snapshot_dtor(virt_resource *rsrc TSRMLS_DC);
++void php_libvirt_snapshot_dtor(virt_resource *rsrc);
+ 
+ PHP_FUNCTION(libvirt_domain_has_current_snapshot);
+ PHP_FUNCTION(libvirt_domain_snapshot_lookup_by_name);
+--- a/src/libvirt-storage.c
++++ b/src/libvirt-storage.c
+@@ -16,14 +16,14 @@
+ int le_libvirt_volume;
+ 
+ void
+-php_libvirt_storagepool_dtor(virt_resource *rsrc TSRMLS_DC)
++php_libvirt_storagepool_dtor(virt_resource *rsrc)
+ {
+     php_libvirt_storagepool *pool = (php_libvirt_storagepool *)rsrc->ptr;
+     int rv = 0;
+ 
+     if (pool != NULL) {
+         if (pool->pool != NULL) {
+-            if (!check_resource_allocation(NULL, INT_RESOURCE_STORAGEPOOL, pool->pool TSRMLS_CC)) {
++            if (!check_resource_allocation(NULL, INT_RESOURCE_STORAGEPOOL, pool->pool)) {
+                 pool->pool = NULL;
+                 efree(pool);
+                 return;
+@@ -31,10 +31,10 @@
+             rv = virStoragePoolFree(pool->pool);
+             if (rv != 0) {
+                 DPRINTF("%s: virStoragePoolFree(%p) returned %d (%s)\n", __FUNCTION__, pool->pool, rv, LIBVIRT_G(last_error));
+-                php_error_docref(NULL TSRMLS_CC, E_WARNING, "virStoragePoolFree failed with %i on destructor: %s", rv, LIBVIRT_G(last_error));
++                php_error_docref(NULL, E_WARNING, "virStoragePoolFree failed with %i on destructor: %s", rv, LIBVIRT_G(last_error));
+             } else {
+                 DPRINTF("%s: virStoragePoolFree(%p) completed successfully\n", __FUNCTION__, pool->pool);
+-                resource_change_counter(INT_RESOURCE_STORAGEPOOL, NULL, pool->pool, 0 TSRMLS_CC);
++                resource_change_counter(INT_RESOURCE_STORAGEPOOL, NULL, pool->pool, 0);
+             }
+             pool->pool = NULL;
+         }
+@@ -43,14 +43,14 @@
+ }
+ 
+ void
+-php_libvirt_volume_dtor(virt_resource *rsrc TSRMLS_DC)
++php_libvirt_volume_dtor(virt_resource *rsrc)
+ {
+     php_libvirt_volume *volume = (php_libvirt_volume *)rsrc->ptr;
+     int rv = 0;
+ 
+     if (volume != NULL) {
+         if (volume->volume != NULL) {
+-            if (!check_resource_allocation(NULL, INT_RESOURCE_VOLUME, volume->volume TSRMLS_CC)) {
++            if (!check_resource_allocation(NULL, INT_RESOURCE_VOLUME, volume->volume)) {
+                 volume->volume = NULL;
+                 efree(volume);
+                 return;
+@@ -58,10 +58,10 @@
+             rv = virStorageVolFree(volume->volume);
+             if (rv != 0) {
+                 DPRINTF("%s: virStorageVolFree(%p) returned %d (%s)\n", __FUNCTION__, volume->volume, rv, LIBVIRT_G(last_error));
+-                php_error_docref(NULL TSRMLS_CC, E_WARNING, "virStorageVolFree failed with %i on destructor: %s", rv, LIBVIRT_G(last_error));
++                php_error_docref(NULL, E_WARNING, "virStorageVolFree failed with %i on destructor: %s", rv, LIBVIRT_G(last_error));
+             } else {
+                 DPRINTF("%s: virStorageVolFree(%p) completed successfully\n", __FUNCTION__, volume->volume);
+-                resource_change_counter(INT_RESOURCE_VOLUME, NULL, volume->volume, 0 TSRMLS_CC);
++                resource_change_counter(INT_RESOURCE_VOLUME, NULL, volume->volume, 0);
+             }
+             volume->volume = NULL;
+         }
+@@ -100,7 +100,7 @@
+     res_pool->conn = conn;
+ 
+     DPRINTF("%s: returning %p\n", PHPFUNC, res_pool->pool);
+-    resource_change_counter(INT_RESOURCE_STORAGEPOOL, conn->conn, res_pool->pool, 1 TSRMLS_CC);
++    resource_change_counter(INT_RESOURCE_STORAGEPOOL, conn->conn, res_pool->pool, 1);
+ 
+     VIRT_REGISTER_RESOURCE(res_pool, le_libvirt_storagepool);
+ }
+@@ -131,7 +131,7 @@
+     res_pool->conn = volume->conn;
+ 
+     DPRINTF("%s: returning %p\n", PHPFUNC, res_pool->pool);
+-    resource_change_counter(INT_RESOURCE_STORAGEPOOL, res_pool->conn->conn, res_pool->pool, 1 TSRMLS_CC);
++    resource_change_counter(INT_RESOURCE_STORAGEPOOL, res_pool->conn->conn, res_pool->pool, 1);
+ 
+     VIRT_REGISTER_RESOURCE(res_pool, le_libvirt_storagepool);
+ }
+@@ -286,7 +286,7 @@
+     res_pool->conn = conn;
+ 
+     DPRINTF("%s: returning %p\n", PHPFUNC, res_pool->pool);
+-    resource_change_counter(INT_RESOURCE_STORAGEPOOL, conn->conn, res_pool->pool, 1 TSRMLS_CC);
++    resource_change_counter(INT_RESOURCE_STORAGEPOOL, conn->conn, res_pool->pool, 1);
+ 
+     VIRT_REGISTER_RESOURCE(res_pool, le_libvirt_storagepool);
+ }
+@@ -318,7 +318,7 @@
+ 
+     xml = virStoragePoolGetXMLDesc(pool->pool, flags);
+     if (xml == NULL) {
+-        set_error_if_unset("Cannot get the XML description" TSRMLS_CC);
++        set_error_if_unset("Cannot get the XML description");
+         RETURN_FALSE;
+     }
+ 
+@@ -365,7 +365,7 @@
+     res_pool->conn = conn;
+ 
+     DPRINTF("%s: returning %p\n", PHPFUNC, res_pool->pool);
+-    resource_change_counter(INT_RESOURCE_STORAGEPOOL, conn->conn, res_pool->pool, 1 TSRMLS_CC);
++    resource_change_counter(INT_RESOURCE_STORAGEPOOL, conn->conn, res_pool->pool, 1);
+ 
+     VIRT_REGISTER_RESOURCE(res_pool, le_libvirt_storagepool);
+ }
+@@ -620,7 +620,7 @@
+     res_volume->conn   = pool->conn;
+ 
+     DPRINTF("%s: returning %p\n", PHPFUNC, res_volume->volume);
+-    resource_change_counter(INT_RESOURCE_VOLUME, pool->conn->conn, res_volume->volume, 1 TSRMLS_CC);
++    resource_change_counter(INT_RESOURCE_VOLUME, pool->conn->conn, res_volume->volume, 1);
+ 
+     VIRT_REGISTER_RESOURCE(res_volume, le_libvirt_volume);
+ }
+@@ -649,7 +649,7 @@
+     volume = virStorageVolLookupByPath(conn->conn, name);
+     DPRINTF("%s: virStorageVolLookupByPath(%p, %s) returned %p\n", PHPFUNC, conn->conn, name, volume);
+     if (volume == NULL) {
+-        set_error_if_unset("Cannot find storage volume on requested path" TSRMLS_CC);
++        set_error_if_unset("Cannot find storage volume on requested path");
+         RETURN_FALSE;
+     }
+ 
+@@ -658,7 +658,7 @@
+     res_volume->conn   = conn;
+ 
+     DPRINTF("%s: returning %p\n", PHPFUNC, res_volume->volume);
+-    resource_change_counter(INT_RESOURCE_VOLUME, conn->conn, res_volume->volume, 1 TSRMLS_CC);
++    resource_change_counter(INT_RESOURCE_VOLUME, conn->conn, res_volume->volume, 1);
+ 
+     VIRT_REGISTER_RESOURCE(res_volume, le_libvirt_volume);
+ }
+@@ -766,7 +766,7 @@
+ 
+     xml = virStorageVolGetXMLDesc(volume->volume, flags);
+     if (xml == NULL) {
+-        set_error_if_unset("Cannot get the XML description" TSRMLS_CC);
++        set_error_if_unset("Cannot get the XML description");
+         RETURN_FALSE;
+     }
+ 
+@@ -812,7 +812,7 @@
+     res_volume->conn   = pool->conn;
+ 
+     DPRINTF("%s: returning %p\n", PHPFUNC, res_volume->volume);
+-    resource_change_counter(INT_RESOURCE_VOLUME, pool->conn->conn, res_volume->volume, 1 TSRMLS_CC);
++    resource_change_counter(INT_RESOURCE_VOLUME, pool->conn->conn, res_volume->volume, 1);
+ 
+     VIRT_REGISTER_RESOURCE(res_volume, le_libvirt_volume);
+ }
+@@ -839,8 +839,8 @@
+     char *xml;
+     strsize_t xml_len;
+ 
+-    if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rsr", &zpool, &xml, &xml_len, &zvolume) == FAILURE) {
+-        set_error("Invalid pool resource, XML or volume resouce" TSRMLS_CC);
++    if (zend_parse_parameters(ZEND_NUM_ARGS(), "rsr", &zpool, &xml, &xml_len, &zvolume) == FAILURE) {
++        set_error("Invalid pool resource, XML or volume resouce");
+         RETURN_FALSE;
+     }
+ 
+@@ -850,7 +850,7 @@
+     VIRT_FETCH_RESOURCE(pl_volume, php_libvirt_volume*, &zvolume, PHP_LIBVIRT_VOLUME_RES_NAME, le_libvirt_volume);
+     if ((pl_volume == NULL) || (pl_volume->volume == NULL))
+         RETURN_FALSE;
+-    resource_change_counter(INT_RESOURCE_VOLUME, NULL, pl_volume->volume, 1 TSRMLS_CC);
++    resource_change_counter(INT_RESOURCE_VOLUME, NULL, pl_volume->volume, 1);
+ 
+     volume = virStorageVolCreateXMLFrom(pool->pool, xml, pl_volume->volume, 0);
+     DPRINTF("%s: virStorageVolCreateXMLFrom(%p, <xml>, %p, 0) returned %p\n", PHPFUNC, pool->pool, pl_volume->volume, volume);
+@@ -862,7 +862,7 @@
+     res_volume->conn   = pool->conn;
+ 
+     DPRINTF("%s: returning %p\n", PHPFUNC, res_volume->volume);
+-    resource_change_counter(INT_RESOURCE_VOLUME, pool->conn->conn, res_volume->volume, 1 TSRMLS_CC);
++    resource_change_counter(INT_RESOURCE_VOLUME, pool->conn->conn, res_volume->volume, 1);
+ 
+     VIRT_REGISTER_RESOURCE(res_volume, le_libvirt_volume);
+ }
+@@ -887,7 +887,7 @@
+     retval = virStorageVolDelete(volume->volume, flags);
+     DPRINTF("%s: virStorageVolDelete(%p, %d) returned %d\n", PHPFUNC, volume->volume, (int) flags, retval);
+     if (retval != 0) {
+-        set_error_if_unset("Cannot delete storage volume" TSRMLS_CC);
++        set_error_if_unset("Cannot delete storage volume");
+         RETURN_FALSE;
+     }
+ 
+@@ -916,7 +916,7 @@
+     zend_long length = 0;
+     int retval = -1;
+ 
+-    if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rr|l|l|l", &zvolume, &zstream, &offset, &length, &flags) == FAILURE)
++    if (zend_parse_parameters(ZEND_NUM_ARGS(), "rr|l|l|l", &zvolume, &zstream, &offset, &length, &flags) == FAILURE)
+         RETURN_LONG(retval);
+     VIRT_FETCH_RESOURCE(volume, php_libvirt_volume*, &zvolume, PHP_LIBVIRT_VOLUME_RES_NAME, le_libvirt_volume);
+     if ((volume == NULL) || (volume->volume == NULL))
+@@ -929,7 +929,7 @@
+     DPRINTF("%s: virStorageVolDownload(%p, %p, %d, %d, %d) returned %d\n", PHPFUNC, volume->volume, stream->stream, (int) offset, (int) length, (int) flags, retval);
+ 
+     if (retval == -1) {
+-        set_error("Cannot download from stream" TSRMLS_CC);
++        set_error("Cannot download from stream");
+         RETURN_LONG(retval);
+     }
+ 
+@@ -958,7 +958,7 @@
+     zend_long length = 0;
+     int retval = -1;
+ 
+-    if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rr|l|l|l", &zvolume, &zstream, &offset, &length, &flags) == FAILURE)
++    if (zend_parse_parameters(ZEND_NUM_ARGS(), "rr|l|l|l", &zvolume, &zstream, &offset, &length, &flags) == FAILURE)
+         RETURN_LONG(retval);
+     VIRT_FETCH_RESOURCE(volume, php_libvirt_volume*, &zvolume, PHP_LIBVIRT_VOLUME_RES_NAME, le_libvirt_volume);
+     if ((volume == NULL) || (volume->volume == NULL))
+@@ -971,7 +971,7 @@
+     DPRINTF("%s: virStorageVolUpload(%p, %p, %d, %d, %d) returned %d\n", PHPFUNC, volume->volume, stream->stream, (int) offset, (int) length, (int) flags, retval);
+ 
+     if (retval == -1) {
+-        set_error_if_unset("Cannot upload storage volume" TSRMLS_CC);
++        set_error_if_unset("Cannot upload storage volume");
+         RETURN_LONG(retval);
+     }
+ 
+@@ -1000,7 +1000,7 @@
+     retval = virStorageVolResize(volume->volume, capacity, flags);
+     DPRINTF("%s: virStorageVolResize(%p, %d, %d) returned %d\n", PHPFUNC, volume->volume, (int) capacity, (int) flags, retval);
+     if (retval != 0) {
+-        set_error_if_unset("Cannot resize storage volume" TSRMLS_CC);
++        set_error_if_unset("Cannot resize storage volume");
+         RETURN_LONG(retval);
+     }
+ 
+--- a/src/libvirt-storage.h
++++ b/src/libvirt-storage.h
+@@ -52,11 +52,11 @@
+ 
+ # define GET_STORAGEPOOL_FROM_ARGS(args, ...)                                  \
+     do {                                                                       \
+-        reset_error(TSRMLS_C);                                                 \
+-        if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC,                   \
++        reset_error();                                                 \
++        if (zend_parse_parameters(ZEND_NUM_ARGS(),                   \
+                                   args,                                        \
+                                   __VA_ARGS__) == FAILURE) {                   \
+-            set_error("Invalid arguments" TSRMLS_CC);                          \
++            set_error("Invalid arguments");                          \
+             RETURN_FALSE;                                                      \
+         }                                                                      \
+                                                                                \
+@@ -69,11 +69,11 @@
+ 
+ # define GET_VOLUME_FROM_ARGS(args, ...)                                       \
+     do {                                                                       \
+-        reset_error(TSRMLS_C);                                                 \
+-        if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC,                   \
++        reset_error();                                                 \
++        if (zend_parse_parameters(ZEND_NUM_ARGS(),                   \
+                                   args,                                        \
+                                   __VA_ARGS__) == FAILURE) {                   \
+-            set_error("Invalid arguments" TSRMLS_CC);                          \
++            set_error("Invalid arguments");                          \
+             RETURN_FALSE;                                                      \
+         }                                                                      \
+                                                                                \
+@@ -96,8 +96,8 @@
+     php_libvirt_connection* conn;
+ } php_libvirt_volume;
+ 
+-void php_libvirt_storagepool_dtor(virt_resource *rsrc TSRMLS_DC);
+-void php_libvirt_volume_dtor(virt_resource *rsrc TSRMLS_DC);
++void php_libvirt_storagepool_dtor(virt_resource *rsrc);
++void php_libvirt_volume_dtor(virt_resource *rsrc);
+ 
+ PHP_FUNCTION(libvirt_storagepool_lookup_by_name);
+ PHP_FUNCTION(libvirt_storagepool_lookup_by_volume);
+--- a/src/libvirt-stream.c
++++ b/src/libvirt-stream.c
+@@ -14,14 +14,14 @@
+ int le_libvirt_stream;
+ 
+ void
+-php_libvirt_stream_dtor(virt_resource *rsrc TSRMLS_DC)
++php_libvirt_stream_dtor(virt_resource *rsrc)
+ {
+     php_libvirt_stream *stream = (php_libvirt_stream *)rsrc->ptr;
+     int rv = 0;
+ 
+     if (stream != NULL) {
+         if (stream->stream != NULL) {
+-            if (!check_resource_allocation(NULL, INT_RESOURCE_STREAM, stream->stream TSRMLS_CC)) {
++            if (!check_resource_allocation(NULL, INT_RESOURCE_STREAM, stream->stream)) {
+                 stream->stream = NULL;
+                 efree(stream);
+                 return;
+@@ -29,10 +29,10 @@
+             rv = virStreamFree(stream->stream);
+             if (rv != 0) {
+                 DPRINTF("%s: virStreamFree(%p) returned %d (%s)\n", __FUNCTION__, stream->stream, rv, LIBVIRT_G(last_error));
+-                php_error_docref(NULL TSRMLS_CC, E_WARNING, "virStreamFree failed with %i on destructor: %s", rv, LIBVIRT_G(last_error));
++                php_error_docref(NULL, E_WARNING, "virStreamFree failed with %i on destructor: %s", rv, LIBVIRT_G(last_error));
+             } else {
+                 DPRINTF("%s: virStreamFree(%p) completed successfully\n", __FUNCTION__, stream->stream);
+-                resource_change_counter(INT_RESOURCE_STREAM, NULL, stream->stream, 0 TSRMLS_CC);
++                resource_change_counter(INT_RESOURCE_STREAM, NULL, stream->stream, 0);
+             }
+             stream->stream = NULL;
+         }
+@@ -54,7 +54,7 @@
+     virStreamPtr stream = NULL;
+     php_libvirt_stream *res_stream;
+ 
+-    if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &zconn) == FAILURE)
++    if (zend_parse_parameters(ZEND_NUM_ARGS(), "r", &zconn) == FAILURE)
+         RETURN_FALSE;
+     VIRT_FETCH_RESOURCE(conn, php_libvirt_connection*, &zconn, PHP_LIBVIRT_CONNECTION_RES_NAME, le_libvirt_connection);
+     if ((conn == NULL) || (conn->conn == NULL))
+@@ -62,7 +62,7 @@
+ 
+     stream = virStreamNew(conn->conn, 0);
+     if (stream == NULL) {
+-        set_error("Cannot create new stream" TSRMLS_CC);
++        set_error("Cannot create new stream");
+         RETURN_FALSE;
+     }
+ 
+@@ -70,7 +70,7 @@
+     res_stream->stream = stream;
+     res_stream->conn = conn;
+ 
+-    resource_change_counter(INT_RESOURCE_STREAM, conn->conn, res_stream->stream, 1 TSRMLS_CC);
++    resource_change_counter(INT_RESOURCE_STREAM, conn->conn, res_stream->stream, 1);
+ 
+     VIRT_REGISTER_RESOURCE(res_stream, le_libvirt_stream);
+ }
+@@ -88,7 +88,7 @@
+     php_libvirt_stream *stream = NULL;
+     int retval = -1;
+ 
+-    if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &zstream) == FAILURE)
++    if (zend_parse_parameters(ZEND_NUM_ARGS(), "r", &zstream) == FAILURE)
+         RETURN_LONG(retval);
+     VIRT_FETCH_RESOURCE(stream, php_libvirt_stream*, &zstream, PHP_LIBVIRT_STREAM_RES_NAME, le_libvirt_stream);
+     if ((stream == NULL) || (stream->stream == NULL))
+@@ -96,11 +96,11 @@
+ 
+     retval = virStreamFree(stream->stream);
+     if (retval != 0) {
+-        set_error("Cannot free stream" TSRMLS_CC);
++        set_error("Cannot free stream");
+         RETURN_LONG(retval);
+     }
+ 
+-    resource_change_counter(INT_RESOURCE_STREAM, stream->conn->conn, stream->stream, 0 TSRMLS_CC);
++    resource_change_counter(INT_RESOURCE_STREAM, stream->conn->conn, stream->stream, 0);
+     RETURN_LONG(retval);
+ }
+ 
+@@ -117,7 +117,7 @@
+     php_libvirt_stream *stream = NULL;
+     int retval = -1;
+ 
+-    if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &zstream) == FAILURE)
++    if (zend_parse_parameters(ZEND_NUM_ARGS(), "r", &zstream) == FAILURE)
+         RETURN_LONG(retval);
+     VIRT_FETCH_RESOURCE(stream, php_libvirt_stream*, &zstream, PHP_LIBVIRT_STREAM_RES_NAME, le_libvirt_stream);
+     if ((stream == NULL) || (stream->stream == NULL))
+@@ -125,7 +125,7 @@
+ 
+     retval = virStreamAbort(stream->stream);
+     if (retval != 0) {
+-        set_error("Cannot abort stream" TSRMLS_CC);
++        set_error("Cannot abort stream");
+         RETURN_LONG(retval);
+     }
+     RETURN_LONG(retval);
+@@ -144,7 +144,7 @@
+     php_libvirt_stream *stream = NULL;
+     int retval = -1;
+ 
+-    if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &zstream) == FAILURE)
++    if (zend_parse_parameters(ZEND_NUM_ARGS(), "r", &zstream) == FAILURE)
+         RETURN_LONG(retval);
+     VIRT_FETCH_RESOURCE(stream, php_libvirt_stream*, &zstream, PHP_LIBVIRT_STREAM_RES_NAME, le_libvirt_stream);
+     if ((stream == NULL) || (stream->stream == NULL))
+@@ -152,7 +152,7 @@
+ 
+     retval = virStreamFinish(stream->stream);
+     if (retval != 0) {
+-        set_error("Cannot finish stream" TSRMLS_CC);
++        set_error("Cannot finish stream");
+         RETURN_LONG(retval);
+     }
+     RETURN_LONG(retval);
+@@ -175,7 +175,7 @@
+     int retval = -1;
+     zend_long length = 0;
+ 
+-    if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rz|l", &zstream, &zbuf, &length) == FAILURE)
++    if (zend_parse_parameters(ZEND_NUM_ARGS(), "rz|l", &zstream, &zbuf, &length) == FAILURE)
+         RETURN_LONG(retval);
+     VIRT_FETCH_RESOURCE(stream, php_libvirt_stream*, &zstream, PHP_LIBVIRT_STREAM_RES_NAME, le_libvirt_stream);
+     if ((stream == NULL) || (stream->stream == NULL))
+@@ -193,7 +193,7 @@
+     }
+ 
+     if (retval == -1)
+-        set_error("Cannot recv from stream" TSRMLS_CC);
++        set_error("Cannot recv from stream");
+ 
+     efree(recv_buf);
+     RETURN_LONG(retval);
+@@ -216,7 +216,7 @@
+     zend_long length = 0;
+     char *cstr;
+ 
+-    if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rz|l", &zstream, &zbuf, &length) == FAILURE)
++    if (zend_parse_parameters(ZEND_NUM_ARGS(), "rz|l", &zstream, &zbuf, &length) == FAILURE)
+         RETURN_LONG(retval);
+     VIRT_FETCH_RESOURCE(stream, php_libvirt_stream*, &zstream, PHP_LIBVIRT_STREAM_RES_NAME, le_libvirt_stream);
+     if ((stream == NULL) || (stream->stream == NULL))
+@@ -226,7 +226,7 @@
+ 
+     retval = virStreamSend(stream->stream, cstr, length);
+     if (retval == -1)
+-        set_error("Cannot send to stream" TSRMLS_CC);
++        set_error("Cannot send to stream");
+ 
+     RETURN_LONG(retval);
+ }
+--- a/src/libvirt-stream.h
++++ b/src/libvirt-stream.h
+@@ -27,7 +27,7 @@
+     php_libvirt_connection* conn;
+ } php_libvirt_stream;
+ 
+-void php_libvirt_stream_dtor(virt_resource *rsrc TSRMLS_DC);
++void php_libvirt_stream_dtor(virt_resource *rsrc);
+ 
+ PHP_FUNCTION(libvirt_stream_create);
+ PHP_FUNCTION(libvirt_stream_close);
diff -pruN 0.5.5-3/debian/patches/fix-missing-semicolon.patch 0.5.5-3ubuntu2/debian/patches/fix-missing-semicolon.patch
--- 0.5.5-3/debian/patches/fix-missing-semicolon.patch	1970-01-01 00:00:00.000000000 +0000
+++ 0.5.5-3ubuntu2/debian/patches/fix-missing-semicolon.patch	2021-06-11 23:24:13.000000000 +0000
@@ -0,0 +1,12 @@
+--- a/src/libvirt-domain.c
++++ b/src/libvirt-domain.c
+@@ -2000,8 +2000,7 @@
+     GET_DOMAIN_FROM_ARGS("rl", &zdomain, &source);
+ 
+     if ((count = virDomainInterfaceAddresses(domain->domain, &ifaces, source, 0)) < 0) {
+-        RETURN_FALSE
+-        goto cleanup;
++        RETURN_FALSE;
+     }
+ 
+     array_init(return_value);
diff -pruN 0.5.5-3/debian/patches/series 0.5.5-3ubuntu2/debian/patches/series
--- 0.5.5-3/debian/patches/series	2021-02-14 15:40:51.000000000 +0000
+++ 0.5.5-3ubuntu2/debian/patches/series	2021-06-11 23:24:13.000000000 +0000
@@ -1,2 +1,4 @@
 0001-Don-t-rely-on-absolute-paths-in-tools-Makefile.am.patch
 0001-src-don-t-declare-global-variables-in-header-files.patch
+0001-Drop-use-of-deprecated-TSRMLS-macros.patch
+fix-missing-semicolon.patch
diff -pruN 0.5.5-3/debian/rules 0.5.5-3ubuntu2/debian/rules
--- 0.5.5-3/debian/rules	2021-02-14 15:40:51.000000000 +0000
+++ 0.5.5-3ubuntu2/debian/rules	2021-06-11 23:24:13.000000000 +0000
@@ -18,7 +18,7 @@ export SHELL := /bin/sh -e
 PECL_NAME    := libvirt-php
 INSTALL_ROOT := $(CURDIR)/debian/php-$(PECL_NAME)
 
-PHP_VERSIONS := $(shell /usr/sbin/phpquery -V | grep -v '8\.0')
+PHP_VERSIONS := $(shell /usr/sbin/phpquery -V)
 
 %:
 	dh $@ --with php --with autoreconf --with autotools-dev
