Commit Graph

258 Commits

Author SHA1 Message Date
Reid Spencer
07f9f4e2a4 Fix a file overwrite bug in llvm-ar introduced by changes to
createTemporaryFile semantics where it doesn't create a fully unique name
if the basename doesn't exist. This functionality is now optionally
provided by the boolean reuse_current parameter to createTemporaryFile and
makeUnique. The default values differ because of the way these functions
are used in LLVM.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18961 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-15 08:32:45 +00:00
Reid Spencer
c29befb554 For PR351:
* Fix implementation and documentation about LLVMGCCDIR/bytecode-libs
* Add the makeUnique method, replacement for getUniqueFilename in Support.
* Add the sys::CopyFile function, replacement for CopyFile in Support.
* Move GetLLVMConfigDir() into generic code area since its generic.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18947 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-15 01:50:13 +00:00
Jeff Cohen
626e38e481 Implement Win32 Path::getStatusInfo(), TimeValue::toString()
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18930 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-14 05:26:43 +00:00
Reid Spencer
a077c9a0a2 For PR351:
* Fix commentary, wrap lines, etc.
* Add an environment pointer to the ExecuteAndWait function.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18926 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-14 04:17:12 +00:00
Reid Spencer
77cc91deaa For PR351:
Implement three new functions to allow setting access/permission bits on
the file referenced by a path. The makeReadable and makeExecutable methods
replace the FileUtilities MakeFileReadable and MakeFileExecutable
functions. The makeWritable function is new and provided for consistency
since Path has a writable() method.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18907 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-13 19:59:50 +00:00
Reid Spencer
9d88d1aaab For PR351: \
The getFileTimestamp and getFileSize functions have been removed from  \
FileUtilities.{h,cpp}. They are replaced by Path::getTimestamp and  \
Path::getSize,respectively.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18892 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-13 17:01:53 +00:00
Reid Spencer
732f92d56e * Add a std::ostream inserter for sys::Path
* Correct the std::string constructor to take a const reference.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18877 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-13 06:57:15 +00:00
Reid Spencer
56c3ed854f Make the size() method const
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18852 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-13 02:58:51 +00:00
Reid Spencer
e12d00da9c For PR351:\
* Consolidate path retrieval into just two methods. \
* Add FindLibrary as a convenience function. \
* Add isDynamicLibrary for testing for dynamic libs. \
* Make toString constant and reference clean.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18847 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-13 02:57:53 +00:00
Reid Spencer
1fce09125c Path::get -> Path::toString
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18785 91177308-0d34-0410-b5e6-96231b3b80d8
2004-12-11 00:14:15 +00:00
Reid Spencer
b0b0ea07bb Add in some methods for use by the JIT. LoadLibraryPermanently brings the
library into the address space permanently. SearchForAddressOfSymbol looks
in all previously permanently loaded libraries and any currently open
libraries for a symbol, instead of just one library like GetAddressOfSymbol


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18354 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-29 13:27:56 +00:00
Reid Spencer
7a9369065d Make the default constructor cause the program's symbols to be loaded as
if it was a dynamic library.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18340 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-29 10:38:54 +00:00
Reid Spencer
0de02a6ba9 Dynamic Library abstraction. This makes the abstraction of a single dynamic
library (shared library/shared object) whose symbols can be looked up
dynamically. Used for plug-ins.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17940 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-18 04:33:39 +00:00
Reid Spencer
8bf7fba10b Per code review:
* get rid of (void) construct in function declarations
* make toString a const member
* add a default implementation of toString for Win32


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17873 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-16 06:22:17 +00:00
Reid Spencer
b608a81a18 Per code review:
* Clean up the StatusInfo constructor to construct all members and give
  them reasonable values.
* Get rid of the Vector typedef and make the interface to
  getDirectoryContent use a std::set instead of a std::vector so the dir
  content is sorted.
* Make the getStatusInfo method const and not return a useless boolean.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17872 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-16 06:15:19 +00:00
Reid Spencer
b5a6f419d0 Changes per code review:
* Document StatusInfo fields better
* No lines > 80 cols
* Have getStatusInfo return bool if file doesn't exist
* Don't document in detail how temporary file name should be created.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17808 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-14 23:29:00 +00:00
Reid Spencer
f31c7ff957 *Make naming convention consistent.*Add convertion to/from Unix Epoch time.*Add ability to convert to readable string.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17762 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-14 21:53:55 +00:00
Reid Spencer
00e9ca7148 Make the remove*OnSignal functions deal with Paths not strings
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17761 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-14 21:53:09 +00:00
Reid Spencer
c5fe25314c *Put the StatusInfo type in the right section. *Provide the ability to rename a file.*Provide the ability to get/set stat(2) information.*Provide the ability to identify LLVM file types.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17760 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-14 21:52:22 +00:00
Reid Spencer
8d2a8c3115 Allow explicit closing of the MappedFile, before destruction
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17759 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-14 21:51:36 +00:00
Reid Spencer
8ee9da05ed Provide conversion from posix time.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17656 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-09 20:29:10 +00:00
Reid Spencer
9195f37c5f * Implement getStatusInfo for getting stat(2) like information
* Implement createTemporaryFile for mkstemp(3) functionality
* Fix isBytecodeFile to accept llvc magic # (compressed) as bytecode.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17654 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-09 20:26:31 +00:00
Reid Spencer
07adb2836b Stop propagating method names that violate the coding standard
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17498 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-05 22:15:36 +00:00
Chris Lattner
1fca5ff62b Convert 'struct' to 'class' in various places to adhere to the coding standards
and work better with VC++.  Patch contributed by Morten Ofstad!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17281 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-27 16:14:51 +00:00
Misha Brukman
28ab668c10 Wrap comments at 80 cols
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17261 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-26 18:00:03 +00:00
Misha Brukman
e196516fa7 * Fit constructor initializer on a single line
* Delete blank chars at end of line to fit into 80 cols


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17137 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-19 00:29:16 +00:00
Misha Brukman
c2ab5a2a63 Fix file comment header
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16942 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-12 21:48:02 +00:00
Chris Lattner
c441f1e1c7 Fix #include flavor
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16658 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-04 18:10:18 +00:00
Reid Spencer
ce4e6ade3e Minor corrections suggested by Chris' ever-watchful eye.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16651 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-04 17:26:26 +00:00
Reid Spencer
9737492204 First version of the MappedFile abstraction for operating system idependent
mapping of files. This first version uses mmap where its available. The
class needs to implement an alternate mechanism based on malloc'd memory
and file reading/writing for platforms without virtual memory.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16649 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-04 11:08:32 +00:00
Reid Spencer
45392b694f Clean up the interface of TimeValue:
- get rid of unneeded constructors
- get rid of duplicate methods/constructors/operators
- normalize to LLVM coding standards
- wrap to 80 columns.

Many thanks to Alkis Evlogimenos for his suggestions.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16514 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-25 08:29:54 +00:00
Reid Spencer
9926c31351 Initial implementation of the TimeValue abstraction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16511 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-24 23:25:19 +00:00
Reid Spencer
9ab80b794e Add the GetLibraryPath method.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16322 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-13 23:46:23 +00:00
Reid Spencer
33189e787b Simplify the sys::Memory interface per Chris' request.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16318 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-13 22:38:11 +00:00
Reid Spencer
2565943289 Clean up the interface and implementation of sys::Program so that it is
cleanly dissociated from the sys::Path class.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16315 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-13 21:48:44 +00:00
Reid Spencer
e5d6ca43d7 Initial commit of a file to declare the interface for platform independent
support for various memory allocation operations.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16279 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-11 04:20:58 +00:00
Reid Spencer
e6a10cf518 Add methods for detecting file types by magic number, getting the file name
suffix for shared objects, and stripping a path down to its base name.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16278 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-11 04:19:17 +00:00
Reid Spencer
e38001f6c6 Add methods for detecting different kinds of files by their magic number,
getting the suffix for shared objects, and extracting the basename from a
path.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16277 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-11 04:18:05 +00:00
Reid Spencer
d808bcaefe Initial commit for platform independent system configuration support.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16128 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-31 18:13:52 +00:00
Reid Spencer
fd5c345a0e Put the lib/System interface functions in llvm::sys namespace.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16083 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-29 19:19:07 +00:00
Reid Spencer
67d556567f Initial commit of the platform agnostic interface to finding and executing
programs.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16080 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-29 05:29:35 +00:00
Reid Spencer
ac4b796c40 Add a function to remove whole directorys on fatal signal.
Doxygenify function comments.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16079 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-29 05:27:15 +00:00
Reid Spencer
8e66595512 Revise the design of the Path concept per peer review. Too many changes to
note individually but these essence of it is to not derive from
std::string, clarify the interface, and provide better documentation.
There is now also (untested) implementations for AIX, Darwin, and SunOS.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16078 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-29 05:24:01 +00:00
Reid Spencer
b89a2237ea Initial implementation of the Path operating system concept.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16048 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-25 06:20:07 +00:00
Reid Spencer
d771c5340a Back out include/llvm/System changes until a satisfactory solution can
be determined.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15817 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-16 07:10:09 +00:00
Reid Spencer
d5cda87995 First version of a class to represent the notion of an operating system
path to a file or directory and some rudimentary operations on them.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15762 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-15 08:13:01 +00:00
Reid Spencer
da5f2abcb7 First version of a class to represent operating system and lib/System
error codes in a platform independent way.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15761 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-15 08:12:14 +00:00
Reid Spencer
8b67f54767 Added a README to point users to the documentation on the design of this
library which is a prerequisite for maintaining the library.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14909 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-17 08:39:53 +00:00
Chris Lattner
3166440855 Moved header from include/Support/ to include/llvm/System
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13810 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-27 05:30:18 +00:00
Chris Lattner
9717ee9e6c Add a new function
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11630 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-19 20:03:08 +00:00
Chris Lattner
a7e2321a65 doxygenify
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10661 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-31 04:42:00 +00:00
Brian Gaeke
d0fde30ce8 Put all LLVM code into the llvm namespace, as per bug 109.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9903 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-11 22:41:34 +00:00
John Criswell
b2109ce978 Added LLVM notice.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9300 91177308-0d34-0410-b5e6-96231b3b80d8
2003-10-20 19:46:57 +00:00
Chris Lattner
48486893f4 Standardize header file comments
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8782 91177308-0d34-0410-b5e6-96231b3b80d8
2003-09-30 18:37:50 +00:00
Chris Lattner
9ef719afac This file doesn't need this include
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7479 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-01 19:16:18 +00:00
John Criswell
7a73b80b90 Merged in autoconf branch. This provides configuration via the autoconf
system.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7014 91177308-0d34-0410-b5e6-96231b3b80d8
2003-06-30 21:59:07 +00:00
Chris Lattner
2a77df33f0 Fix header
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4966 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-12 03:43:30 +00:00
Chris Lattner
922a392565 New api for signal handling for LLVM tools
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2301 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-18 19:53:34 +00:00