Re: windows resource files, bugs and what do we actually want - Mailing list pgsql-hackers

From Magnus Hagander
Subject Re: windows resource files, bugs and what do we actually want
Date
Msg-id CABUevEyqqFVgEOs+hN-QOyGMrwFEkztL05Lg6zvbga=KzfSL7Q@mail.gmail.com
Whole thread Raw
In response to Re: windows resource files, bugs and what do we actually want  (Andres Freund <andres@anarazel.de>)
List pgsql-hackers


On Fri, Sep 2, 2022 at 3:26 AM Andres Freund <andres@anarazel.de> wrote:
Hi,

On 2022-08-29 15:13:14 -0700, Andres Freund wrote:
> 1) For make based builds, all libraries that are built with MODULES rather
>    than MODULES_big have the wrong "FILETYPE", because Makefile.win32 checks
>    $(shlib), which is only set for MODULES_big.
>
>    This used to be even more widely wrong until recently:
>
>    commit 16a4a3d59cd5574fdc697ea16ef5692ce34c54d5
>    Author: Peter Eisentraut <peter@eisentraut.org>
>    Date:   2020-01-15 10:15:06 +0100
>
>        Remove libpq.rc, use win32ver.rc for libpq
>
>    Afaict before that we only set it correctly for pgevent.
>
> 2) For make base builds, We only set InternalName, OriginalFileName when
>    $shlib is set, but InternalName, OriginalFilename are required.
>
>    https://docs.microsoft.com/en-us/windows/win32/menurc/versioninfo-resource
>

These are harder to fix than was immediately obvious to me. We generate one
win32ver.rc per directory, even if a directory contains multiple build
products (think MODULES or src/bin/scripts). So we simply can't put a correct
filename etc into the .rc file, unless we change the name of the .rc file.

Eeep. Yeah, that may be the reasoning behind some of how it was in the past.
 

I looked into how hard it would be to fix this on the make side, and decided
it's too hard. I'm inclined to leave this alone and fix it later in the meson
port.

Agreed.
 

--

pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: Missing CFI in iterate_word_similarity()
Next
From: Daniel Gustafsson
Date:
Subject: Re: Missing CFI in iterate_word_similarity()