aboutsummaryrefslogtreecommitdiff
path: root/lib/System/Unix
AgeCommit message (Collapse)Author
2009-03-08add some explicit llvm:: qualifiers to the unix side, fix problems on the ↵Chris Lattner
windows side. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66386 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-07When a crash signal is delivered do two things: remove all of ourChris Lattner
signal handlers to prevent reentrance on unrelated things (a sigabort where the handle bus errors) also, clear the signal mask so that the signal doesn't infinitely reissue. This fixes rdar://6654827 - Crash causes clang to loop git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66330 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-05move some code to gracefully handle the case when a handler crashes.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66171 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-04Add a new 'AddSignalHandler' function to Signals.h that allowsChris Lattner
arbitrary functions to be run when a crash happens. Delete RemoveDirectoryOnSignal as it is dead and has never had clients. Change PrintStackTraceOnErrorSignal to be implemented in terms of AddSignalHandler. I updated the Win32 versions of these APIs, but can't test them. If there are any problems, I'd be happy to fix them as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66072 91177308-0d34-0410-b5e6-96231b3b80d8
2009-03-02Fix main executable path name resolution on FreeBSD, patch by Chris Lattner
Ed Schouten! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65882 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-19If an executable is run through a symlink, dladdr will return theChris Lattner
symlink. We really want the ultimate executable being run, not the symlink. This lets clang find its headers when invoked through a symlink. rdar://6602012 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65017 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-15Fix warning on gcc 4.3.Mikhail Glushenkov
"system() declared with attribute warn_unused_result." git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64574 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-15Whitespace fixes.Mikhail Glushenkov
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64573 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-10Use const, to support platforms where strrchr returns a const char *.Dan Gohman
This fixes PR3535. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64224 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-08Add a Sleep() function.Mikhail Glushenkov
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64101 91177308-0d34-0410-b5e6-96231b3b80d8
2009-02-08Add Emacs hints to Alarm.inc.Mikhail Glushenkov
Also removes some trailing whitespace and fixes one 80-column violation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64094 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-22rename methods in System/Host to be more consistent.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62776 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-05Don't use plain %x to print pointer values. I had changed it from %pDan Gohman
since %p isn't formatted consistently, but obviously plain %x is wrong. PRIxPTR with a cast to uintptr_t would work here, but that requires inconvenient build-system changes. %lu works on all current and foreseable future hosts. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60616 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-05Demangle and pretty-print symbols in internal backtraces. Patch byDan Gohman
Wesley Peck, with a few fixes by me. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60605 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-20Update the stub and callback code to handle lazy compilation. The stubJim Grosbach
is re-written by the callback to branch directly to the compiled code in future invocations. Added back in range-based memory permission functions for the updating of the stub on Darwin. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57846 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-03On Darwin ARM, memory needs special handling to do JIT. This patch expandsJim Grosbach
this handling to work properly for modifying stub functions, relocations back to entry points after JIT compilation, etc.. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57013 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-02Add llvm::sys::{osName,osVersion} for retrieving operating system nameDaniel Dunbar
& version as strings. - Win32 code is untested. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56942 91177308-0d34-0410-b5e6-96231b3b80d8
2008-09-18Preliminary support for systems which require changing JIT memory regions ↵Evan Cheng
privilege from read / write to read / executable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56303 91177308-0d34-0410-b5e6-96231b3b80d8
2008-09-16AllocateRWXMemory -> AllocateRWX.Evan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56244 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-11add a helper method to sys::Path for clang, patch byChris Lattner
Kovarththanan Rajaratnam! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54655 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-24Create temp. file in current path.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53973 91177308-0d34-0410-b5e6-96231b3b80d8
2008-07-22While creating temp. file on disk, if the current filename points to a ↵Devang Patel
existing directory then create new temp. file inside the directory. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53929 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-27Fix GetMainExecutable. Patch by Sam Bishop.Seo Sanghyeon
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52847 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-15Add a missing semicolon.Wojciech Matyjewicz
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52290 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-15Fix the sys::Path::getSuffix() implementation.Argyrios Kyrtzidis
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52288 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-12Fix redirection of stderr in sys::Program::ExecuteAndWait. There was logicMatthijs Kooijman
error that caused it to redirect stderr to stdout too often. This fix is applied identically to the win32 code as well, but that is untested. --Thi line, and those below, will be ignored-- M System/Unix/Program.inc M System/Win32/Program.inc git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52233 91177308-0d34-0410-b5e6-96231b3b80d8
2008-06-12Make I/O redirection handling in sys::Program a bit more consistent. NoMatthijs Kooijman
functional changes. Win32 code is untested, but should work fine. In the unix variant, rename RedirectFD to RedirectIO and let that function handle empty and null paths instead of doing that in the caller 3 times. This is the same as win32 already does it. In the win32 variant, use Path::isEmpty() instead of checking the resulting c_str() manually. This is the same as unix already does it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52230 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-29Unbreak build.Bill Wendling
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51709 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-29Remove more iostream header includes. Needed to implement a "FlushStream"Bill Wendling
function to flush a specified std::ostream. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51705 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-14Make PreVerifyID, IntSigsEnd, and KillSigsEnd const.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51088 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-13Clean up the use of static and anonymous namespaces. This turned upDan Gohman
several things that were neither in an anonymous namespace nor static but not intended to be global. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51017 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-11Make constructors target-specific. This fixes problems where the path wouldNick Lewycky
include backslashes on Windows. This should fix llvm-ld problems on win32. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50960 91177308-0d34-0410-b5e6-96231b3b80d8
2008-05-05Fix more -Wshorten-64-to-32 warnings.Evan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50659 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-12Restore code to disable crash catcher on older OS X systemsNate Begeman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49568 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-10Make several symbols static.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49496 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-07Make getDirnameSep a static method (not part of Path's interface).Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49354 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-07Added method Path::getDirname().Ted Kremenek
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49352 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-03Re-implemented Path::createDirectoryOnDisk (for Unix).Ted Kremenek
This method allows one to create a directory, and optionally create all parent directories that do not exist. The original implementation would require that *all* directories along a path are writable by the user, including directories that already exist. For example, suppose we wanted to create the directory "/tmp/foo/bar", and the directory "/tmp" already exists, but not "/tmp/foo". Since "/tmp" is writable by all users, the original implementation would work, and create "/tmp/foo", followed by "/tmp/bar". A problem occurred, however if one wanted to created the directory "/Users/myuser/bar" (or equivalently "/home/myuser/bar"), and "/Users/myuser" already existed and is writable by the current user. The directory "/User/myuser" is writable by the user, but "/User" is not. The original implementation of createDirectoryOnDisk would return with failure since "/User" is not writable, even though "/User/mysuser" is writable. The new implementation works by recursively creating parents as needed, and thus doesn't need to check the permissions on every directory in a path. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49162 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-01add some #includes.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49036 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-01MappedFile is dead, remove it.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49035 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-01Implement Path::MapInFilePages/UnMapFilePages on unix, which Chris Lattner
provides fast MappedFile::getFile for large files. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49034 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-01Stub out some sys::Path::MapInFilePages/UnMapFilePages methods.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49030 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-01Make MappedFile::map return a const correct pointer, don't leak address ↵Chris Lattner
space on Unix platforms. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49026 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-01Remove MappedFile support for mapping files for write and execChris Lattner
and shared. This complicates the design, is not used, and probably doesn't even work. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49022 91177308-0d34-0410-b5e6-96231b3b80d8
2008-04-01cleanup the MappedFile API and comments. This removes and updatesChris Lattner
tons of out of date comments (really nothing throws here!) and fixes some other fairly glaring issues: "size" used to return the size of the file *and* change it, depending on how you called it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49009 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-31Actually disable crash reporting on Mac OS X, returning bugpoint to speedyNate Begeman
crash miscompilations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49000 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-24Revert r48676. I had plans for using it, but now it's just dead code.Owen Anderson
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48743 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-22Add a comment, and fix a bug where AllocateRW recurred to AllocateRWX ↵Owen Anderson
instead of itself. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48677 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-22Add an AllocateRW to match AllocateRWX.Owen Anderson
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48676 91177308-0d34-0410-b5e6-96231b3b80d8
2008-03-21Avoid calling array_endof in a static initializer, as it incursDan Gohman
dynamic initialization. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48666 91177308-0d34-0410-b5e6-96231b3b80d8