LazyPointerAtom(ld::passes::stubs::Pass& pass, const ld::Atom& stubTo,
                 bool forLazyDylib, bool for64, bool weakImport)
     : ld::Atom( forLazyDylib ? _s_sectionLazy : _s_section,
                 ld::Atom::definitionRegular, ld::Atom::combineNever,
                 ld::Atom::scopeTranslationUnit,
                 forLazyDylib ? ld::Atom::typeLazyDylibPointer : ld::Atom::typeLazyPointer,
                 symbolTableNotIn, false, false, false, for64 ? ld::Atom::Alignment(3) : ld::Atom::Alignment(2)),
       _stubTo(stubTo),
       _fixup1(0, ld::Fixup::k1of1,
               for64 ? ld::Fixup::kindStoreTargetAddressBigEndian64 : ld::Fixup::kindStoreTargetAddressBigEndian32,
               forLazyDylib ? pass.internal()->lazyBindingHelper : pass.internal()->classicBindingHelper),
       _fixup2(0, ld::Fixup::k1of1, ld::Fixup::kindLazyTarget, &stubTo),
       _for64(for64)
 {
     _fixup2.weakImport = weakImport;
     pass.addAtom(*this);
 }
Beispiel #2
0
											FastBindingPointerAtom(ld::passes::stubs::Pass& pass)
				: ld::Atom(_s_section, ld::Atom::definitionRegular, ld::Atom::combineNever,
							ld::Atom::scopeLinkageUnit, ld::Atom::typeNonLazyPointer, 
							symbolTableNotIn, false, false, false, ld::Atom::Alignment(2)), 
				_fixup(0, ld::Fixup::k1of1, ld::Fixup::kindStoreTargetAddressLittleEndian32, pass.internal()->compressedFastBinderProxy)
					{ pass.addAtom(*this); }