#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 <ben+marge-bot@…>): In [changeset:"ae382245ea65bf8824db7f4dbab5ade78e6ed9dd/ghc" ae382245/ghc]: {{{ #!CommitTicketReference repository="ghc" revision="ae382245ea65bf8824db7f4dbab5ade78e6ed9dd" rts/RtsSymbols: Drop __mingw_vsnwprintf As described in #16387, this is already defined by mingw and consequently defining it in the RTS as well leads to multiple definition errors from the RTS linker at runtime. }}} -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/16387#comment:16> 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 <ben+marge-bot@…>): In [changeset:"23b639fd1b7c558383792c48bd35f457b01b2515/ghc" 23b639f/ghc]: {{{ #!CommitTicketReference repository="ghc" revision="23b639fd1b7c558383792c48bd35f457b01b2515" testsuite: Mark T5836 as broken on Windows See #16387. }}} -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/16387#comment:15> 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 <ben+marge-bot@…>): In [changeset:"d98cb7637a305e31de5e05a1feb9f6f2339f8cc4/ghc" d98cb763/ghc]: {{{ #!CommitTicketReference repository="ghc" revision="d98cb7637a305e31de5e05a1feb9f6f2339f8cc4" testsuite: Don't mark T5836 as broken I believe removing __mingw_vsnwprintf from RtsSymbols fixed #16387. }}} -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/16387#comment:17> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler
participants (1)
-
GHC