summaryrefslogtreecommitdiffstats
path: root/lldb/scripts/Python
diff options
context:
space:
mode:
authorJim Ingham <jingham@apple.com>2016-03-11 01:57:45 +0000
committerJim Ingham <jingham@apple.com>2016-03-11 01:57:45 +0000
commitd815c9ab88fd537f7d54c0a6bd0fc6d7f4361c23 (patch)
tree59dafafbe61537f293d7e98776ee6c8fa1237d2f /lldb/scripts/Python
parentb1069239a0260bf9998a6da15a6d10778274ba45 (diff)
downloadbcm5719-llvm-d815c9ab88fd537f7d54c0a6bd0fc6d7f4361c23.tar.gz
bcm5719-llvm-d815c9ab88fd537f7d54c0a6bd0fc6d7f4361c23.zip
Fix SBDebugger.GetOutputFileHandle() on OS X.
The swig typemaps had some magic for output File *'s on OS X that made: SBDebugger.GetOutputFileHandle() actually work. That was protected by a "#ifdef __MACOSX__", but the corresponding define got lost going from the Darwin shell scripts to the python scripts for running swig, so the code was elided. I need to pass the define to SWIG, but only when targetting Darwin. So I added a target-platform argument to prepare_bindings, and if that is Darwin, I pass -D__APPLE__ to swig, and that activates this code again, and GetOutputFileHandle works again. Note, I only pass that argument for the Xcode build. I'm sure it is possible to do that for cmake, but my cmake-foo is weak. I should have been able to write a test for this by creating a debugger, setting the output file handle to something file, writing to it, getting the output file handle and reading it. But SetOutputFileHandle doesn't seem to work from Python, so I'd have to write a pexpect test to test this, which I'd rather not do. llvm-svn: 263183
Diffstat (limited to 'lldb/scripts/Python')
-rw-r--r--lldb/scripts/Python/prepare_binding_Python.py4
-rw-r--r--lldb/scripts/Python/python-typemaps.swig2
2 files changed, 4 insertions, 2 deletions
diff --git a/lldb/scripts/Python/prepare_binding_Python.py b/lldb/scripts/Python/prepare_binding_Python.py
index 1996841baf1..28fc3e5bc7f 100644
--- a/lldb/scripts/Python/prepare_binding_Python.py
+++ b/lldb/scripts/Python/prepare_binding_Python.py
@@ -16,7 +16,7 @@ import re
import shutil
import subprocess
import sys
-
+import platform
class SwigSettings(object):
"""Provides a single object to represent swig files and settings."""
@@ -205,6 +205,8 @@ def do_swig_rebuild(options, dependency_file, config_build_dir, settings):
"-I\"%s\"" % os.path.normcase("./."),
"-D__STDC_LIMIT_MACROS",
"-D__STDC_CONSTANT_MACROS"]
+ if options.target_platform == "Darwin":
+ command.append("-D__APPLE__")
if options.generate_dependency_file:
command.append("-MMD -MF \"%s\"" % temp_dep_file_path)
command.extend([
diff --git a/lldb/scripts/Python/python-typemaps.swig b/lldb/scripts/Python/python-typemaps.swig
index 82e33e1bc60..1b2afc2c7a6 100644
--- a/lldb/scripts/Python/python-typemaps.swig
+++ b/lldb/scripts/Python/python-typemaps.swig
@@ -534,7 +534,7 @@
%typemap(out) FILE * {
char mode[4] = {0};
-#ifdef __MACOSX__
+#ifdef __APPLE__
int i = 0;
short flags = $1->_flags;
OpenPOWER on IntegriCloud