diff options
| author | Greg Clayton <gclayton@apple.com> | 2010-07-09 20:39:50 +0000 |
|---|---|---|
| committer | Greg Clayton <gclayton@apple.com> | 2010-07-09 20:39:50 +0000 |
| commit | c982c768d248b21b82fbd70b61a4cc824cd82ddc (patch) | |
| tree | 68c5d417ce51994a2d393e5a5a7f0025b6e4ed35 /lldb/source/Host/macosx | |
| parent | 2a5725b1a324639d0e16e9c125f5713acfabca60 (diff) | |
| download | bcm5719-llvm-c982c768d248b21b82fbd70b61a4cc824cd82ddc.tar.gz bcm5719-llvm-c982c768d248b21b82fbd70b61a4cc824cd82ddc.zip | |
Merged Eli Friedman's linux build changes where he added Makefile files that
enabled LLVM make style building and made this compile LLDB on Mac OS X. We
can now iterate on this to make the build work on both linux and macosx.
llvm-svn: 108009
Diffstat (limited to 'lldb/source/Host/macosx')
| -rw-r--r-- | lldb/source/Host/macosx/Host.mm | 35 | ||||
| -rw-r--r-- | lldb/source/Host/macosx/Makefile | 16 | ||||
| -rw-r--r-- | lldb/source/Host/macosx/Symbols.cpp | 7 |
3 files changed, 39 insertions, 19 deletions
diff --git a/lldb/source/Host/macosx/Host.mm b/lldb/source/Host/macosx/Host.mm index 4aee4445b61..b2ca2bb6ce9 100644 --- a/lldb/source/Host/macosx/Host.mm +++ b/lldb/source/Host/macosx/Host.mm @@ -23,9 +23,9 @@ #include <Foundation/Foundation.h> -#include "CFCBundle.h" -#include "CFCReleaser.h" -#include "CFCString.h" +#include "cfcpp/CFCBundle.h" +#include "cfcpp/CFCReleaser.h" +#include "cfcpp/CFCString.h" #include "lldb/Host/Host.h" #include "lldb/Core/ArchSpec.h" @@ -434,7 +434,7 @@ Host::SetThreadName (lldb::pid_t pid, lldb::tid_t tid, const char *name) // Set the pthread name if possible if (pid == curr_pid && tid == curr_tid) { - ::pthread_setname_np (name) == 0; + ::pthread_setname_np (name); } #endif ThreadNameAccessor (false, pid, tid, name); @@ -446,21 +446,22 @@ Host::GetProgramFileSpec () static FileSpec g_program_filepsec; if (!g_program_filepsec) { - std::string program_fullpath; - program_fullpath.resize (PATH_MAX); + char program_fullpath[PATH_MAX]; // If DST is NULL, then return the number of bytes needed. - uint32_t len = program_fullpath.size(); - int err = _NSGetExecutablePath ((char *)program_fullpath.data(), &len); - if (err < 0) + uint32_t len = sizeof(program_fullpath); + int err = _NSGetExecutablePath (program_fullpath, &len); + if (err == 0) + g_program_filepsec.SetFile (program_fullpath); + else if (err == -1) { - // The path didn't fit in the buffer provided, increase its size - // and try again - program_fullpath.resize(len); - len = program_fullpath.size(); - err = _NSGetExecutablePath ((char *)program_fullpath.data(), &len); + char *large_program_fullpath = (char *)::malloc (len + 1); + + err = _NSGetExecutablePath (large_program_fullpath, &len); + if (err == 0) + g_program_filepsec.SetFile (large_program_fullpath); + + ::free (large_program_fullpath); } - if (err == 0) - g_program_filepsec.SetFile(program_fullpath.data()); } return g_program_filepsec; } @@ -505,7 +506,7 @@ Host::ResolveExecutableInBundle (FileSpec *file) struct MonitorInfo { - int handle; + uint32_t handle; pthread_t thread; Host::MonitorChildProcessCallback callback; void *callback_baton; diff --git a/lldb/source/Host/macosx/Makefile b/lldb/source/Host/macosx/Makefile new file mode 100644 index 00000000000..de505891d76 --- /dev/null +++ b/lldb/source/Host/macosx/Makefile @@ -0,0 +1,16 @@ +##===- source/Host/macosx/Makefile -------------------------*- Makefile -*-===## +# +# The LLVM Compiler Infrastructure +# +# This file is distributed under the University of Illinois Open Source +# License. See LICENSE.TXT for details. +# +##===----------------------------------------------------------------------===## + +LLDB_LEVEL := ../../.. +LIBRARYNAME := lldbHostMacOSX +BUILD_ARCHIVE = 1 + +SOURCES := $(notdir $(wildcard *.cpp *.mm)) + +include $(LLDB_LEVEL)/Makefile diff --git a/lldb/source/Host/macosx/Symbols.cpp b/lldb/source/Host/macosx/Symbols.cpp index 2b8026f7985..ccdde69bcbf 100644 --- a/lldb/source/Host/macosx/Symbols.cpp +++ b/lldb/source/Host/macosx/Symbols.cpp @@ -19,20 +19,23 @@ #include <CoreFoundation/CoreFoundation.h> // Project includes -#include "CFCReleaser.h" #include "lldb/Core/ArchSpec.h" #include "lldb/Core/DataBuffer.h" #include "lldb/Core/DataExtractor.h" #include "lldb/Core/Timer.h" #include "lldb/Core/UUID.h" +#include "Host/macosx/cfcpp/CFCReleaser.h" + using namespace lldb; using namespace lldb_private; extern "C" { + CFURLRef DBGCopyFullDSYMURLForUUID (CFUUIDRef uuid, CFURLRef exec_url); CFDictionaryRef DBGCopyDSYMPropertyLists (CFURLRef dsym_url); -}; + +} static bool SkinnyMachOFileContainsArchAndUUID |

