Loading...
xcodescripts/generate_features.pl Libc-997.90.3 Libc-1353.11.2
--- Libc/Libc-997.90.3/xcodescripts/generate_features.pl
+++ Libc/Libc-1353.11.2/xcodescripts/generate_features.pl
@@ -1,8 +1,4 @@
 #!/usr/bin/perl
-
-if ($ENV{"ACTION"} eq "installhdrs") {
-	exit 0;
-}
 
 # Generates the libc-features.h files used to control #ifdef behaviour in Libc
 use warnings;
@@ -23,9 +19,9 @@
 {
 	# set ENV{"CURRENT_ARCH"} so we can predicate on it
 	$ENV{"CURRENT_ARCH"} = $arch;
-	
-	my $platformName = $ENV{"PLATFORM_NAME"};
-	$platformName = "iphoneos" if ($platformName eq "iphonesimulator");
+
+	my $platformName = $ENV{"VARIANT_PLATFORM_NAME"};
+	$platformName =~ s/simulator/os/;
 
 	my $platformPath = $ENV{"SRCROOT"} . "/Platforms/" . $platformName . "/Makefile.inc";
 	my $featuresHeaderDir = $ENV{"DERIVED_FILES_DIR"}."/".$arch;
@@ -78,16 +74,13 @@
 	}
 
 	elsif ($unifdef == 1) {
-		if ($platformName eq "macosx") {
-			$unifdefs{"__OSX_OPEN_SOURCE__"} = 1;
-		}
 		# assume FEATURE_BLOCKS was on by default
 		$unifdefs{"UNIFDEF_BLOCKS"} = 1;
+		$unifdefs{"UNIFDEF_DRIVERKIT"} = defined($ENV{"DRIVERKITSDK"});
 		$unifdefs{"UNIFDEF_LEGACY_64_APIS"} = defined($features{"FEATURE_LEGACY_64_APIS"});
 		$unifdefs{"UNIFDEF_LEGACY_RUNE_APIS"} = defined($features{"FEATURE_LEGACY_RUNE_APIS"});
 		$unifdefs{"UNIFDEF_LEGACY_UTMP_APIS"} = defined($features{"FEATURE_LEGACY_UTMP_APIS"});
-		$unifdefs{"UNIFDEF_MOVE_LOCALTIME"} = defined($features{"FEATURE_MOVE_LOCALTIME"});
-		$unifdefs{"UNIFDEF_TZDIR_SYMLINK"} = defined($features{"FEATURE_TZDIR_SYMLINK"});
+		$unifdefs{"UNIFDEF_POSIX_ILP32_ALLOW"} = defined($features{"FEATURE_POSIX_ILP32_ALLOW"});
 		
 		my $output = "";
 		for my $d (keys %unifdefs) {
@@ -127,6 +120,9 @@
 		my $shortarch = $arch;
 		$shortarch =~ s/armv\d+[a-z]?/arm/g;
 
+		# map all arm64 subtypes to arm64
+		$shortarch =~ s/arm64[_a-z0-9]*/arm64/g;
+
 		printf HEADER "#if !defined(__".$shortarch."__)\n";
 		printf HEADER "#error Mismatched libc-features.h architecture\n";
 		printf HEADER "#endif\n\n";
@@ -147,18 +143,6 @@
 			printf HEADER "#define UNIFDEF_LEGACY_UTMP_APIS 1\n";
 		} else {
 			printf HEADER "/* #undef UNIFDEF_LEGACY_UTMP_APIS */\n";
-		}
-
-		if (defined($features{"FEATURE_MOVE_LOCALTIME"})) {
-			printf HEADER "#define UNIFDEF_MOVE_LOCALTIME 1\n";
-		} else {
-			printf HEADER "/* #undef UNIFDEF_MOVE_LOCALTIME */\n";
-		}
-
-		if (defined($features{"FEATURE_TZDIR_SYMLINK"})) {
-			printf HEADER "#define UNIFDEF_TZDIR_SYMLINK 1\n";
-		} else {
-			printf HEADER "/* #undef UNIFDEF_TZDIR_SYMLINK */\n";
 		}
 
 		if (defined($features{"FEATURE_ONLY_1050_VARIANTS"})) {
@@ -209,12 +193,6 @@
 			printf HEADER "/* #undef NOTIFY_TZ */\n";
 		}
 
-		if (defined($features{"FEATURE_NO_LIBCRASHREPORTERCLIENT"})) {
-			printf HEADER "#define LIBC_NO_LIBCRASHREPORTERCLIENT 1\n";
-		} else {
-			printf HEADER "/* #undef LIBC_NO_LIBCRASHREPORTERCLIENT */\n";
-		}
-
 		if (defined($features{"FEATURE_SMALL_STDIOBUF"})) {
 			printf HEADER "#define FEATURE_SMALL_STDIOBUF 1\n";
 		} else {
@@ -225,6 +203,12 @@
 			printf HEADER "#define XPRINTF_PERF 1\n";
 		} else {
 			printf HEADER "/* #undef XPRINTF_PERF */\n";
+		}
+
+		if (defined($features{"FEATURE_SIGNAL_RESTRICTION"})) {
+			printf HEADER "#define FEATURE_SIGNAL_RESTRICTION 1\n";
+		} else {
+			printf HEADER "/* #undef FEATURE_SIGNAL_RESTRICTION */\n";
 		}
 
 		printf HEADER "#endif // _LIBC_FEATURES_H_\n";