Merge pull request #197 from lhoward/lhoward/SR-404

[SR-404]: use linker script to export protocol conformances start
diff --git a/Foundation/NSNumber.swift b/Foundation/NSNumber.swift
index f32321a..300bb77 100644
--- a/Foundation/NSNumber.swift
+++ b/Foundation/NSNumber.swift
@@ -139,13 +139,13 @@
     
     public override var hash: Int {
         get {
-            return Int(CFHash(_cfObject))
+            return Int(bitPattern: CFHash(_cfObject))
         }
     }
     
     public override func isEqual(object: AnyObject?) -> Bool {
-        if let obj = object {
-            return CFEqual(_cfObject, obj)
+        if let number = object as? NSNumber {
+            return CFEqual(_cfObject, number._cfObject)
         } else {
             return false
         }
diff --git a/build.py b/build.py
index 9ba7b7f..97e7c86 100644
--- a/build.py
+++ b/build.py
@@ -26,12 +26,12 @@
 
 # For now, we do not distinguish between public and private headers (they are all private to Foundation)
 # These are really part of CF, which should ultimately be a separate target
-foundation.ROOT_HEADERS_FOLDER_PATH = "/usr/lib/swift"
-foundation.PUBLIC_HEADERS_FOLDER_PATH = "/usr/lib/swift/CoreFoundation"
-foundation.PRIVATE_HEADERS_FOLDER_PATH = "/usr/lib/swift/CoreFoundation"
-foundation.PROJECT_HEADERS_FOLDER_PATH = "/usr/lib/swift/CoreFoundation"
+foundation.ROOT_HEADERS_FOLDER_PATH = "${PREFIX}/lib/swift"
+foundation.PUBLIC_HEADERS_FOLDER_PATH = "${PREFIX}/lib/swift/CoreFoundation"
+foundation.PRIVATE_HEADERS_FOLDER_PATH = "${PREFIX}/lib/swift/CoreFoundation"
+foundation.PROJECT_HEADERS_FOLDER_PATH = "${PREFIX}/lib/swift/CoreFoundation"
 
-foundation.PUBLIC_MODULE_FOLDER_PATH = "/usr/lib/swift/CoreFoundation"
+foundation.PUBLIC_MODULE_FOLDER_PATH = "${PREFIX}/lib/swift/CoreFoundation"
 
 foundation.CFLAGS += " ".join([
 	'-DU_SHOW_DRAFT_API',