--- src/ld/MachOReaderRelocatable.hpp.orig	2015-01-24 01:24:52.000000000 -0800
+++ src/ld/MachOReaderRelocatable.hpp	2015-01-24 01:40:57.000000000 -0800
@@ -62,7 +62,38 @@ extern void warning(const char* format, 
 namespace mach_o {
 namespace relocatable {
 
+class BaseAtom : public ObjectFile::Atom
+{
+public:
+												BaseAtom() : fStabsStartIndex(0), fStabsCount(0), fHasCompactUnwindInfo(false) {}
 
+	virtual void								setSize(uint64_t size) = 0;
+	virtual void								addReference(ObjectFile::Reference* ref) = 0;
+	virtual void								sortReferences() = 0;
+	virtual void								addLineInfo(const ObjectFile::LineInfo& info) = 0;
+	virtual const ObjectFile::ReaderOptions&	getOptions() const = 0;
+	virtual uint64_t							getObjectAddress() const = 0;
+	virtual uint32_t							getOrdinal() const { return fOrdinal; }
+	virtual void								setOrdinal(uint32_t value) { fOrdinal = value; }
+	virtual const void*							getSectionRecord() const = 0;
+	virtual unsigned int						getSectionIndex() const = 0;
+	virtual bool								isAlias() const { return false; }
+	virtual uint8_t								getLSDAReferenceKind() const { return 0; }
+	virtual uint8_t								getPersonalityReferenceKind() const { return 0; }
+	virtual uint32_t							getCompactUnwindEncoding(uint64_t ehAtomAddress) { return 0; }
+	virtual ObjectFile::UnwindInfo::iterator	beginUnwind()					{ return fHasCompactUnwindInfo ? &fSingleUnwindInfo[0] : NULL; }
+	virtual ObjectFile::UnwindInfo::iterator	endUnwind()						{ return fHasCompactUnwindInfo ? &fSingleUnwindInfo[1] : NULL; }
+	virtual ObjectFile::Reference*				getLSDA();
+	virtual ObjectFile::Reference*				getFDE();
+	virtual Atom*								getPersonalityPointer();
+	virtual void								setCompactUnwindEncoding(uint64_t ehAtomAddress);
+
+	uint32_t									fStabsStartIndex;
+	uint32_t									fStabsCount;
+	uint32_t									fOrdinal;
+	ObjectFile::UnwindInfo						fSingleUnwindInfo[1];
+	bool										fHasCompactUnwindInfo;
+};
 
 class ReferenceSorter
 {
@@ -274,40 +305,6 @@ public:
 
 LinkEditSegment LinkEditSegment::fgSingleton;
 
-class BaseAtom : public ObjectFile::Atom
-{
-public:
-												BaseAtom() : fStabsStartIndex(0), fStabsCount(0), fHasCompactUnwindInfo(false) {}
-
-	virtual void								setSize(uint64_t size) = 0;
-	virtual void								addReference(ObjectFile::Reference* ref) = 0;
-	virtual void								sortReferences() = 0;
-	virtual void								addLineInfo(const ObjectFile::LineInfo& info) = 0;
-	virtual const ObjectFile::ReaderOptions&	getOptions() const = 0;
-	virtual uint64_t							getObjectAddress() const = 0;
-	virtual uint32_t							getOrdinal() const { return fOrdinal; }
-	virtual void								setOrdinal(uint32_t value) { fOrdinal = value; }
-	virtual const void*							getSectionRecord() const = 0;
-	virtual unsigned int						getSectionIndex() const = 0;
-	virtual bool								isAlias() const { return false; }
-	virtual uint8_t								getLSDAReferenceKind() const { return 0; }
-	virtual uint8_t								getPersonalityReferenceKind() const { return 0; }
-	virtual uint32_t							getCompactUnwindEncoding(uint64_t ehAtomAddress) { return 0; }
-	virtual ObjectFile::UnwindInfo::iterator	beginUnwind()					{ return fHasCompactUnwindInfo ? &fSingleUnwindInfo[0] : NULL; }
-	virtual ObjectFile::UnwindInfo::iterator	endUnwind()						{ return fHasCompactUnwindInfo ? &fSingleUnwindInfo[1] : NULL; }
-	virtual ObjectFile::Reference*				getLSDA();
-	virtual ObjectFile::Reference*				getFDE();
-	virtual Atom*								getPersonalityPointer();
-	virtual void								setCompactUnwindEncoding(uint64_t ehAtomAddress);
-
-	uint32_t									fStabsStartIndex;
-	uint32_t									fStabsCount;
-	uint32_t									fOrdinal;
-	ObjectFile::UnwindInfo						fSingleUnwindInfo[1];
-	bool										fHasCompactUnwindInfo;
-};
-
-
 ObjectFile::Reference* BaseAtom::getLSDA()
 {
 	const uint8_t groupKind = this->getLSDAReferenceKind(); 
