Re: Meson far from ready on Windows
Andres Freund <andres@anarazel.de>
From: Andres Freund <andres@anarazel.de>
To: walther@technowledgy.de, Dave Page <dpage@pgadmin.org>
Cc: Nazir Bilal Yavuz <byavuz81@gmail.com>,
PostgreSQL Developers <pgsql-hackers@lists.postgresql.org>
Date: 2024-06-22T21:17:43Z
Lists: pgsql-hackers
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
meson: Add dependency lookups via names used by cmake
- 5ec2c529f553 18.0 landed
- 13c58ca51883 16.4 landed
- 9ac6995d6b1f 17.0 landed
-
meson: Add support for detecting gss without pkg-config
- 7ed2ce0b257f 18.0 landed
- 2b4593379b81 16.4 landed
- a850701c7ddf 17.0 landed
-
meson: Add support for detecting ossp-uuid without pkg-config
- 2416fdb3ee30 18.0 landed
- 793a5bebebbe 16.4 landed
- 1213875b3a99 17.0 landed
Hi, On June 22, 2024 7:32:01 PM GMT+02:00, walther@technowledgy.de wrote: >Andres Freund: >> FWIW, dynamic linking has a noticeable overhead on other platforms too. A >> non-dependencies-enabled postgres can do about 2x the connections-per-second >> than a fully kitted out postgres can (basically due to more memory mapping >> metadata being copied). But on windows the overhead is larger because so much >> more happens for every new connections, including loading all dlls from >> scratch. >> >> I suspect linking a few libraries statically would be quite worth it on >> windows. On other platforms it'd be quite inadvisable to statically link >> libraries, due to security updates, [...] >That's not necessarily true. The nix package manager and thus NixOS track all dependencies for a piece of software. If any of the dependencies are updated, all dependents are rebuilt, too. So the security concern doesn't apply here. There is a "static overlay", which builds everything linked fully statically. Right. There's definitely some scenario where it's ok, I was simplifying a bit. > Unfortunately, PostgreSQL doesn't build in that, so far. I've built mostly statically linked pg without much of a problem, what trouble did you encounter? Think there were some issues with linking Kerberos and openldap statically, but not on postgres' side. Building the postgres backend without support for dynamic linking doesn't make sense though. Extensions are just stop ingrained part of pg. >Lately, I have been looking into building at least libpq in that static overlay, via Meson. There are two related config options: >-Ddefault_library=shared|static|both >-Dprefer_static > >The first controls which libraries (libpq, ...) to build ourselves. The second controls linking, IIUC also against external dependencies. Pg by default builds a static libpq on nearly all platforms (not aix I think and maybe not Windows when building with autoconf, not sure about the old msvc system) today? >Maybe it would be a first step to support -Dprefer_static? That should work for nearly all dependencies today. Except for libintl, I think. I found that there are a lot of buglets in static link dependencies of various libraries though. Andres -- Sent from my Android device with K-9 Mail. Please excuse my brevity.