Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:125322 X-Original-To: internals@lists.php.net Delivered-To: internals@lists.php.net Received: from php-smtp4.php.net (php-smtp4.php.net [45.112.84.5]) by qa.php.net (Postfix) with ESMTPS id 612861A00BD for ; Tue, 27 Aug 2024 14:42:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=php.net; s=mail; t=1724769876; bh=nCbz4dlHTHO1WYhbweB1rxcprT+8ffO9f7ZFdN5jjBs=; h=Subject:From:In-Reply-To:Date:Cc:References:To:From; b=GvzV4liEwj+8gp24RMO16ZVvp1IslyPYSqJMoQt8ncea14zIbHfh5FflZFQa30p/s MiJW9n4QzCPQbLwOJnyLvymQDhfN/66/dP0rSsSyWA8iSEvhsRAjhMkcql3ERL/n39 aFsHPA4btLNRKQojLOdTVXjblGbl+6ZRDgexEz60fGdgRC5mz+wtRB1VebgiWMfJEp hUTfXhGszlskrwnjbM2Egy6AwhE2suRCt5dKThyNqqWWUtSYfrXI0t3pKaosBVlyXW xwMNT6UtMey+clCmhEwDgAmKptqIFmedURNxWOaRIaswUO507wCiIbssBzrANfdHLP 5rBvjoWM9ztbA== Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id C8A06180059 for ; Tue, 27 Aug 2024 14:44:35 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 4.0.0 (2022-12-13) on php-smtp4.php.net X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50,DMARC_MISSING, SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=4.0.0 X-Spam-Virus: No X-Envelope-From: Received: from supercat.cmpct.info (supercat.cmpct.info [71.19.146.230]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by php-smtp4.php.net (Postfix) with ESMTPS for ; Tue, 27 Aug 2024 14:44:35 +0000 (UTC) Received: from smtpclient.apple (fctnnbsc38w-142-162-55-237.dhcp-dynamic.fibreop.nb.bellaliant.net [142.162.55.237]) by supercat.cmpct.info (Postfix) with ESMTPSA id A05DC5239A; Tue, 27 Aug 2024 14:42:38 +0000 (UTC) Content-Type: text/plain; charset=utf-8 Precedence: bulk list-help: list-post: List-Id: internals.lists.php.net x-ms-reactions: disallow Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3776.700.51\)) Subject: Re: [PHP-DEV] Native SSL support in Phar extension In-Reply-To: <24eca142-a44e-4b27-99bf-4dc4448ab4fe@gmx.de> Date: Tue, 27 Aug 2024 11:42:26 -0300 Cc: Peter Kokot , Internals Content-Transfer-Encoding: quoted-printable Message-ID: <1730FC97-1335-45A4-A140-BE033F72A347@cmpct.info> References: <8664467A-D602-48B6-96CA-D6FAD4488F14@cmpct.info> <24eca142-a44e-4b27-99bf-4dc4448ab4fe@gmx.de> To: "Christoph M. Becker" X-Mailer: Apple Mail (2.3776.700.51) From: calvin@cmpct.info (Calvin Buckley) On Aug 27, 2024, at 8:52=E2=80=AFAM, Christoph M. Becker = wrote: >=20 > Interesting! Just a the other day I (re-?)learned that there are > usually no "import libraries" (Windows terminology) on Linux, which = are > *very* common on Windows. Such import libraries define stubs (i.e. > wrappers) for all exported symbols; for functions, basically = (pseudo-code): >=20 > the_function(a, b, c) { > module =3D dl_load("library.dll") > proc =3D dl_fetch_symbol(module, "__imp_the_function") > return proc(a, b, c) > } >=20 > Might roughly be similar on AIX with "the other dynamic linking = option". There isn't something like import libraries, but rather, the shared libs are actually .a archive files that contain the .so to load at runtime (of both bitnesses, as well as being able to do things like pack = multiple SOVERs), plus an import file that specifies the name of the library, the symbols contained within, etc. My impression is the runtime loader/linker option basically ignores all of that infrastructure in favour of something that works like what commodity Unix has, trading AIX's problems with those problems (i.e. = lack of symbol namespacing). Unfortunately, I'm in a situation where I do = need symbol namespacing, so I'm starting to deal with AIX's problems instead. Unfortunately, I'm not David Edelsohn. (I wish ELF-world would get symbol namespacing - it would make shipping binaries far less spooky to debug. Windows gets this right.) > Well, that is not an option for any binaries we build and ship, since > the core is not supposed to rely on any external dependencies (that's > the reason why we still bundle libpcre2 although it is supposed to be > available almost everywhere). I didn't know that; it's kinda confusing considering they're all in = ext/, and some vendor (i.e. gd, pcre), but others do not.=