summaryrefslogtreecommitdiffstats
path: root/lldb/tools/debugserver/scripts/dbgnub-config.pl
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/tools/debugserver/scripts/dbgnub-config.pl')
-rw-r--r--lldb/tools/debugserver/scripts/dbgnub-config.pl71
1 files changed, 71 insertions, 0 deletions
diff --git a/lldb/tools/debugserver/scripts/dbgnub-config.pl b/lldb/tools/debugserver/scripts/dbgnub-config.pl
new file mode 100644
index 00000000000..c953cc2e1c5
--- /dev/null
+++ b/lldb/tools/debugserver/scripts/dbgnub-config.pl
@@ -0,0 +1,71 @@
+#!/usr/bin/perl
+
+use strict;
+my $config_file = "$ENV{SCRIPT_OUTPUT_FILE_0}";
+
+# Define the tests we need to run during this configuration
+my @config_tests = (
+ {
+ NAME => "HAVE_64_BIT_MACH_EXCEPTIONS",
+ TEST => "-e '$ENV{SDKROOT}/usr/include/mach/mach_exc.defs'",
+ COMMENT => "// Defined if we can use 64 bit mach exceptions",
+ FAIL => "#undef HAVE_64_BIT_MACH_EXCEPTIONS\
+#define mach_exception_data_t exception_data_t\
+#define mach_exception_data_type_t exception_data_type_t\
+#define mach_exc_server exc_server\
+#define MACH_EXCEPTION_CODES 0\n",
+ SUCCESS => "#define HAVE_64_BIT_MACH_EXCEPTIONS 1\n",
+ }
+);
+
+#----------------------------------------------------------------------
+# Open the config file
+#----------------------------------------------------------------------
+open(CONFIG, "> $config_file") || die "Couldn't open '$config_file' for writing: $!\n";
+print CONFIG "/*" . "-" x 72 . "\n";
+print CONFIG "// This file is auto generated by a dbgnub-config.pl, do not edit by hand!\n";
+print CONFIG "//" . "-" x 72 . "\n";
+print CONFIG "// COMMAND LINE\n";
+print CONFIG "// " . join(' ', @ARGV) . "\n";
+print CONFIG "//" . "-" x 72 . "\n";
+print CONFIG "// ENVIRONMENT\n";
+my $key;
+my $val;
+while (($key, $val) = each %ENV)
+{
+ printf CONFIG "// %s = %s\n", $key, $val;
+}
+print CONFIG "//" . "-" x 72 . "\n";
+print CONFIG "// SETTINGS\n";
+print CONFIG "// config_file: '$config_file'\n";
+print CONFIG "//" . "-" x 72 . "\n";
+print CONFIG "*/\n\n";
+print CONFIG "#ifndef __DBGNUB_CONFIG__\n";
+print CONFIG "#define __DBGNUB_CONFIG__\n";
+
+
+#----------------------------------------------------------------------
+# Run the tests
+#----------------------------------------------------------------------
+foreach my $test_href (@config_tests)
+{
+ if (exists $test_href->{COMMENT}) {
+ print CONFIG "\n$test_href->{COMMENT}\n";
+ } else {
+ print CONFIG "\n// $test_href->{NAME}\n";
+ }
+
+ my $test_result = eval "$test_href->{TEST}";
+ if ($test_result != 0)
+ {
+ print CONFIG "$test_href->{SUCCESS}\n";
+ }
+ else
+ {
+ print CONFIG "$test_href->{FAIL}\n";
+ }
+}
+
+print CONFIG "#endif // #ifndef __DBGNUB_CONFIG__\n";
+close(CONFIG);
+
OpenPOWER on IntegriCloud