#5106: objc compilation fails on 32bit OS X
---------------------------------+------------------------------------------
Reporter: igloo | Owner:
Type: bug | Status: new
Priority: normal | Milestone:
Component: Compiler | Version: 7.0.3
Keywords: | Testcase:
Blockedby: | Difficulty:
Os: Unknown/Multiple | Blocking:
Architecture: Unknown/Multiple | Failure: None/Unknown
---------------------------------+------------------------------------------
With `objc-hi.m`:
{{{
#import <Foundation/Foundation.h>
#import <stdio.h>
@interface HelloWorld : NSObject {
// no instance variables
}
// methods
- (void)sayHello;
@end
@implementation HelloWorld
- (void)sayHello
{
printf("Hello world\n");
}
@end
#import <Foundation/Foundation.h>
int main (int argc, const char * argv[]) {
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
// my stuff
HelloWorld *hw = [[HelloWorld alloc] init];
[hw autorelease];
[hw sayHello];
[pool release];
return 0;
}
}}}
compilation fails with a 32bit GHC on OS X. Here's the essence, using
`gcc` to compile:
{{{
$ /usr/bin/gcc -x objective-c -c objc-hi.m -march=i686 -m32
In file included from
/System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/MachineExceptions.h:29,
from
/System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/DriverServices.h:32,
from
/System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/CarbonCore.h:125,
from
/System/Library/Frameworks/CoreServices.framework/Frameworks/AE.framework/Headers/AE.h:20,
from
/System/Library/Frameworks/CoreServices.framework/Headers/CoreServices.h:21,
from
/System/Library/Frameworks/Foundation.framework/Headers/NSURLError.h:17,
from
/System/Library/Frameworks/Foundation.framework/Headers/Foundation.h:81,
from objc-hi.m:1:
/usr/lib/gcc/i686-apple-darwin10/4.2.1/include/xmmintrin.h:36:3: error:
#error "SSE instruction set not enabled"
In file included from
/System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/DriverServices.h:32,
from
/System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/CarbonCore.h:125,
from
/System/Library/Frameworks/CoreServices.framework/Frameworks/AE.framework/Headers/AE.h:20,
from
/System/Library/Frameworks/CoreServices.framework/Headers/CoreServices.h:21,
from
/System/Library/Frameworks/Foundation.framework/Headers/NSURLError.h:17,
from
/System/Library/Frameworks/Foundation.framework/Headers/Foundation.h:81,
from objc-hi.m:1:
/System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/MachineExceptions.h:216:
error: expected specifier-qualifier-list before '__m128'
}}}
Compilation succeeds if we use `-march=pentium4` instead, but `aclocal.m4`
says (note the comment):
{{{
i386-apple-darwin)
# By default, gcc on OS X will generate SSE
# instructions, which need things 16-byte aligned,
# but we don't 16-byte align things. Thus drop
# back to generic i686 compatibility. Trac #2983.
$2="$$2 -march=i686 -m32"
$3="$$3 -march=i686 -m32"
$4="$$4 -arch i386"
$5="$$5 -march=i686 -m32"
}}}
--
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/5106>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
_______________________________________________
Glasgow-haskell-bugs mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs