[GHC] #12497: Make runtime linker be able to find POSIX functions under their deprecated name.
#12497: Make runtime linker be able to find POSIX functions under their deprecated name. -------------------------------------+------------------------------------- Reporter: Phyx- | Owner: Type: feature | Status: new request | Priority: normal | Milestone: 8.0.2 Component: Runtime | Version: 8.0.1 System (Linker) | Keywords: newcomer | Operating System: Windows Architecture: | Type of failure: None/Unknown Unknown/Multiple | Test Case: | Blocked By: Blocking: | Related Tickets: Differential Rev(s): | Wiki Page: -------------------------------------+------------------------------------- With GHC 8.0.1 the new runtime linker stopped re-exporting posix symbols under their deprecated names and instead follows the names on MSDN. Unfortunately there seems to be far more libraries than expected using these deprecated names. (Rather, far more libraries using posix functions and it happening to work on Windows). These are all broken now, and while we're doing the right thing, for the sake of compatibility with mingw-w64's behavior and allowing all these packages to work then we should re-export these symbols. e.g. rexport `strdup` as a forward from `_strdup`. We don't have to actually re-export them. just forward them in `RtsSymbol.c`. -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/12497> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler
#12497: Make runtime linker be able to find POSIX functions under their deprecated name. -------------------------------------+------------------------------------- Reporter: Phyx- | Owner: Type: feature request | Status: new Priority: normal | Milestone: 8.0.2 Component: Runtime System | Version: 8.0.1 (Linker) | Resolution: | Keywords: newcomer 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 thomie): +1 -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/12497#comment:1> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler
#12497: Make runtime linker be able to find POSIX functions under their deprecated name. -------------------------------------+------------------------------------- Reporter: Phyx- | Owner: Phyx- Type: feature request | Status: new Priority: normal | Milestone: 8.0.2 Component: Runtime System | Version: 8.0.1 (Linker) | Resolution: | Keywords: newcomer Operating System: Windows | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: #12209 | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Changes (by Phyx-): * owner: => Phyx- * related: => #12209 -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/12497#comment:2> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler
#12497: Make runtime linker be able to find POSIX functions under their deprecated name. -------------------------------------+------------------------------------- Reporter: Phyx- | Owner: Phyx- Type: feature request | Status: patch Priority: normal | Milestone: 8.0.2 Component: Runtime System | Version: 8.0.1 (Linker) | Resolution: | Keywords: newcomer Operating System: Windows | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: #12209 | Differential Rev(s): Phab:D2478 Wiki Page: | -------------------------------------+------------------------------------- Changes (by Phyx-): * status: new => patch * differential: => Phab:D2478 -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/12497#comment:3> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler
#12497: Make runtime linker be able to find POSIX functions under their deprecated name. -------------------------------------+------------------------------------- Reporter: Phyx- | Owner: Phyx- Type: feature request | Status: patch Priority: normal | Milestone: 8.0.2 Component: Runtime System | Version: 8.0.1 (Linker) | Resolution: | Keywords: newcomer Operating System: Windows | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: #12209 | Differential Rev(s): Phab:D2500 Wiki Page: | -------------------------------------+------------------------------------- Changes (by thomie): * differential: Phab:D2478 => Phab:D2500 -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/12497#comment:4> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler
#12497: Make runtime linker be able to find POSIX functions under their deprecated name. -------------------------------------+------------------------------------- Reporter: Phyx- | Owner: Phyx- Type: feature request | Status: patch Priority: normal | Milestone: 8.0.2 Component: Runtime System | Version: 8.0.1 (Linker) | Resolution: | Keywords: newcomer Operating System: Windows | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: #12209 | Differential Rev(s): Phab:D2500 Wiki Page: | -------------------------------------+------------------------------------- Comment (by Tamar Christina <tamar@…>): In [changeset:"e5ecb2010514405ac1b9b1285a8a65c00a5fd4e0/ghc" e5ecb20/ghc]: {{{ #!CommitTicketReference repository="ghc" revision="e5ecb2010514405ac1b9b1285a8a65c00a5fd4e0" Added support for deprecated POSIX functions on Windows. Summary: With the introduction of 8.0.1 We've stopped supporting in GHCi the use of POSIX functions under their deprecated names on Windows. This to be compatible with object and libraries from the most popular compilers on the platform (Microsoft and Intel compilers). However this brings a confusing disparity between the compiled and interpreted behavior since MingW-W64 does support the deprecated names. Also It seems clear that package writers won't update their packages to properly support Windows. As such I have added redirects in the RTS for the deprecated functions as listed on https://msdn.microsoft.com/en-us/library/ms235384.aspx. This won't export the functions (as in, they won't be in the symbol table of compiled code for the RTS.) but we inject them into the symbol table of the dynamic linker at startup. Test Plan: ./validate and make test TEST="ffi017 ffi021" Reviewers: thomie, simonmar, RyanGlScott, bgamari, austin, hvr, erikd Reviewed By: simonmar, bgamari Subscribers: RyanGlScott, #ghc_windows_task_force Differential Revision: https://phabricator.haskell.org/D2500 GHC Trac Issues: #12209, #12497, #12496 }}} -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/12497#comment:5> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler
#12497: Make runtime linker be able to find POSIX functions under their deprecated name. -------------------------------------+------------------------------------- Reporter: Phyx- | Owner: Phyx- Type: feature request | Status: merge Priority: normal | Milestone: 8.0.2 Component: Runtime System | Version: 8.0.1 (Linker) | Resolution: | Keywords: newcomer Operating System: Windows | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: #12209 | Differential Rev(s): Phab:D2500 Wiki Page: | -------------------------------------+------------------------------------- Changes (by Phyx-): * status: patch => merge -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/12497#comment:6> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler
#12497: Make runtime linker be able to find POSIX functions under their deprecated name. -------------------------------------+------------------------------------- Reporter: Phyx- | Owner: Phyx- Type: feature request | Status: closed Priority: normal | Milestone: 8.0.2 Component: Runtime System | Version: 8.0.1 (Linker) | Resolution: fixed | Keywords: newcomer Operating System: Windows | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: #12209 | Differential Rev(s): Phab:D2500 Wiki Page: | -------------------------------------+------------------------------------- Changes (by bgamari): * status: merge => closed * resolution: => fixed Comment: Merged to `ghc-8.0` as 714779c7d175203b95e6442f01a4164bedf52e90. -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/12497#comment:7> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler
participants (1)
-
GHC