Stop! Tickets are now managed at GitHub.

Please enter new tickets, and find and edit existing tickets there:


Ticket #77 (closed defect: invalid)

Opened 5 years ago

Last modified 5 years ago

OS X: ghc broken on Snow Leopard

Reported by: askadar@… Owned by: dons
Priority: critical Milestone:
Component: GHC Keywords:
Cc:

Description

I downloaded "haskell-platform-2009.2.0.1-beta1-i386.dmg and installed it on a OS X 10.6 Snow Leopard seed. gcc in Snow Leopard defaults to x86_64. This breaks even trivial builds with GHC since it passes either no or incompatible flags. GHC should either produce proper x86_64 assembly or pass "-arch i386" to force a 32-bit build. I'm filing this against Haskell Platform and not GHC proper since I hope that this is just a packaging issue.

An example follows.

Trivial source:

$ cat Foo.hs
main = do
     putStrLn "Foo!"

Direct build broken:

$ ghc --make Foo.hs -v3
Glasgow Haskell Compiler, Version 6.10.3, for Haskell 98, stage 2 booted by GHC version 6.10.1
Using package config file: /Library/Frameworks/GHC.framework/Versions/610/usr/lib/ghc-6.10.3/./package.conf
hiding package base-3.0.3.1 to avoid conflict with later version base-4.1.0.0
hiding package network-2.2.1 to avoid conflict with later version network-2.2.1.1
hiding package time-1.1.2.4 to avoid conflict with later version time-1.1.3
wired-in package ghc-prim mapped to ghc-prim-0.1.0.0
wired-in package integer mapped to integer-0.1.0.1
wired-in package base mapped to base-4.1.0.0
wired-in package rts mapped to rts-1.0
wired-in package haskell98 mapped to haskell98-1.0.1.0
wired-in package syb mapped to syb-0.1.0.1
wired-in package template-haskell mapped to template-haskell-2.3.0.1
wired-in package dph-seq mapped to dph-seq-0.3
wired-in package dph-par mapped to dph-par-0.3
Hsc static flags: -static
*** Chasing dependencies:
Chasing modules from: *Foo.hs
Stable obj: []
Stable BCO: []
Ready for upsweep
  [NONREC
      ModSummary {
         ms_hs_date = Fri Jul 24 11:35:52 PDT 2009
         ms_mod = main:Main,
         ms_imps = []
         ms_srcimps = []
      }]
compile: input file Foo.hs
Created temporary directory: /var/folders/p5/p5hZ-IyTHEamZkUAcT8VfU+++TM/-Tmp-//ghc15594_0
*** Checking old interface for main:Main:
[1 of 1] Compiling Main             ( Foo.hs, Foo.o )
*** Parser:
*** Renamer/typechecker:
*** Desugar:
    Result size = 10
*** Simplify:
    Result size = 8
*** Tidy Core:
    Result size = 8
*** CorePrep:
    Result size = 10
*** Stg2Stg:
*** CodeGen:
*** CodeOutput:
*** Assembler:
gcc -I. -c /var/folders/p5/p5hZ-IyTHEamZkUAcT8VfU+++TM/-Tmp-//ghc15594_0/ghc15594_0.s -o Foo.o

/var/folders/p5/p5hZ-IyTHEamZkUAcT8VfU+++TM/-Tmp-/ghc15594_0/ghc15594_0.s:36:0:
    suffix or operands invalid for `push'

/var/folders/p5/p5hZ-IyTHEamZkUAcT8VfU+++TM/-Tmp-/ghc15594_0/ghc15594_0.s:83:0:
    suffix or operands invalid for `push'

/var/folders/p5/p5hZ-IyTHEamZkUAcT8VfU+++TM/-Tmp-/ghc15594_0/ghc15594_0.s:130:0:
    suffix or operands invalid for `push'

/var/folders/p5/p5hZ-IyTHEamZkUAcT8VfU+++TM/-Tmp-/ghc15594_0/ghc15594_0.s:156:0:
    32-bit absolute addressing is not supported for x86-64

/var/folders/p5/p5hZ-IyTHEamZkUAcT8VfU+++TM/-Tmp-/ghc15594_0/ghc15594_0.s:156:0:
    cannot do signed 4 byte relocation

/var/folders/p5/p5hZ-IyTHEamZkUAcT8VfU+++TM/-Tmp-/ghc15594_0/ghc15594_0.s:159:0:
    32-bit absolute addressing is not supported for x86-64

/var/folders/p5/p5hZ-IyTHEamZkUAcT8VfU+++TM/-Tmp-/ghc15594_0/ghc15594_0.s:159:0:
    cannot do signed 4 byte relocation
*** Deleting temp files:
Deleting: /var/folders/p5/p5hZ-IyTHEamZkUAcT8VfU+++TM/-Tmp-//ghc15594_0/ghc15594_0.s
*** Deleting temp dirs:
Deleting: /var/folders/p5/p5hZ-IyTHEamZkUAcT8VfU+++TM/-Tmp-//ghc15594_0

Via-C build broken:

$ ghc --make Foo.hs -v3 -fvia-c
Glasgow Haskell Compiler, Version 6.10.3, for Haskell 98, stage 2 booted by GHC version 6.10.1
Using package config file: /Library/Frameworks/GHC.framework/Versions/610/usr/lib/ghc-6.10.3/./package.conf
hiding package base-3.0.3.1 to avoid conflict with later version base-4.1.0.0
hiding package network-2.2.1 to avoid conflict with later version network-2.2.1.1
hiding package time-1.1.2.4 to avoid conflict with later version time-1.1.3
wired-in package ghc-prim mapped to ghc-prim-0.1.0.0
wired-in package integer mapped to integer-0.1.0.1
wired-in package base mapped to base-4.1.0.0
wired-in package rts mapped to rts-1.0
wired-in package haskell98 mapped to haskell98-1.0.1.0
wired-in package syb mapped to syb-0.1.0.1
wired-in package template-haskell mapped to template-haskell-2.3.0.1
wired-in package dph-seq mapped to dph-seq-0.3
wired-in package dph-par mapped to dph-par-0.3
Hsc static flags: -static
*** Chasing dependencies:
Chasing modules from: *Foo.hs
Stable obj: []
Stable BCO: []
Ready for upsweep
  [NONREC
      ModSummary {
         ms_hs_date = Fri Jul 24 11:35:52 PDT 2009
         ms_mod = main:Main,
         ms_imps = []
         ms_srcimps = []
      }]
compile: input file Foo.hs
Created temporary directory: /var/folders/p5/p5hZ-IyTHEamZkUAcT8VfU+++TM/-Tmp-//ghc15601_0
*** Checking old interface for main:Main:
[1 of 1] Compiling Main             ( Foo.hs, Foo.o )
*** Parser:
*** Renamer/typechecker:
*** Desugar:
    Result size = 10
*** Simplify:
    Result size = 8
*** Tidy Core:
    Result size = 8
*** CorePrep:
    Result size = 10
*** Stg2Stg:
*** CodeGen:
*** CodeOutput:
*** C Compiler:
gcc -x c /var/folders/p5/p5hZ-IyTHEamZkUAcT8VfU+++TM/-Tmp-//ghc15601_0/ghc15601_0.hc -o /var/folders/p5/p5hZ-IyTHEamZkUAcT8VfU+++TM/-Tmp-//ghc15601_0/ghc15601_0.raw_s -DDONT_WANT_WIN32_DLL_SUPPORT -mdynamic-no-pic -march=i686 -fno-defer-pop -fomit-frame-pointer -fno-builtin -DSTOLEN_X86_REGS=4 -fwrapv -mno-omit-leaf-frame-pointer -fno-unit-at-a-time -ffloat-store -fno-strict-aliasing -v -S -Wimplicit -O -D__GLASGOW_HASKELL__=610 -DTABLES_NEXT_TO_CODE -I . -I /Library/Frameworks/GHC.framework/Versions/610/usr/lib/ghc-6.10.3/base-4.1.0.0/include -I /Library/Frameworks/GHC.framework/Versions/610/usr/lib/ghc-6.10.3/include -I PAPI_INCLUDE_DIR
Using built-in specs.
Target: i686-apple-darwin10
Configured with: /var/tmp/gcc/gcc-5646~6/src/configure --disable-checking --enable-werror --prefix=/usr --mandir=/share/man --enable-languages=c,objc,c++,obj-c++ --program-transform-name=/^[cg][^.-]*$/s/$/-4.2/ --with-slibdir=/usr/lib --build=i686-apple-darwin10 --with-gxx-include-dir=/include/c++/4.2.1 --program-prefix=i686-apple-darwin10- --host=x86_64-apple-darwin10 --target=i686-apple-darwin10
Thread model: posix
gcc version 4.2.1 (Apple Inc. build 5646)
 /usr/libexec/gcc/i686-apple-darwin10/4.2.1/cc1 -quiet -v -I . -I /Library/Frameworks/GHC.framework/Versions/610/usr/lib/ghc-6.10.3/base-4.1.0.0/include -I /Library/Frameworks/GHC.framework/Versions/610/usr/lib/ghc-6.10.3/include -I PAPI_INCLUDE_DIR -imultilib x86_64 -D__DYNAMIC__ -DDONT_WANT_WIN32_DLL_SUPPORT -DSTOLEN_X86_REGS=4 -D__GLASGOW_HASKELL__=610 -DTABLES_NEXT_TO_CODE /var/folders/p5/p5hZ-IyTHEamZkUAcT8VfU+++TM/-Tmp-//ghc15601_0/ghc15601_0.hc -quiet -dumpbase ghc15601_0.hc -mmacosx-version-min=10.6.0 -mdynamic-no-pic -march=i686 -mno-omit-leaf-frame-pointer -m64 -auxbase-strip /var/folders/p5/p5hZ-IyTHEamZkUAcT8VfU+++TM/-Tmp-//ghc15601_0/ghc15601_0.raw_s -O -Wimplicit -version -fno-defer-pop -fomit-frame-pointer -fno-builtin -fwrapv -fno-unit-at-a-time -ffloat-store -fno-strict-aliasing -o /var/folders/p5/p5hZ-IyTHEamZkUAcT8VfU+++TM/-Tmp-//ghc15601_0/ghc15601_0.raw_s
ignoring nonexistent directory "/usr/lib/gcc/i686-apple-darwin10/4.2.1/../../../../i686-apple-darwin10/include"
ignoring nonexistent directory "PAPI_INCLUDE_DIR"
#include "..." search starts here:
#include <...> search starts here:
 .
 /Library/Frameworks/GHC.framework/Versions/610/usr/lib/ghc-6.10.3/base-4.1.0.0/include
 /Library/Frameworks/GHC.framework/Versions/610/usr/lib/ghc-6.10.3/include
 /usr/local/include
 /usr/lib/gcc/i686-apple-darwin10/4.2.1/include
 /usr/include
 /System/Library/Frameworks (framework directory)
 /Library/Frameworks (framework directory)
End of search list.

/var/folders/p5/p5hZ-IyTHEamZkUAcT8VfU+++TM/-Tmp-/ghc15601_0/ghc15601_0.hc:1:0:
     error: CPU you selected does not support x86-64 instruction set
GNU C version 4.2.1 (Apple Inc. build 5646) (i686-apple-darwin10)
	compiled by GNU C version 4.2.1 (Apple Inc. build 5646).
GGC heuristics: --param ggc-min-expand=150 --param ggc-min-heapsize=131072
*** Deleting temp files:
Deleting: /var/folders/p5/p5hZ-IyTHEamZkUAcT8VfU+++TM/-Tmp-//ghc15601_0/ghc15601_0.raw_s /var/folders/p5/p5hZ-IyTHEamZkUAcT8VfU+++TM/-Tmp-//ghc15601_0/ghc15601_0.hc
Warning: deleting non-existent /var/folders/p5/p5hZ-IyTHEamZkUAcT8VfU+++TM/-Tmp-//ghc15601_0/ghc15601_0.raw_s
*** Deleting temp dirs:
Deleting: /var/folders/p5/p5hZ-IyTHEamZkUAcT8VfU+++TM/-Tmp-//ghc15601_0

Change History

Changed 5 years ago by gregorycollins

  • status changed from new to closed
  • resolution set to invalid

Hello,

Properly this is an issue with GHC, not with the platform. (The platform just re-uses the GHC installer...) Please file a bug there.

Thanks! --Greg

Note: See TracTickets for help on using tickets.