ruby-core@ruby-lang.org archive (unofficial mirror)
 help / color / mirror / Atom feed
* [ruby-core:119988] [Ruby master Bug#20904] 3.4.0-preview2: Building miniruby.exe fails for mswin32
@ 2024-11-22  3:24 jun66j5 (Jun Omae) via ruby-core
  2024-11-23 11:31 ` [ruby-core:119997] " nobu (Nobuyoshi Nakada) via ruby-core
                   ` (9 more replies)
  0 siblings, 10 replies; 11+ messages in thread
From: jun66j5 (Jun Omae) via ruby-core @ 2024-11-22  3:24 UTC (permalink / raw)
  To: ruby-core; +Cc: jun66j5 (Jun Omae)

Issue #20904 has been reported by jun66j5 (Jun Omae).

----------------------------------------
Bug #20904: 3.4.0-preview2: Building miniruby.exe fails for mswin32
https://bugs.ruby-lang.org/issues/20904

* Author: jun66j5 (Jun Omae)
* Status: Open
* Backport: 3.1: UNKNOWN, 3.2: UNKNOWN, 3.3: UNKNOWN
----------------------------------------
I tried to build 3.4.0-preview2 with MSVC x86, however linking miniruby.exe failed with the following eror:

```
linking miniruby.exe
   Creating library miniruby.lib and object miniruby.exp
win32.obj : error LNK2019: unresolved external symbol _GetSystemTimePreciseAsFileTime referenced in function _clock_gettime
miniruby.exe : fatal error LNK1120: 1 unresolved externals
```

It doesn't fail with MSVC x64.

Investigating it, Windows 8 is required after #20563 but `NTVER` is still `0x0600` in `win32/Makefile.sub`. I think it should be `0x0602`. Workaround is to invoke `win32\configure.bat` with `--with-ntver=0x0602`.

Also, adding temporarily `-w24013` to `WARNFLAGS` in `win32/Makefile.sub`, the following warning is received.

```
compiling win32/win32.c
win32.c
win32/win32.c(4789): warning C4013: 'GetSystemTimePreciseAsFileTime' undefined; assuming extern returning int
```



-- 
https://bugs.ruby-lang.org/
 ______________________________________________
 ruby-core mailing list -- ruby-core@ml.ruby-lang.org
 To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org
 ruby-core info -- https://ml.ruby-lang.org/mailman3/lists/ruby-core.ml.ruby-lang.org/

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [ruby-core:119997] [Ruby master Bug#20904] 3.4.0-preview2: Building miniruby.exe fails for mswin32
  2024-11-22  3:24 [ruby-core:119988] [Ruby master Bug#20904] 3.4.0-preview2: Building miniruby.exe fails for mswin32 jun66j5 (Jun Omae) via ruby-core
@ 2024-11-23 11:31 ` nobu (Nobuyoshi Nakada) via ruby-core
  2024-11-24  8:26 ` [ruby-core:119999] " jun66j5 (Jun Omae) via ruby-core
                   ` (8 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: nobu (Nobuyoshi Nakada) via ruby-core @ 2024-11-23 11:31 UTC (permalink / raw)
  To: ruby-core; +Cc: nobu (Nobuyoshi Nakada)

Issue #20904 has been updated by nobu (Nobuyoshi Nakada).

Status changed from Open to Feedback

jun66j5 (Jun Omae) wrote:
> Investigating it, Windows 8 is required after #20563 but `NTVER` is still `0x0600` in `win32/Makefile.sub`. I think it should be `0x0602`. Workaround is to invoke `win32\configure.bat` with `--with-ntver=0x0602`.

Thank you, fixed it by commit:80cfa57234255667a86d46096093099349a7262a.

> Also, adding temporarily `-w24013` to `WARNFLAGS` in `win32/Makefile.sub`, the following warning is received.
> 
> ```
> compiling win32/win32.c
> win32.c
> win32/win32.c(4789): warning C4013: 'GetSystemTimePreciseAsFileTime' undefined; assuming extern returning int
> ```

I can't reproduce it with:
* Visual Studio 2022 Developer Command Prompt v17.12.0
* Windows 11 SDK Version 10.0.26100.0
* Windows 11 [Version 10.0.26100.2314]

----------------------------------------
Bug #20904: 3.4.0-preview2: Building miniruby.exe fails for mswin32
https://bugs.ruby-lang.org/issues/20904#change-110740

* Author: jun66j5 (Jun Omae)
* Status: Feedback
* Backport: 3.1: UNKNOWN, 3.2: UNKNOWN, 3.3: UNKNOWN
----------------------------------------
I tried to build 3.4.0-preview2 with MSVC x86, however linking miniruby.exe failed with the following eror:

```
linking miniruby.exe
   Creating library miniruby.lib and object miniruby.exp
win32.obj : error LNK2019: unresolved external symbol _GetSystemTimePreciseAsFileTime referenced in function _clock_gettime
miniruby.exe : fatal error LNK1120: 1 unresolved externals
```

It doesn't fail with MSVC x64.

Investigating it, Windows 8 is required after #20563 but `NTVER` is still `0x0600` in `win32/Makefile.sub`. I think it should be `0x0602`. Workaround is to invoke `win32\configure.bat` with `--with-ntver=0x0602`.

Also, adding temporarily `-w24013` to `WARNFLAGS` in `win32/Makefile.sub`, the following warning is received.

```
compiling win32/win32.c
win32.c
win32/win32.c(4789): warning C4013: 'GetSystemTimePreciseAsFileTime' undefined; assuming extern returning int
```



-- 
https://bugs.ruby-lang.org/
 ______________________________________________
 ruby-core mailing list -- ruby-core@ml.ruby-lang.org
 To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org
 ruby-core info -- https://ml.ruby-lang.org/mailman3/lists/ruby-core.ml.ruby-lang.org/

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [ruby-core:119999] [Ruby master Bug#20904] 3.4.0-preview2: Building miniruby.exe fails for mswin32
  2024-11-22  3:24 [ruby-core:119988] [Ruby master Bug#20904] 3.4.0-preview2: Building miniruby.exe fails for mswin32 jun66j5 (Jun Omae) via ruby-core
  2024-11-23 11:31 ` [ruby-core:119997] " nobu (Nobuyoshi Nakada) via ruby-core
@ 2024-11-24  8:26 ` jun66j5 (Jun Omae) via ruby-core
  2024-11-30  1:19 ` [ruby-core:120065] " nobu (Nobuyoshi Nakada) via ruby-core
                   ` (7 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: jun66j5 (Jun Omae) via ruby-core @ 2024-11-24  8:26 UTC (permalink / raw)
  To: ruby-core; +Cc: jun66j5 (Jun Omae)

Issue #20904 has been updated by jun66j5 (Jun Omae).


nobu (Nobuyoshi Nakada) wrote in #note-1:
> jun66j5 (Jun Omae) wrote:
> > Investigating it, Windows 8 is required after #20563 but `NTVER` is still `0x0600` in `win32/Makefile.sub`. I think it should be `0x0602`. Workaround is to invoke `win32\configure.bat` with `--with-ntver=0x0602`.
> 
> Thank you, fixed it by commit:80cfa57234255667a86d46096093099349a7262a.

Thanks for the fix!

> > Also, adding temporarily `-w24013` to `WARNFLAGS` in `win32/Makefile.sub`, the following warning is received.
> > 
> > ```
> > compiling win32/win32.c
> > win32.c
> > win32/win32.c(4789): warning C4013: 'GetSystemTimePreciseAsFileTime' undefined; assuming extern returning int
> > ```
> 
> I can't reproduce it with:
> * Visual Studio 2022 Developer Command Prompt v17.12.0
> * Windows 11 SDK Version 10.0.26100.0
> * Windows 11 [Version 10.0.26100.2314]

Weird. I get the warning on the following environments:

* Windows Server 2022 (10.0.20348) on GitHub Actions
  - Visual Studio 2022 Developer Command Prompt v17.12.0
  - Windows SDK: 10.0.26100.0
  - See:
    - x86: https://github.com/jun66j5/ruby-build/actions/runs/11993783074/job/33435109634#step:4:638
    - x64: https://github.com/jun66j5/ruby-build/actions/runs/11994220038/job/33436008633#step:4:1482
* Windows 10 22H2
  - Visual Studio 2022 Developer Command Prompt v17.12.1
  - Windows SDK: 10.0.20348.0

I noticed C4013 warnings for `_finitef` only for x86 by adding -w24013 flag at https://github.com/jun66j5/ruby-build/actions/runs/11993783074/job/33435109634#step:4:580:

```
D:\a\ruby-build\ruby-build\ruby-3.4.0-preview2\vm_insnhelper.c(6432): warning C4013: '_finitef' undefined; assuming extern returning int
prism/static_literals.c(504): warning C4013: '_finitef' undefined; assuming extern returning int
prism/prism.c(4153): warning C4013: '_finitef' undefined; assuming extern returning int
```

Checking ucrt/corecrt_math.h, the `_finitef` seems to be available for x64 but not x86.

----------------------------------------
Bug #20904: 3.4.0-preview2: Building miniruby.exe fails for mswin32
https://bugs.ruby-lang.org/issues/20904#change-110743

* Author: jun66j5 (Jun Omae)
* Status: Feedback
* Backport: 3.1: DONTNEED, 3.2: DONTNEED, 3.3: DONTNEED
----------------------------------------
I tried to build 3.4.0-preview2 with MSVC x86, however linking miniruby.exe failed with the following eror:

```
linking miniruby.exe
   Creating library miniruby.lib and object miniruby.exp
win32.obj : error LNK2019: unresolved external symbol _GetSystemTimePreciseAsFileTime referenced in function _clock_gettime
miniruby.exe : fatal error LNK1120: 1 unresolved externals
```

It doesn't fail with MSVC x64.

Investigating it, Windows 8 is required after #20563 but `NTVER` is still `0x0600` in `win32/Makefile.sub`. I think it should be `0x0602`. Workaround is to invoke `win32\configure.bat` with `--with-ntver=0x0602`.

Also, adding temporarily `-w24013` to `WARNFLAGS` in `win32/Makefile.sub`, the following warning is received.

```
compiling win32/win32.c
win32.c
win32/win32.c(4789): warning C4013: 'GetSystemTimePreciseAsFileTime' undefined; assuming extern returning int
```



-- 
https://bugs.ruby-lang.org/
 ______________________________________________
 ruby-core mailing list -- ruby-core@ml.ruby-lang.org
 To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org
 ruby-core info -- https://ml.ruby-lang.org/mailman3/lists/ruby-core.ml.ruby-lang.org/

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [ruby-core:120065] [Ruby master Bug#20904] 3.4.0-preview2: Building miniruby.exe fails for mswin32
  2024-11-22  3:24 [ruby-core:119988] [Ruby master Bug#20904] 3.4.0-preview2: Building miniruby.exe fails for mswin32 jun66j5 (Jun Omae) via ruby-core
  2024-11-23 11:31 ` [ruby-core:119997] " nobu (Nobuyoshi Nakada) via ruby-core
  2024-11-24  8:26 ` [ruby-core:119999] " jun66j5 (Jun Omae) via ruby-core
@ 2024-11-30  1:19 ` nobu (Nobuyoshi Nakada) via ruby-core
  2024-11-30  1:29 ` [ruby-core:120066] " nobu (Nobuyoshi Nakada) via ruby-core
                   ` (6 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: nobu (Nobuyoshi Nakada) via ruby-core @ 2024-11-30  1:19 UTC (permalink / raw)
  To: ruby-core; +Cc: nobu (Nobuyoshi Nakada)

Issue #20904 has been updated by nobu (Nobuyoshi Nakada).


jun66j5 (Jun Omae) wrote in #note-3:
> Weird. I get the warning on the following environments:
> 
> * Windows Server 2022 (10.0.20348) on GitHub Actions
>   - Visual Studio 2022 Developer Command Prompt v17.12.0
>   - Windows SDK: 10.0.26100.0
>   - See:
>     - x86: https://github.com/jun66j5/ruby-build/actions/runs/11993783074/job/33435109634#step:4:638
>     - x64: https://github.com/jun66j5/ruby-build/actions/runs/11994220038/job/33436008633#step:4:1482
> * Windows 10 22H2
>   - Visual Studio 2022 Developer Command Prompt v17.12.1
>   - Windows SDK: 10.0.20348.0

Weird.
Can you reproduce it locally?
If so, what is shown by `nmake process.i && findstr "GetSystemTime" process.i`?

> I noticed C4013 warnings for `_finitef` only for x86 by adding -w24013 flag at https://github.com/jun66j5/ruby-build/actions/runs/11993783074/job/33435109634#step:4:580:
> 
> ```
> D:\a\ruby-build\ruby-build\ruby-3.4.0-preview2\vm_insnhelper.c(6432): warning C4013: '_finitef' undefined; assuming extern returning int
> prism/static_literals.c(504): warning C4013: '_finitef' undefined; assuming extern returning int
> prism/prism.c(4153): warning C4013: '_finitef' undefined; assuming extern returning int
> ```
> 
> Checking ucrt/corecrt_math.h, the `_finitef` seems to be available for x64 but not x86.

It is because https://github.com/ruby/prism/commit/4267161ca7.
The latest MSVC seems to define `isinf` as a macro using `fpclassify`, and both seem conform to POSIX and C99.
Older versions of MSVC did not full-support C99, so `isinf` might not support `float` argument.
@kddnewton, for what version of MSVC is this needed?


----------------------------------------
Bug #20904: 3.4.0-preview2: Building miniruby.exe fails for mswin32
https://bugs.ruby-lang.org/issues/20904#change-110805

* Author: jun66j5 (Jun Omae)
* Status: Feedback
* Backport: 3.1: DONTNEED, 3.2: DONTNEED, 3.3: DONTNEED
----------------------------------------
I tried to build 3.4.0-preview2 with MSVC x86, however linking miniruby.exe failed with the following eror:

```
linking miniruby.exe
   Creating library miniruby.lib and object miniruby.exp
win32.obj : error LNK2019: unresolved external symbol _GetSystemTimePreciseAsFileTime referenced in function _clock_gettime
miniruby.exe : fatal error LNK1120: 1 unresolved externals
```

It doesn't fail with MSVC x64.

Investigating it, Windows 8 is required after #20563 but `NTVER` is still `0x0600` in `win32/Makefile.sub`. I think it should be `0x0602`. Workaround is to invoke `win32\configure.bat` with `--with-ntver=0x0602`.

Also, adding temporarily `-w24013` to `WARNFLAGS` in `win32/Makefile.sub`, the following warning is received.

```
compiling win32/win32.c
win32.c
win32/win32.c(4789): warning C4013: 'GetSystemTimePreciseAsFileTime' undefined; assuming extern returning int
```



-- 
https://bugs.ruby-lang.org/
 ______________________________________________
 ruby-core mailing list -- ruby-core@ml.ruby-lang.org
 To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org
 ruby-core info -- https://ml.ruby-lang.org/mailman3/lists/ruby-core.ml.ruby-lang.org/

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [ruby-core:120066] [Ruby master Bug#20904] 3.4.0-preview2: Building miniruby.exe fails for mswin32
  2024-11-22  3:24 [ruby-core:119988] [Ruby master Bug#20904] 3.4.0-preview2: Building miniruby.exe fails for mswin32 jun66j5 (Jun Omae) via ruby-core
                   ` (2 preceding siblings ...)
  2024-11-30  1:19 ` [ruby-core:120065] " nobu (Nobuyoshi Nakada) via ruby-core
@ 2024-11-30  1:29 ` nobu (Nobuyoshi Nakada) via ruby-core
  2024-12-02 19:42 ` [ruby-core:120077] " kddnewton (Kevin Newton) via ruby-core
                   ` (5 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: nobu (Nobuyoshi Nakada) via ruby-core @ 2024-11-30  1:29 UTC (permalink / raw)
  To: ruby-core; +Cc: nobu (Nobuyoshi Nakada)

Issue #20904 has been updated by nobu (Nobuyoshi Nakada).


`_finitef` is state as x64 and ARM/ARM64 only, in https://learn.microsoft.com/en-us/cpp/c-runtime-library/reference/finite-finitef?view=msvc-170#syntax
```C
int _finitef(
   float x
); /* x64 and ARM/ARM64 only */
```

----------------------------------------
Bug #20904: 3.4.0-preview2: Building miniruby.exe fails for mswin32
https://bugs.ruby-lang.org/issues/20904#change-110806

* Author: jun66j5 (Jun Omae)
* Status: Feedback
* Backport: 3.1: DONTNEED, 3.2: DONTNEED, 3.3: DONTNEED
----------------------------------------
I tried to build 3.4.0-preview2 with MSVC x86, however linking miniruby.exe failed with the following eror:

```
linking miniruby.exe
   Creating library miniruby.lib and object miniruby.exp
win32.obj : error LNK2019: unresolved external symbol _GetSystemTimePreciseAsFileTime referenced in function _clock_gettime
miniruby.exe : fatal error LNK1120: 1 unresolved externals
```

It doesn't fail with MSVC x64.

Investigating it, Windows 8 is required after #20563 but `NTVER` is still `0x0600` in `win32/Makefile.sub`. I think it should be `0x0602`. Workaround is to invoke `win32\configure.bat` with `--with-ntver=0x0602`.

Also, adding temporarily `-w24013` to `WARNFLAGS` in `win32/Makefile.sub`, the following warning is received.

```
compiling win32/win32.c
win32.c
win32/win32.c(4789): warning C4013: 'GetSystemTimePreciseAsFileTime' undefined; assuming extern returning int
```



-- 
https://bugs.ruby-lang.org/
 ______________________________________________
 ruby-core mailing list -- ruby-core@ml.ruby-lang.org
 To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org
 ruby-core info -- https://ml.ruby-lang.org/mailman3/lists/ruby-core.ml.ruby-lang.org/

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [ruby-core:120077] [Ruby master Bug#20904] 3.4.0-preview2: Building miniruby.exe fails for mswin32
  2024-11-22  3:24 [ruby-core:119988] [Ruby master Bug#20904] 3.4.0-preview2: Building miniruby.exe fails for mswin32 jun66j5 (Jun Omae) via ruby-core
                   ` (3 preceding siblings ...)
  2024-11-30  1:29 ` [ruby-core:120066] " nobu (Nobuyoshi Nakada) via ruby-core
@ 2024-12-02 19:42 ` kddnewton (Kevin Newton) via ruby-core
  2024-12-03  1:10 ` [ruby-core:120084] " nobu (Nobuyoshi Nakada) via ruby-core
                   ` (4 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: kddnewton (Kevin Newton) via ruby-core @ 2024-12-02 19:42 UTC (permalink / raw)
  To: ruby-core; +Cc: kddnewton (Kevin Newton)

Issue #20904 has been updated by kddnewton (Kevin Newton).


The Prism portion should be fixed by https://github.com/ruby/prism/pull/3270.

----------------------------------------
Bug #20904: 3.4.0-preview2: Building miniruby.exe fails for mswin32
https://bugs.ruby-lang.org/issues/20904#change-110820

* Author: jun66j5 (Jun Omae)
* Status: Open
* Backport: 3.1: DONTNEED, 3.2: DONTNEED, 3.3: DONTNEED
----------------------------------------
I tried to build 3.4.0-preview2 with MSVC x86, however linking miniruby.exe failed with the following eror:

```
linking miniruby.exe
   Creating library miniruby.lib and object miniruby.exp
win32.obj : error LNK2019: unresolved external symbol _GetSystemTimePreciseAsFileTime referenced in function _clock_gettime
miniruby.exe : fatal error LNK1120: 1 unresolved externals
```

It doesn't fail with MSVC x64.

Investigating it, Windows 8 is required after #20563 but `NTVER` is still `0x0600` in `win32/Makefile.sub`. I think it should be `0x0602`. Workaround is to invoke `win32\configure.bat` with `--with-ntver=0x0602`.

Also, adding temporarily `-w24013` to `WARNFLAGS` in `win32/Makefile.sub`, the following warning is received.

```
compiling win32/win32.c
win32.c
win32/win32.c(4789): warning C4013: 'GetSystemTimePreciseAsFileTime' undefined; assuming extern returning int
```



-- 
https://bugs.ruby-lang.org/
 ______________________________________________
 ruby-core mailing list -- ruby-core@ml.ruby-lang.org
 To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org
 ruby-core info -- https://ml.ruby-lang.org/mailman3/lists/ruby-core.ml.ruby-lang.org/

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [ruby-core:120084] [Ruby master Bug#20904] 3.4.0-preview2: Building miniruby.exe fails for mswin32
  2024-11-22  3:24 [ruby-core:119988] [Ruby master Bug#20904] 3.4.0-preview2: Building miniruby.exe fails for mswin32 jun66j5 (Jun Omae) via ruby-core
                   ` (4 preceding siblings ...)
  2024-12-02 19:42 ` [ruby-core:120077] " kddnewton (Kevin Newton) via ruby-core
@ 2024-12-03  1:10 ` nobu (Nobuyoshi Nakada) via ruby-core
  2024-12-05 14:38 ` [ruby-core:120112] " jun66j5 (Jun Omae) via ruby-core
                   ` (3 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: nobu (Nobuyoshi Nakada) via ruby-core @ 2024-12-03  1:10 UTC (permalink / raw)
  To: ruby-core; +Cc: nobu (Nobuyoshi Nakada)

Issue #20904 has been updated by nobu (Nobuyoshi Nakada).


kddnewton (Kevin Newton) wrote in #note-7:
> The Prism portion should be fixed by https://github.com/ruby/prism/pull/3270.

Does Prism support older than VS 2015 that is the minimum version for ruby 3.4?
VS 2015 at least supports the generic `isinf` macro:
https://learn.microsoft.com/en-us/cpp/c-runtime-library/reference/isinf?view=msvc-140

----------------------------------------
Bug #20904: 3.4.0-preview2: Building miniruby.exe fails for mswin32
https://bugs.ruby-lang.org/issues/20904#change-110829

* Author: jun66j5 (Jun Omae)
* Status: Open
* Backport: 3.1: DONTNEED, 3.2: DONTNEED, 3.3: DONTNEED
----------------------------------------
I tried to build 3.4.0-preview2 with MSVC x86, however linking miniruby.exe failed with the following eror:

```
linking miniruby.exe
   Creating library miniruby.lib and object miniruby.exp
win32.obj : error LNK2019: unresolved external symbol _GetSystemTimePreciseAsFileTime referenced in function _clock_gettime
miniruby.exe : fatal error LNK1120: 1 unresolved externals
```

It doesn't fail with MSVC x64.

Investigating it, Windows 8 is required after #20563 but `NTVER` is still `0x0600` in `win32/Makefile.sub`. I think it should be `0x0602`. Workaround is to invoke `win32\configure.bat` with `--with-ntver=0x0602`.

Also, adding temporarily `-w24013` to `WARNFLAGS` in `win32/Makefile.sub`, the following warning is received.

```
compiling win32/win32.c
win32.c
win32/win32.c(4789): warning C4013: 'GetSystemTimePreciseAsFileTime' undefined; assuming extern returning int
```



-- 
https://bugs.ruby-lang.org/
 ______________________________________________
 ruby-core mailing list -- ruby-core@ml.ruby-lang.org
 To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org
 ruby-core info -- https://ml.ruby-lang.org/mailman3/lists/ruby-core.ml.ruby-lang.org/

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [ruby-core:120112] [Ruby master Bug#20904] 3.4.0-preview2: Building miniruby.exe fails for mswin32
  2024-11-22  3:24 [ruby-core:119988] [Ruby master Bug#20904] 3.4.0-preview2: Building miniruby.exe fails for mswin32 jun66j5 (Jun Omae) via ruby-core
                   ` (5 preceding siblings ...)
  2024-12-03  1:10 ` [ruby-core:120084] " nobu (Nobuyoshi Nakada) via ruby-core
@ 2024-12-05 14:38 ` jun66j5 (Jun Omae) via ruby-core
  2024-12-10 16:25 ` [ruby-core:120163] " nobu (Nobuyoshi Nakada) via ruby-core
                   ` (2 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: jun66j5 (Jun Omae) via ruby-core @ 2024-12-05 14:38 UTC (permalink / raw)
  To: ruby-core; +Cc: jun66j5 (Jun Omae)

Issue #20904 has been updated by jun66j5 (Jun Omae).


nobu (Nobuyoshi Nakada) wrote in #note-4:
> Weird.
> Can you reproduce it locally?
> If so, what is shown by `nmake process.i && findstr "GetSystemTime" process.i`?

Yes. Reproduced locally.

```
C:\usr\src\x86\ruby-3.4.0-preview2>nmake process.i

Microsoft (R) Program Maintenance Utility Version 14.42.34433.0
Copyright (C) Microsoft Corporation.  All rights reserved.

Could Not Find C:\usr\src\x86\ruby-3.4.0-preview2\baseruby.mk
preprocessing process.c
process.c

C:\usr\src\x86\ruby-3.4.0-preview2>findstr "GetSystemTime" process.i
GetSystemTimes(
GetSystemTime(
GetSystemTimeAsFileTime(
GetSystemTimeAdjustment(
GetSystemTimeAdjustmentPrecise(
timeGetSystemTime(
```

----------------------------------------
Bug #20904: 3.4.0-preview2: Building miniruby.exe fails for mswin32
https://bugs.ruby-lang.org/issues/20904#change-110860

* Author: jun66j5 (Jun Omae)
* Status: Open
* Backport: 3.1: DONTNEED, 3.2: DONTNEED, 3.3: DONTNEED
----------------------------------------
I tried to build 3.4.0-preview2 with MSVC x86, however linking miniruby.exe failed with the following eror:

```
linking miniruby.exe
   Creating library miniruby.lib and object miniruby.exp
win32.obj : error LNK2019: unresolved external symbol _GetSystemTimePreciseAsFileTime referenced in function _clock_gettime
miniruby.exe : fatal error LNK1120: 1 unresolved externals
```

It doesn't fail with MSVC x64.

Investigating it, Windows 8 is required after #20563 but `NTVER` is still `0x0600` in `win32/Makefile.sub`. I think it should be `0x0602`. Workaround is to invoke `win32\configure.bat` with `--with-ntver=0x0602`.

Also, adding temporarily `-w24013` to `WARNFLAGS` in `win32/Makefile.sub`, the following warning is received.

```
compiling win32/win32.c
win32.c
win32/win32.c(4789): warning C4013: 'GetSystemTimePreciseAsFileTime' undefined; assuming extern returning int
```



-- 
https://bugs.ruby-lang.org/
 ______________________________________________
 ruby-core mailing list -- ruby-core@ml.ruby-lang.org
 To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org
 ruby-core info -- https://ml.ruby-lang.org/mailman3/lists/ruby-core.ml.ruby-lang.org/

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [ruby-core:120163] [Ruby master Bug#20904] 3.4.0-preview2: Building miniruby.exe fails for mswin32
  2024-11-22  3:24 [ruby-core:119988] [Ruby master Bug#20904] 3.4.0-preview2: Building miniruby.exe fails for mswin32 jun66j5 (Jun Omae) via ruby-core
                   ` (6 preceding siblings ...)
  2024-12-05 14:38 ` [ruby-core:120112] " jun66j5 (Jun Omae) via ruby-core
@ 2024-12-10 16:25 ` nobu (Nobuyoshi Nakada) via ruby-core
  2024-12-10 23:10 ` [ruby-core:120169] " jun66j5 (Jun Omae) via ruby-core
  2024-12-11  1:58 ` [ruby-core:120171] " nobu (Nobuyoshi Nakada) via ruby-core
  9 siblings, 0 replies; 11+ messages in thread
From: nobu (Nobuyoshi Nakada) via ruby-core @ 2024-12-10 16:25 UTC (permalink / raw)
  To: ruby-core; +Cc: nobu (Nobuyoshi Nakada)

Issue #20904 has been updated by nobu (Nobuyoshi Nakada).


jun66j5 (Jun Omae) wrote in #note-9:
> nobu (Nobuyoshi Nakada) wrote in #note-4:
> > Weird.
> > Can you reproduce it locally?
> > If so, what is shown by `nmake process.i && findstr "GetSystemTime" process.i`?
> 
> Yes. Reproduced locally.

Sorry, I mistook the file name.
Try `win32/win32.i` instead of `process.i`.

----------------------------------------
Bug #20904: 3.4.0-preview2: Building miniruby.exe fails for mswin32
https://bugs.ruby-lang.org/issues/20904#change-110921

* Author: jun66j5 (Jun Omae)
* Status: Open
* Backport: 3.1: DONTNEED, 3.2: DONTNEED, 3.3: DONTNEED
----------------------------------------
I tried to build 3.4.0-preview2 with MSVC x86, however linking miniruby.exe failed with the following eror:

```
linking miniruby.exe
   Creating library miniruby.lib and object miniruby.exp
win32.obj : error LNK2019: unresolved external symbol _GetSystemTimePreciseAsFileTime referenced in function _clock_gettime
miniruby.exe : fatal error LNK1120: 1 unresolved externals
```

It doesn't fail with MSVC x64.

Investigating it, Windows 8 is required after #20563 but `NTVER` is still `0x0600` in `win32/Makefile.sub`. I think it should be `0x0602`. Workaround is to invoke `win32\configure.bat` with `--with-ntver=0x0602`.

Also, adding temporarily `-w24013` to `WARNFLAGS` in `win32/Makefile.sub`, the following warning is received.

```
compiling win32/win32.c
win32.c
win32/win32.c(4789): warning C4013: 'GetSystemTimePreciseAsFileTime' undefined; assuming extern returning int
```



-- 
https://bugs.ruby-lang.org/
 ______________________________________________
 ruby-core mailing list -- ruby-core@ml.ruby-lang.org
 To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org
 ruby-core info -- https://ml.ruby-lang.org/mailman3/lists/ruby-core.ml.ruby-lang.org/

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [ruby-core:120169] [Ruby master Bug#20904] 3.4.0-preview2: Building miniruby.exe fails for mswin32
  2024-11-22  3:24 [ruby-core:119988] [Ruby master Bug#20904] 3.4.0-preview2: Building miniruby.exe fails for mswin32 jun66j5 (Jun Omae) via ruby-core
                   ` (7 preceding siblings ...)
  2024-12-10 16:25 ` [ruby-core:120163] " nobu (Nobuyoshi Nakada) via ruby-core
@ 2024-12-10 23:10 ` jun66j5 (Jun Omae) via ruby-core
  2024-12-11  1:58 ` [ruby-core:120171] " nobu (Nobuyoshi Nakada) via ruby-core
  9 siblings, 0 replies; 11+ messages in thread
From: jun66j5 (Jun Omae) via ruby-core @ 2024-12-10 23:10 UTC (permalink / raw)
  To: ruby-core; +Cc: jun66j5 (Jun Omae)

Issue #20904 has been updated by jun66j5 (Jun Omae).


nobu (Nobuyoshi Nakada) wrote in #note-10:
> Try `win32/win32.i` instead of `process.i`.

Okay.

```
C:\usr\src\x86\ruby-3.4.0-preview2>findstr "GetSystemTime" win32\win32.i
GetSystemTimes(
GetSystemTime(
GetSystemTimeAsFileTime(
GetSystemTimeAdjustment(
GetSystemTimeAdjustmentPrecise(
timeGetSystemTime(
    GetSystemTimePreciseAsFileTime(&ft);
            GetSystemTimePreciseAsFileTime(&ft);
        GetSystemTimePreciseAsFileTime(&atime);
```

If running `.\win32\configure.bat` with `--with-ntver=0x0602`:

```
C:\usr\src\x86\ruby-3.4.0-preview2>findstr "GetSystemTime" win32\win32.i
GetSystemTimes(
GetSystemTime(
GetSystemTimeAsFileTime(
GetSystemTimeAdjustment(
GetSystemTimeAdjustmentPrecise(
GetSystemTimePreciseAsFileTime(
timeGetSystemTime(
    GetSystemTimePreciseAsFileTime(&ft);
            GetSystemTimePreciseAsFileTime(&ft);
        GetSystemTimePreciseAsFileTime(&atime);
```

----------------------------------------
Bug #20904: 3.4.0-preview2: Building miniruby.exe fails for mswin32
https://bugs.ruby-lang.org/issues/20904#change-110927

* Author: jun66j5 (Jun Omae)
* Status: Open
* Backport: 3.1: DONTNEED, 3.2: DONTNEED, 3.3: DONTNEED
----------------------------------------
I tried to build 3.4.0-preview2 with MSVC x86, however linking miniruby.exe failed with the following eror:

```
linking miniruby.exe
   Creating library miniruby.lib and object miniruby.exp
win32.obj : error LNK2019: unresolved external symbol _GetSystemTimePreciseAsFileTime referenced in function _clock_gettime
miniruby.exe : fatal error LNK1120: 1 unresolved externals
```

It doesn't fail with MSVC x64.

Investigating it, Windows 8 is required after #20563 but `NTVER` is still `0x0600` in `win32/Makefile.sub`. I think it should be `0x0602`. Workaround is to invoke `win32\configure.bat` with `--with-ntver=0x0602`.

Also, adding temporarily `-w24013` to `WARNFLAGS` in `win32/Makefile.sub`, the following warning is received.

```
compiling win32/win32.c
win32.c
win32/win32.c(4789): warning C4013: 'GetSystemTimePreciseAsFileTime' undefined; assuming extern returning int
```



-- 
https://bugs.ruby-lang.org/
 ______________________________________________
 ruby-core mailing list -- ruby-core@ml.ruby-lang.org
 To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org
 ruby-core info -- https://ml.ruby-lang.org/mailman3/lists/ruby-core.ml.ruby-lang.org/

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [ruby-core:120171] [Ruby master Bug#20904] 3.4.0-preview2: Building miniruby.exe fails for mswin32
  2024-11-22  3:24 [ruby-core:119988] [Ruby master Bug#20904] 3.4.0-preview2: Building miniruby.exe fails for mswin32 jun66j5 (Jun Omae) via ruby-core
                   ` (8 preceding siblings ...)
  2024-12-10 23:10 ` [ruby-core:120169] " jun66j5 (Jun Omae) via ruby-core
@ 2024-12-11  1:58 ` nobu (Nobuyoshi Nakada) via ruby-core
  9 siblings, 0 replies; 11+ messages in thread
From: nobu (Nobuyoshi Nakada) via ruby-core @ 2024-12-11  1:58 UTC (permalink / raw)
  To: ruby-core; +Cc: nobu (Nobuyoshi Nakada)

Issue #20904 has been updated by nobu (Nobuyoshi Nakada).


jun66j5 (Jun Omae) wrote in #note-11:
> nobu (Nobuyoshi Nakada) wrote in #note-10:
> > Try `win32/win32.i` instead of `process.i`.
> 
> Okay.

Thank you.
 
> If running `.\win32\configure.bat` with `--with-ntver=0x0602`:
> 
> ```
> C:\usr\src\x86\ruby-3.4.0-preview2>findstr "GetSystemTime" win32\win32.i
> GetSystemTimes(
> GetSystemTime(
> GetSystemTimeAsFileTime(
> GetSystemTimeAdjustment(
> GetSystemTimeAdjustmentPrecise(
> GetSystemTimePreciseAsFileTime(
> timeGetSystemTime(
>     GetSystemTimePreciseAsFileTime(&ft);
>             GetSystemTimePreciseAsFileTime(&ft);
>         GetSystemTimePreciseAsFileTime(&atime);
> ```

This is the expected result, and it is the default now.
It seems I misread and thought that the warning would have been issued even if that option was given.
Could you try the latest snapshot (or master branch)?


----------------------------------------
Bug #20904: 3.4.0-preview2: Building miniruby.exe fails for mswin32
https://bugs.ruby-lang.org/issues/20904#change-110930

* Author: jun66j5 (Jun Omae)
* Status: Open
* Backport: 3.1: DONTNEED, 3.2: DONTNEED, 3.3: DONTNEED
----------------------------------------
I tried to build 3.4.0-preview2 with MSVC x86, however linking miniruby.exe failed with the following eror:

```
linking miniruby.exe
   Creating library miniruby.lib and object miniruby.exp
win32.obj : error LNK2019: unresolved external symbol _GetSystemTimePreciseAsFileTime referenced in function _clock_gettime
miniruby.exe : fatal error LNK1120: 1 unresolved externals
```

It doesn't fail with MSVC x64.

Investigating it, Windows 8 is required after #20563 but `NTVER` is still `0x0600` in `win32/Makefile.sub`. I think it should be `0x0602`. Workaround is to invoke `win32\configure.bat` with `--with-ntver=0x0602`.

Also, adding temporarily `-w24013` to `WARNFLAGS` in `win32/Makefile.sub`, the following warning is received.

```
compiling win32/win32.c
win32.c
win32/win32.c(4789): warning C4013: 'GetSystemTimePreciseAsFileTime' undefined; assuming extern returning int
```



-- 
https://bugs.ruby-lang.org/
 ______________________________________________
 ruby-core mailing list -- ruby-core@ml.ruby-lang.org
 To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org
 ruby-core info -- https://ml.ruby-lang.org/mailman3/lists/ruby-core.ml.ruby-lang.org/

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2024-12-11  1:59 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-11-22  3:24 [ruby-core:119988] [Ruby master Bug#20904] 3.4.0-preview2: Building miniruby.exe fails for mswin32 jun66j5 (Jun Omae) via ruby-core
2024-11-23 11:31 ` [ruby-core:119997] " nobu (Nobuyoshi Nakada) via ruby-core
2024-11-24  8:26 ` [ruby-core:119999] " jun66j5 (Jun Omae) via ruby-core
2024-11-30  1:19 ` [ruby-core:120065] " nobu (Nobuyoshi Nakada) via ruby-core
2024-11-30  1:29 ` [ruby-core:120066] " nobu (Nobuyoshi Nakada) via ruby-core
2024-12-02 19:42 ` [ruby-core:120077] " kddnewton (Kevin Newton) via ruby-core
2024-12-03  1:10 ` [ruby-core:120084] " nobu (Nobuyoshi Nakada) via ruby-core
2024-12-05 14:38 ` [ruby-core:120112] " jun66j5 (Jun Omae) via ruby-core
2024-12-10 16:25 ` [ruby-core:120163] " nobu (Nobuyoshi Nakada) via ruby-core
2024-12-10 23:10 ` [ruby-core:120169] " jun66j5 (Jun Omae) via ruby-core
2024-12-11  1:58 ` [ruby-core:120171] " nobu (Nobuyoshi Nakada) via ruby-core

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).