--- src/ld/Options.cpp
+++ src/ld/Options.cpp
@@ -2127,9 +2127,9 @@ void Options::parse(int argc, const char* argv[])
 				 if ( (seg.name == NULL) || (argv[i+1] == NULL) )
 					throw "-segaddr missing segName Adddress";
 				seg.address = parseAddress(argv[++i]);
-				uint64_t temp = seg.address & (-4096); // page align
-				if ( (seg.address != temp)  )
-					warning("-segaddr %s not page aligned, rounding down", seg.name);
+				uint64_t temp = ((seg.address+fSegmentAlignment-1) & (-fSegmentAlignment)); 
+				if ( seg.address != temp )
+					warning("-segaddr %s not %lld byte aligned", seg.name, fSegmentAlignment);
 				fCustomSegmentAddresses.push_back(seg);
 			}
 			// ??? Deprecate when we deprecate split-seg.
@@ -3080,7 +3080,7 @@ void Options::reconfigureDefaults()
 			}
 			break;
 		case CPU_TYPE_X86_64:
-			if ( fMacVersionMin < ld::mac10_4 ) {
+			if ( (fMacVersionMin < ld::mac10_4) && (fIOSVersionMin == ld::iOSVersionUnset) ) {
 				//warning("-macosx_version_min should be 10.4 or later for x86_64");
 				fMacVersionMin = ld::mac10_4;
 			}
@@ -3387,29 +3387,14 @@ void Options::reconfigureDefaults()
 
 	
 	// only use compressed LINKEDIT for:
-	//			x86_64 and i386 on Mac OS X 10.6 or later
-	//			arm on iPhoneOS 3.1 or later
+	//			Mac OS X 10.6 or later
+	//			iOS 3.1 or later
 	if ( fMakeCompressedDyldInfo ) {
-		switch (fArchitecture) {
-			case CPU_TYPE_I386:
-				if ( fIOSVersionMin != ld::iOSVersionUnset ) // simulator always uses compressed LINKEDIT
-					break;
-			case CPU_TYPE_X86_64:
-				if ( fMacVersionMin < ld::mac10_6 ) 
-					fMakeCompressedDyldInfo = false;
-				break;
-            case CPU_TYPE_ARM:
-				if ( !minOS(ld::mac10_6, ld::iOS_3_1) )
-					fMakeCompressedDyldInfo = false;
-				break;
-			case CPU_TYPE_POWERPC:
-			case CPU_TYPE_POWERPC64:
-			default:
-				fMakeCompressedDyldInfo = false;
-		}
+		if ( !minOS(ld::mac10_6, ld::iOS_3_1) )
+			fMakeCompressedDyldInfo = false;
 	}
 
-		
+
 	// only ARM enforces that cpu-sub-types must match
 	if ( fArchitecture != CPU_TYPE_ARM )
 		fAllowCpuSubtypeMismatches = true;
--- src/ld/passes/order_file.cpp
+++ src/ld/passes/order_file.cpp
@@ -237,6 +237,7 @@ bool Layout::orderableSection(const ld::Internal::FinalSection* sect)
 {
 	// atoms in only some sections are ordered 
 	switch ( sect->type() ) {
+		case ld::Section::typeInitializerPointers:
 		case ld::Section::typeUnclassified:
 		case ld::Section::typeCode:
 		case ld::Section::typeZeroFill:
