X-Git-Url: https://git.saurik.com/apple/libc.git/blobdiff_plain/6465356a983ac139f81d3b7913cdb548477c346c..e07eda1a0324f771bb1ed20ef94f3229005ee46c:/xcodescripts/generate_features.pl diff --git a/xcodescripts/generate_features.pl b/xcodescripts/generate_features.pl index b450231..0704fcd 100755 --- a/xcodescripts/generate_features.pl +++ b/xcodescripts/generate_features.pl @@ -1,9 +1,5 @@ #!/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; use Data::Dumper; @@ -23,9 +19,15 @@ for my $arch (split(/ /, $ENV{"ARCHS"})) { # set ENV{"CURRENT_ARCH"} so we can predicate on it $ENV{"CURRENT_ARCH"} = $arch; - + + # BridgeOS shares the same platform name than the watch so + # we need to fix it and pick the right configuration. my $platformName = $ENV{"PLATFORM_NAME"}; - $platformName = "iphoneos" if ($platformName eq "iphonesimulator"); + if ($ENV{"RC_BRIDGE"} eq "YES") { + $platformName = "bridgeos"; + } + + $platformName =~ s/simulator/os/; my $platformPath = $ENV{"SRCROOT"} . "/Platforms/" . $platformName . "/Makefile.inc"; my $featuresHeaderDir = $ENV{"DERIVED_FILES_DIR"}."/".$arch; @@ -78,16 +80,11 @@ for my $arch (split(/ /, $ENV{"ARCHS"})) } 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_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"}); my $output = ""; for my $d (keys %unifdefs) { @@ -127,6 +124,9 @@ for my $arch (split(/ /, $ENV{"ARCHS"})) 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"; @@ -149,18 +149,6 @@ for my $arch (split(/ /, $ENV{"ARCHS"})) 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"})) { printf HEADER "#if !__DARWIN_ONLY_VERS_1050\n"; printf HEADER "# error Feature mismatch: __DARWIN_ONLY_VERS_1050 == 0\n"; @@ -209,12 +197,6 @@ for my $arch (split(/ /, $ENV{"ARCHS"})) 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 { @@ -227,6 +209,12 @@ for my $arch (split(/ /, $ENV{"ARCHS"})) 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"; close HEADER; }