Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:78851 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 63838 invoked from network); 7 Nov 2014 18:31:40 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 7 Nov 2014 18:31:40 -0000 Authentication-Results: pb1.pair.com header.from=ingwie2000@googlemail.com; sender-id=pass Authentication-Results: pb1.pair.com smtp.mail=ingwie2000@googlemail.com; spf=pass; sender-id=pass Received-SPF: pass (pb1.pair.com: domain googlemail.com designates 74.125.82.50 as permitted sender) X-PHP-List-Original-Sender: ingwie2000@googlemail.com X-Host-Fingerprint: 74.125.82.50 mail-wg0-f50.google.com Received: from [74.125.82.50] ([74.125.82.50:46079] helo=mail-wg0-f50.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id D5/C3-38250-B001D545 for ; Fri, 07 Nov 2014 13:31:40 -0500 Received: by mail-wg0-f50.google.com with SMTP id z12so4290977wgg.23 for ; Fri, 07 Nov 2014 10:31:35 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=20120113; h=from:content-type:content-transfer-encoding:subject:message-id:date :to:mime-version; bh=kFrPEhVsPKWldouh6ZwHg+Wti4vuX6yEFejJqVTdbg8=; b=rmLCqt30I6ENQRYRYzjsM41skTKHYwCVAcq+cENKYmcOgWgj/XqWQ3S+B+JMAyxDRG r0IeFW145sRbEG8A4CQWwn+vHByCiW+zAS3IAQq+bVrIBsbbs7CMCCxQN2jfyYb5FxYc guS96dldoSjXOFiczJ9cpfZHmWD0bagS6KcOyeVw8D5c+7jSEEbwNpLy5GEsungcPsjp N7w+Cc3HjBDjSpNK92t5Z27hXVsFTcUtyVyMEFMCu9vbzoIBZV63hi//rEsfAZXigZeW ZwUtDdpWrcdVBWLVh2jeVZmJpl2nwBJQDB3vifsAZMZe25CMpMZllg2eaM/KvmfAeMho hvFg== X-Received: by 10.180.107.1 with SMTP id gy1mr7592580wib.8.1415384763826; Fri, 07 Nov 2014 10:26:03 -0800 (PST) Received: from [192.168.200.103] (dslb-088-069-045-058.088.069.pools.vodafone-ip.de. [88.69.45.58]) by mx.google.com with ESMTPSA id f1sm2961982wiy.17.2014.11.07.10.26.02 for (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Fri, 07 Nov 2014 10:26:03 -0800 (PST) Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Message-ID: <6AB80FC7-3E7D-4EFE-B1AA-5C19D3351267@googlemail.com> Date: Fri, 7 Nov 2014 19:26:01 +0100 To: PHP internals list Mime-Version: 1.0 (Mac OS X Mail 8.0 \(1990.1\)) X-Mailer: Apple Mail (2.1990.1) Subject: How are plugins built on OS X? From: ingwie2000@googlemail.com ("Kevin Ingwersen (Ingwie Phoenix)") Hey. While I am creating a small build tool and learning more about Clang/GCC = and the various linkers, I came across the differences between = shared/dynamic libraries, plugins and executables on the various = platforms. That made me wonder, how PHP=E2=80=99s plugins are compiled. For instance, if one had `enable-curl=3Dshared` turned on, with the CGI = and CLI SAPI, we=E2=80=99d get two binaries and a shared object - a = =E2=80=9Ebundle=E2=80=9C on OS X. But, there are two ways to compile = php_curl.so : -bundle -bundle_loader /path/to/php or -bundle -undefined dynamic_lookup Both are only needed if unresolved symbols occur, though. In my test-run = with a plugin framework, I ran into this issue. By Apple=E2=80=99s docs, = one basically needs -bundle and =E2=80=9Eflags and switches that one = would use during the compilation of an executable=E2=80=9C. Which of the above methods are mainly used for PHP=E2=80=99s shared = extensions? I would go and try and dig my way thru Make and = Autoconf/phpize - but my make-fu is far beyond what I would need here, = only to find one single answer. :) Kind regards, Ingwie=