]> git.saurik.com Git - apple/ld64.git/blobdiff - src/ExecutableFile.h
ld64-62.1.tar.gz
[apple/ld64.git] / src / ExecutableFile.h
index e2e1e8c6e15c507b53084a90b23ae99e2dfb1f5d..576554c65336a6db04a18dd71f511db502eb5e73 100644 (file)
@@ -1,15 +1,16 @@
-/*
- * Copyright (c) 2005 Apple Computer, Inc. All rights reserved.
+/* -*- mode: C++; c-basic-offset: 4; tab-width: 4 -*-
+ *
+ * Copyright (c) 2005-2006 Apple Computer, Inc. All rights reserved.
  *
  * @APPLE_LICENSE_HEADER_START@
  *
  * @APPLE_LICENSE_HEADER_START@
- * 
+ *
  * This file contains Original Code and/or Modifications of Original Code
  * as defined in and that are subject to the Apple Public Source License
  * Version 2.0 (the 'License'). You may not use this file except in
  * compliance with the License. Please obtain a copy of the License at
  * http://www.opensource.apple.com/apsl/ and read it before using this
  * file.
  * This file contains Original Code and/or Modifications of Original Code
  * as defined in and that are subject to the Apple Public Source License
  * Version 2.0 (the 'License'). You may not use this file except in
  * compliance with the License. Please obtain a copy of the License at
  * http://www.opensource.apple.com/apsl/ and read it before using this
  * file.
- * 
+ *
  * The Original Code and all software distributed under the License are
  * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
  * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
  * The Original Code and all software distributed under the License are
  * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
  * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
  * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
  * Please see the License for the specific language governing rights and
  * limitations under the License.
  * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
  * Please see the License for the specific language governing rights and
  * limitations under the License.
- * 
+ *
  * @APPLE_LICENSE_HEADER_END@
  */
 
  * @APPLE_LICENSE_HEADER_END@
  */
 
-
 #ifndef __EXECUTABLEFILE__
 #define __EXECUTABLEFILE__
 
 #ifndef __EXECUTABLEFILE__
 #define __EXECUTABLEFILE__
 
 
 namespace ExecutableFile {
 
 
 namespace ExecutableFile {
 
-       struct DyLibUsed 
+       struct DyLibUsed
        {
                ObjectFile::Reader*             reader;
                DynamicLibraryOptions   options;
        {
                ObjectFile::Reader*             reader;
                DynamicLibraryOptions   options;
-               bool                                    indirect;               // library found indirect.  Do not make load command
+               bool                                    indirect;       // library found indirect.  Do not make load command
                ObjectFile::Reader*             directReader;   // direct library which re-exports this library
        };
                ObjectFile::Reader*             directReader;   // direct library which re-exports this library
        };
-       
+
        class Writer : public ObjectFile::Reader
        {
        class Writer : public ObjectFile::Reader
        {
-       public:         
-               virtual                                                         ~Writer() {};
-               
+       public:
+               virtual                                         ~Writer() {};
+
                virtual const char*                                                             getPath() = 0;
                virtual std::vector<class ObjectFile::Atom*>&   getAtoms() = 0;
                virtual std::vector<class ObjectFile::Atom*>*   getJustInTimeAtomsFor(const char* name) = 0;
                virtual const char*                                                             getPath() = 0;
                virtual std::vector<class ObjectFile::Atom*>&   getAtoms() = 0;
                virtual std::vector<class ObjectFile::Atom*>*   getJustInTimeAtomsFor(const char* name) = 0;
-               virtual std::vector<ObjectFile::StabsInfo>*             getStabsDebugInfo() = 0;
 
                virtual class ObjectFile::Atom*                                 getUndefinedProxyAtom(const char* name) = 0;
 
                virtual class ObjectFile::Atom*                                 getUndefinedProxyAtom(const char* name) = 0;
-               virtual void                                                                    write(std::vector<class ObjectFile::Atom*>& atoms, class ObjectFile::Atom* entryPointAtom) = 0;
-
-
+               virtual uint64_t                                                                write(std::vector<class ObjectFile::Atom*>& atoms,
+                                                                                                                         std::vector<class ObjectFile::Reader::Stab>& stabs,
+                                                                                                                         class ObjectFile::Atom* entryPointAtom,
+                                                                                                                         class ObjectFile::Atom* dyldHelperAtom,
+                                                                                                                         bool createUUID) = 0;
 
        protected:
 
        protected:
-                                                                                       Writer(std::vector<DyLibUsed>&) {};
+                                                                       Writer(std::vector<DyLibUsed>&) {};
        };
 
 };
 
        };
 
 };
 
-
-
-
 #endif // __EXECUTABLEFILE__
 #endif // __EXECUTABLEFILE__
-
-
-