X-Git-Url: https://git.saurik.com/apple/ld64.git/blobdiff_plain/c26469061cdd6e2ef3ada29b1f198253c71e6a29..74cfe461234fcf76aadb30ed686f281f06b555cd:/src/ExecutableFile.h diff --git a/src/ExecutableFile.h b/src/ExecutableFile.h index e2e1e8c..576554c 100644 --- a/src/ExecutableFile.h +++ b/src/ExecutableFile.h @@ -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@ - * + * * 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, @@ -17,11 +18,10 @@ * 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@ */ - #ifndef __EXECUTABLEFILE__ #define __EXECUTABLEFILE__ @@ -34,39 +34,34 @@ namespace ExecutableFile { - struct DyLibUsed + struct DyLibUsed { 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 }; - + class Writer : public ObjectFile::Reader { - public: - virtual ~Writer() {}; - + public: + virtual ~Writer() {}; + virtual const char* getPath() = 0; virtual std::vector& getAtoms() = 0; virtual std::vector* getJustInTimeAtomsFor(const char* name) = 0; - virtual std::vector* getStabsDebugInfo() = 0; virtual class ObjectFile::Atom* getUndefinedProxyAtom(const char* name) = 0; - virtual void write(std::vector& atoms, class ObjectFile::Atom* entryPointAtom) = 0; - - + virtual uint64_t write(std::vector& atoms, + std::vector& stabs, + class ObjectFile::Atom* entryPointAtom, + class ObjectFile::Atom* dyldHelperAtom, + bool createUUID) = 0; protected: - Writer(std::vector&) {}; + Writer(std::vector&) {}; }; }; - - - #endif // __EXECUTABLEFILE__ - - -