Skip to content

[Win32] defining I_STDCKDINT #23750

@sisyphus

Description

@sisyphus

On WIndows, when we build perl with gcc-14 or later, stdckdint.h is available and functional.
In order to define I_STDCKDINT and $Config{i_stdckdint}, when building current blead, I know of 2 methods:

Method1:
Edit win32/config.gc to define i_stdckdint && edit win32/config_H.gc to define I_STDCKDINT

Method2:
Leave win32/config.gc and win32/config_H.gc in their original state (with both of those symbols not defined) and instead edit win32/config_sh.PL to test for the availability of stdckdint.h - and then have it define the 2 symbols if the test was successful. (The aim being that perl would ship with this amended win32/config_sh.PL and the need to edit any files would be eliminated.)

Method1 works fine - but it requires manual intervention and the foreknowledge that stdckdint.h is available.

With Method2, I'm finding that, during the building of perl, when Inline.h is first compiled (early on in the 'make' phase), win32/config_sh.PL has not yet been processed.
Consequently, at that time, Inline.h does NOT include stdckdint.h because the symbol I_STDCKDINT is not yet defined.
This strikes me as being sub-optimal, if not plain wrong.
(NOTE: At the end of the perl build, both I_STDCKDINT and $Config{i_stdckdint} are defined.)

Am I stuck with having to continually edit win32/config.gc and win32/config_H.gc ? ... or is there something that I'm overlooking ?

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions