
#16387: Duplicate vsnwprintf symbol on Windows -------------------------------------+------------------------------------- Reporter: bgamari | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 8.6.3 Keywords: | Operating System: Unknown/Multiple Architecture: | Type of failure: None/Unknown Unknown/Multiple | Test Case: | Blocked By: Blocking: | Related Tickets: Differential Rev(s): | Wiki Page: -------------------------------------+------------------------------------- Leading to failure of `T5836`: ``` Stderr ( T5836 ): GHC runtime linker: fatal error: I found a duplicate definition for symbol __mingw_vsnwprintf whilst processing object file C:\GitLabRunner\builds\8fc0e283\0\ghc\ghc\inplace\mingw\x86_64-w64-mingw32\lib\libmingwex.a The symbol was previously defined in (GHCi built-in symbols) This could be caused by: * Loading two different object files which export the same symbol * Specifying the same object file twice on the GHCi command line * An incorrect `package.conf' entry, causing some object to be loaded twice. ghc-stage2.exe: panic! (the 'impossible' happened) (GHC version 8.9.20190303 for x86_64-unknown-mingw32): loadArchive "C:\\GitLabRunner\\builds\\8fc0e283\\0\\ghc\\ghc\\inplace\\mingw\\x86_64-w64-mingw32\\lib\\libmingwex.a": failed Please report this as a GHC bug: https://www.haskell.org/ghc/reportabug *** unexpected failure for T5836(ghci) ``` -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/16387 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#16387: Duplicate vsnwprintf symbol on Windows ---------------------------------+---------------------------------------- Reporter: bgamari | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 8.6.3 Resolution: | Keywords: Operating System: Windows | Architecture: Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | ---------------------------------+---------------------------------------- Changes (by bgamari): * os: Unknown/Multiple => Windows Old description:
Leading to failure of `T5836`:
``` Stderr ( T5836 ): GHC runtime linker: fatal error: I found a duplicate definition for symbol __mingw_vsnwprintf whilst processing object file C:\GitLabRunner\builds\8fc0e283\0\ghc\ghc\inplace\mingw\x86_64-w64-mingw32\lib\libmingwex.a The symbol was previously defined in (GHCi built-in symbols) This could be caused by: * Loading two different object files which export the same symbol * Specifying the same object file twice on the GHCi command line * An incorrect `package.conf' entry, causing some object to be loaded twice. ghc-stage2.exe: panic! (the 'impossible' happened) (GHC version 8.9.20190303 for x86_64-unknown-mingw32): loadArchive "C:\\GitLabRunner\\builds\\8fc0e283\\0\\ghc\\ghc\\inplace\\mingw\\x86_64-w64-mingw32\\lib\\libmingwex.a": failed
Please report this as a GHC bug: https://www.haskell.org/ghc/reportabug *** unexpected failure for T5836(ghci) ```
New description: Leading to failure of `T5836`: {{{ Stderr ( T5836 ): GHC runtime linker: fatal error: I found a duplicate definition for symbol __mingw_vsnwprintf whilst processing object file C:\GitLabRunner\builds\8fc0e283\0\ghc\ghc\inplace\mingw\x86_64-w64-mingw32\lib\libmingwex.a The symbol was previously defined in (GHCi built-in symbols) This could be caused by: * Loading two different object files which export the same symbol * Specifying the same object file twice on the GHCi command line * An incorrect `package.conf' entry, causing some object to be loaded twice. ghc-stage2.exe: panic! (the 'impossible' happened) (GHC version 8.9.20190303 for x86_64-unknown-mingw32): loadArchive "C:\\GitLabRunner\\builds\\8fc0e283\\0\\ghc\\ghc\\inplace\\mingw\\x86_64-w64-mingw32\\lib\\libmingwex.a": failed Please report this as a GHC bug: https://www.haskell.org/ghc/reportabug *** unexpected failure for T5836(ghci) }}} -- Comment: It seems there is some funniness around `printf` and MinGW. See `Note [Symbols for MinGW's printf]`. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/16387#comment:1 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#16387: Duplicate vsnwprintf symbol on Windows ---------------------------------+---------------------------------------- Reporter: bgamari | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 8.6.3 Resolution: | Keywords: Operating System: Windows | Architecture: Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | ---------------------------------+---------------------------------------- Comment (by bgamari): Marking as broken for now. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/16387#comment:2 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#16387: Duplicate vsnwprintf symbol on Windows ---------------------------------+---------------------------------------- Reporter: bgamari | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 8.6.3 Resolution: | Keywords: broken-test Operating System: Windows | Architecture: Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | ---------------------------------+---------------------------------------- Changes (by bgamari): * keywords: => broken-test -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/16387#comment:3 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#16387: Duplicate vsnwprintf symbol on Windows ---------------------------------+---------------------------------------- Reporter: bgamari | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 8.6.3 Resolution: | Keywords: broken-test Operating System: Windows | Architecture: Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | ---------------------------------+---------------------------------------- Comment (by bgamari): `ClosedFam1TH` also fails due to this in the `ext-interp` way. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/16387#comment:4 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#16387: Duplicate vsnwprintf symbol on Windows ---------------------------------+---------------------------------------- Reporter: bgamari | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 8.6.3 Resolution: | Keywords: broken-test Operating System: Windows | Architecture: Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | ---------------------------------+---------------------------------------- Comment (by bgamari): `T5452` in `extt-interp` also fails in this way. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/16387#comment:5 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#16387: Duplicate vsnwprintf symbol on Windows ---------------------------------+---------------------------------------- Reporter: bgamari | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 8.6.3 Resolution: | Keywords: broken-test Operating System: Windows | Architecture: Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | ---------------------------------+---------------------------------------- Comment (by Phyx-): I'll need to double check but I believe we always `libmingwex` now? If so we can just remove the built-in symbol or mark it weak. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/16387#comment:6 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#16387: Duplicate vsnwprintf symbol on Windows ---------------------------------+---------------------------------------- Reporter: bgamari | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 8.6.3 Resolution: | Keywords: broken-test Operating System: Windows | Architecture: Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | ---------------------------------+---------------------------------------- Comment (by bgamari): `T15550` in `ext-interp` as well. Unfortunately I have been unable to reproduce this on my local Windows machine, even after updating msys. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/16387#comment:7 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#16387: Duplicate vsnwprintf symbol on Windows ---------------------------------+---------------------------------------- Reporter: bgamari | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 8.6.3 Resolution: | Keywords: broken-test Operating System: Windows | Architecture: Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | ---------------------------------+---------------------------------------- Comment (by bgamari): Replying to [comment:6 Phyx-]:
I'll need to double check but I believe we always `libmingwex` now? If so we can just remove the built-in symbol or mark it weak.
Good timing; I just sent you an email about this. :) Indeed it does seem that we link against `mingwex` whenever it is available. However, looking through the history I don't believe this has changed in the recent past. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/16387#comment:8 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#16387: Duplicate vsnwprintf symbol on Windows ---------------------------------+---------------------------------------- Reporter: bgamari | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 8.6.3 Resolution: | Keywords: broken-test Operating System: Windows | Architecture: Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | ---------------------------------+---------------------------------------- Comment (by bgamari): Ahh, I might be wrong, actually: See 90538d86af579595987826cd893828d6f379f35a. The RTS has always imported `mingwex` when available (although it looks like the `configure` test may have been buggy at one point). However, as of the above commit we now always link `base` against `mingwex`. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/16387#comment:9 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#16387: Duplicate vsnwprintf symbol on Windows ---------------------------------+---------------------------------------- Reporter: bgamari | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 8.6.3 Resolution: | Keywords: broken-test Operating System: Windows | Architecture: Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | ---------------------------------+---------------------------------------- Comment (by bgamari): Huh, this is extremely perplexing: `T5836` doesn't fail reliably due to this. I cannot imagine how this sort of issue could be non-deterministic. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/16387#comment:10 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#16387: Duplicate vsnwprintf symbol on Windows ---------------------------------+---------------------------------------- Reporter: bgamari | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 8.6.3 Resolution: | Keywords: broken-test Operating System: Windows | Architecture: Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | ---------------------------------+---------------------------------------- Comment (by Phyx-): Yeah, so what confuses me too is that it's also in the rts's package config. I think the linker log with - Dl would shine a light on it. A dump of one that fails and one that doesn't should show what changed. It should indeed be quite deterministic. What it could be is that it's not print itself causing the inclusion but that there is another symbol in that object file that is sometimes required and other times not. For instance one invocation may be lasting longer than the other, different order in GC? Or in one case a finalizer being called but not the other. But the log would show what demanded the object file be loaded. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/16387#comment:11 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#16387: Duplicate vsnwprintf symbol on Windows ---------------------------------+---------------------------------------- Reporter: bgamari | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 8.6.3 Resolution: | Keywords: broken-test Operating System: Windows | Architecture: Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | ---------------------------------+---------------------------------------- Comment (by Phyx-): Ah right. The one in the rts is never used by the runtime linker as it doesn't know its own dependencies. I.e. We never load librts inside ghci. So makes sense why that one isn't getting picked up. I remember adding because of a failing test, but I don't remember which one. But grepping through my local test archives that doesn't seem to ever fail for me. Could you compile that test with a debug rts and dump the linker log? I can try to figure it out then. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/16387#comment:12 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#16387: Duplicate vsnwprintf symbol on Windows ---------------------------------+---------------------------------------- Reporter: bgamari | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 8.6.3 Resolution: | Keywords: broken-test Operating System: Windows | Architecture: Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | ---------------------------------+---------------------------------------- Comment (by Phyx-): Or if they are reproducible only on the build bots I will put up a Mr to do this. I assume I can get artifacts out of the build? -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/16387#comment:13 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#16387: Duplicate vsnwprintf symbol on Windows ---------------------------------+---------------------------------------- Reporter: bgamari | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 8.6.3 Resolution: | Keywords: broken-test Operating System: Windows | Architecture: Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | ---------------------------------+---------------------------------------- Comment (by bgamari): So far I have only seen this on CI.tgit -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/16387#comment:14 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#16387: Duplicate vsnwprintf symbol on Windows
---------------------------------+----------------------------------------
Reporter: bgamari | Owner: (none)
Type: bug | Status: new
Priority: normal | Milestone:
Component: Compiler | Version: 8.6.3
Resolution: | Keywords: broken-test
Operating System: Windows | Architecture: Unknown/Multiple
Type of failure: None/Unknown | Test Case:
Blocked By: | Blocking:
Related Tickets: | Differential Rev(s):
Wiki Page: |
---------------------------------+----------------------------------------
Comment (by Marge Bot

#16387: Duplicate vsnwprintf symbol on Windows
---------------------------------+----------------------------------------
Reporter: bgamari | Owner: (none)
Type: bug | Status: new
Priority: normal | Milestone:
Component: Compiler | Version: 8.6.3
Resolution: | Keywords: broken-test
Operating System: Windows | Architecture: Unknown/Multiple
Type of failure: None/Unknown | Test Case:
Blocked By: | Blocking:
Related Tickets: | Differential Rev(s):
Wiki Page: |
---------------------------------+----------------------------------------
Comment (by Marge Bot

#16387: Duplicate vsnwprintf symbol on Windows
---------------------------------+----------------------------------------
Reporter: bgamari | Owner: (none)
Type: bug | Status: new
Priority: normal | Milestone:
Component: Compiler | Version: 8.6.3
Resolution: | Keywords: broken-test
Operating System: Windows | Architecture: Unknown/Multiple
Type of failure: None/Unknown | Test Case:
Blocked By: | Blocking:
Related Tickets: | Differential Rev(s):
Wiki Page: |
---------------------------------+----------------------------------------
Comment (by Marge Bot
participants (1)
-
GHC