#7329: ghc-7.6.1 win64: internal error: R_X86_6 4_PC32: High bits are set in
WSAGetLastError
--------------------------+-------------------------------------------------
 Reporter:  dagit         |          Owner:                  
     Type:  bug           |         Status:  new             
 Priority:  normal        |      Component:  Compiler        
  Version:  7.6.1         |       Keywords:                  
       Os:  Windows       |   Architecture:  Unknown/Multiple
  Failure:  None/Unknown  |       Testcase:                  
Blockedby:                |       Blocking:                  
  Related:                |  
--------------------------+-------------------------------------------------
 While updating cabal-dev to build against ghc-7.6 and cabal 1.16, I got
 the following error during linking:
 {{{
 [ 8 of 19] Compiling Distribution.Dev.CabalInstall (
 src\Distribution\Dev\CabalInstall.hs, dist\build\cabal-dev\cabal-dev-
 tmp\Distribution\Dev\CabalInstall.o )
 Loading package ghc-prim ... linking ... done.
 Loading package integer-gmp ... linking ... done.
 Loading package base ... linking ... done.
 Loading package array-0.4.0.1 ... linking ... done.
 Loading package deepseq-1.3.0.1 ... linking ... done.
 Loading package bytestring-0.10.0.0 ... linking ... done.
 Loading package zlib-0.5.4.0 ... linking ... done.
 Loading package containers-0.5.0.0 ... linking ... done.
 Loading package pretty-1.1.1.0 ... linking ... done.
 Loading package template-haskell ... linking ... done.
 Loading package Win32-2.3.0.0 ... linking ... done.
 Loading package filepath-1.3.0.1 ... linking ... done.
 Loading package old-locale-1.0.0.5 ... linking ... done.
 Loading package time-1.4.0.1 ... linking ... done.
 Loading package directory-1.2.0.0 ... linking ... done.
 Loading package old-time-1.1.0.1 ... linking ... done.
 Loading package tar-0.4.0.1 ... linking ... done.
 Loading package transformers-0.3.0.0 ... linking ... done.
 Loading package mtl-2.1.2 ... linking ... done.
 Loading package text-0.11.2.3 ... linking ... done.
 Loading package parsec-3.1.3 ... linking ... done.
 Loading package network-2.4.0.1 ... linking ... ghc.exe: internal error:
 R_X86_64_PC32: High bits are set in 7fef1cec8ed for WSAGetLastError
     (GHC version 7.6.1 for x86_64_unknown_mingw32)
     Please report this as a GHC bug:
 http://www.haskell.org/ghc/reportabug

 This application has requested the Runtime to terminate it in an unusual
 way.
 Please contact the application's support team for more information.
 Failed to install cabal-dev-0.9.1
 cabal.exe: Error: some packages failed to install:
 cabal-dev-0.9.1 failed during the building phase. The exception was:
 ExitFailure 255
 }}}

 At least on my system this is a reproducible crash. I'm using windows 7,
 64bit with the 64bit GHC.

 {{{
 $ ghc --version
 The Glorious Glasgow Haskell Compilation System, version 7.6.1
 $ cabal --version
 cabal-install version 1.16.0
 using version 1.16.0.1 of the Cabal library
 $ cabal-dev --version
 cabal-dev 0.9
 built with Cabal 1.10.1.0
 }}}

 The command that causes the crash here is to simply run `cabal-dev
 install` on my locally modify source for cabal-dev:
 {{{
 The top commit in my local branch is:
 commit 1a0cadb226b3a0ba65b762172e20e6d2033fc3a3
 Merge: 0c5752b 6db5e32
 Author: Jonathan Daugherty <j...@galois.com>
 Date:   Wed Jun 27 12:25:02 2012 -0700

     Merge pull request #61 from jonathanjouty/patch-1

     Minor typo in README.md
 }}}

 If you want to try reproducing this, my Git diff looks like this:
 {{{
 diff --git a/cabal-dev.cabal b/cabal-dev.cabal
 index 5c25721..684591a 100644
 --- a/cabal-dev.cabal
 +++ b/cabal-dev.cabal
 @@ -49,7 +49,7 @@ Bug-Reports:         http://github.com/creswick/cabal-
 dev/issues
  Copyright:           2010-2012 Galois, Inc.
  Category:            Development
  Build-type:          Custom
 -Cabal-version:       >=1.6
 +Cabal-version:       >=1.14
  Data-Files:
    admin/cabal-config.in,
    admin/00-index.tar
 @@ -78,6 +78,7 @@ Executable cabal-dev
    Main-is: Main.hs
    GHC-Options: -Wall
    Extensions: TemplateHaskell
 +  default-language: Haskell2010

    if flag(no-cabal-dev)
      Buildable: False
 @@ -93,7 +94,7 @@ Executable cabal-dev
      -- avoid using it:
      if impl(ghc >= 6.12)
        Build-depends:
 -        containers >= 0.3 && < 0.5
 +        containers >= 0.3

      -- Require this specific version that came with GHC 6.10 because
      -- of packaging problems with containers-0.2
 @@ -106,18 +107,18 @@ Executable cabal-dev
          containers == 0.1.0.2

      Build-depends:
 -      bytestring >= 0.9 && < 0.10,
 -      directory >= 1.0 && < 1.3,
 -      filepath >= 1.1 && < 1.4,
 -      Cabal >= 1.10.0.0 && < 1.15,
 -      HTTP >= 4000.0.9 && < 4000.3,
 -      mtl >= 1.1 && < 2.2,
 -      network >= 2.2 && < 2.4,
 -      pretty >= 1.0 && < 1.2,
 -      process >= 1.0 && < 1.2,
 -      tar >= 0.3 && < 0.4,
 -      zlib >= 0.5 && < 0.6,
 -      transformers >= 0.2 && < 0.4,
 +      bytestring >= 0.9,
 +      directory >= 1.0,
 +      filepath >= 1.1,
 +      Cabal >= 1.10.0.0,
 +      HTTP >= 4000.0.9,
 +      mtl >= 1.1,
 +      network >= 2.2,
 +      pretty >= 1.0,
 +      process >= 1.0,
 +      tar >= 0.3,
 +      zlib >= 0.5,
 +      transformers >= 0.2,

        -- Template haskell is special: the compiler will die if a
        -- version other than the one that is shipped with the compiler
 @@ -126,7 +127,7 @@ Executable cabal-dev
        template-haskell

    if os(windows)
 -     build-depends: Win32 >= 2.1  && < 2.3
 +     build-depends: Win32 >= 2.1

    Build-tools:
      cabal >= 0.8.2
 @@ -154,15 +155,17 @@ Executable ghc-pkg-6_8-compat
    Main-is: GhcPkgCompat.hs
    Build-Depends:
      base < 5,
 -    Cabal >=1.2 && < 1.15
 +    Cabal >=1.2

    GHC-Options: -Wall
    HS-Source-Dirs: src
 +  default-language: Haskell2010

  Executable cabal-dev-test
    Main-is: RunTests.hs
    GHC-Options: -Wall
    HS-Source-Dirs: src, test
 +  default-language: Haskell2010
    if flag(no-cabal-dev) || !flag(build-tests)
      Buildable: False
    else
 @@ -174,17 +177,18 @@ Executable cabal-dev-test
          base >= 3 && < 4

      Build-depends:
 -      MonadRandom >= 0.1 && < 0.2,
 -      random >= 1 && < 1.1,
 -      test-framework >= 0.3 && < 0.6,
 +      MonadRandom >= 0.1,
 +      random >= 1,
 +      test-framework >= 0.3,
        test-framework-hunit >= 0.2,
 -      HUnit >= 1.2 && <2
 +      HUnit >= 1.2

    if os(windows)
 -     build-depends: Win32 >= 2.1  && < 2.3
 +     build-depends: Win32 >= 2.1


  Executable fake-ghc-cabal-dev
 +  default-language: Haskell2010
    HS-Source-Dirs: src/
    Build-depends: base
    Main-is: FakeGhc.hs
 diff --git a/src/Distribution/Dev/RewriteCabalConfig.hs
 b/src/Distribution/Dev/RewriteCabalConfig.hs
 index d4ce0f6..e39bde4 100644
 --- a/src/Distribution/Dev/RewriteCabalConfig.hs
 +++ b/src/Distribution/Dev/RewriteCabalConfig.hs
 @@ -18,6 +18,7 @@ module Distribution.Dev.RewriteCabalConfig
      )
  where

 +import Control.Exception         ( catch, SomeException(SomeException) )
  import Control.Applicative       ( Applicative, pure, (<$>) )
  import Data.Maybe                ( fromMaybe )
  import Data.Traversable          ( traverse, Traversable )
 @@ -39,7 +40,7 @@ readConfig s = case readFields s of
  -- XXX: we should avoid this lazy IO that leaks a file handle.
  readConfigF :: FilePath -> IO (Either String [Field])
  readConfigF fn =
 -    (readConfig <$> readUTF8File fn) `catch` \e -> return $ Left $ show e
 +    (readConfig <$> readUTF8File fn) `catch` \(SomeException e) -> return
 $ Left $ show e

  readConfigF_ :: FilePath -> IO [Field]
  readConfigF_ fn = either error id <$> readConfigF fn
 }}}

-- 
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/7329>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler

_______________________________________________
Glasgow-haskell-bugs mailing list
Glasgow-haskell-bugs@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs

Reply via email to