[132142] trunk/dports/devel/ld64

jeremyhu at macports.org jeremyhu at macports.org
Sat Jan 24 01:45:41 PST 2015


Revision: 132142
          https://trac.macports.org/changeset/132142
Author:   jeremyhu at macports.org
Date:     2015-01-24 01:45:41 -0800 (Sat, 24 Jan 2015)
Log Message:
-----------
ld64: Refactor into a primary port with subports for each available version

Modified Paths:
--------------
    trunk/dports/devel/ld64/Portfile

Added Paths:
-----------
    trunk/dports/devel/ld64/files/ld64-97-BaseAtomImplicitDecl.patch

Modified: trunk/dports/devel/ld64/Portfile
===================================================================
--- trunk/dports/devel/ld64/Portfile	2015-01-24 05:39:15 UTC (rev 132141)
+++ trunk/dports/devel/ld64/Portfile	2015-01-24 09:45:41 UTC (rev 132142)
@@ -3,206 +3,279 @@
 PortSystem              1.0
 
 name                    ld64
-epoch                   1
-# XCode 5.1
-version                 236.3
-revision                2
+epoch                   2
+version                 1
 categories              devel
 platforms               darwin
 maintainers             jeremyhu
 homepage                http://opensource.apple.com/source/${name}/
 master_sites            http://opensource.apple.com/tarballs/${name}/
 license                 APSL-2
-depends_build           path:include/mach-o/dyld_priv.h:dyld-headers \
-                        path:include/mach-o/arm/reloc.h:libmacho-headers
 description             ld64 is the new mach-o linker
 long_description        ld64 combines several object files and libraries, \
                         resolves references, and produces an ouput file.
 
-checksums               rmd160  6a3f44aa9ae57a60d2cff5b3d47be7972ad83029 \
-                        sha256  8ef36729b643201081ab45ebd8586ede8f9968bc17614b679a940faa82875ca6
-
-patchfiles              ld64-version.patch ld64-133-no-CrashReporterClient.h.patch ld64-134-missing-include.patch ld64-136-i386-badAddress.patch PR-16935960.patch PR-16936488.patch
-
-# We don't set llvmXX as the default variant on Tiger because it would introduce a
-# dependency cycle as llvm requires apple-gcc42 and ld64 to build correctly.  Users
-# wanting LTO support in ld64 on Tiger can install the +llvm variant after llvm
-# has been installed.
-if {![variant_isset llvm33] && ![variant_isset llvm34] && ![variant_isset llvm35] && ![variant_isset llvm36] && ![variant_isset llvm37]} {
-    if {${os.major} >= 13} {
-        default_variants +llvm35
-    } elseif {${os.major} >= 9} {
-        default_variants +llvm34
-    }
-
-    if {![variant_isset llvm34] && ![variant_isset llvm35] && ![variant_isset llvm36] && ![variant_isset llvm37] && ${os.major} >= 9} {
-        ui_error "Your platform cannot be configured without LTO support in ld64.  Please enable one of the llvmXX variants, and try again."
-        return -code error "Your platform cannot be configured without LTO support in ld64.  Please enable one of the llvmXX variants, and try again."
-    }
-}
-
-variant universal {}
-
-set llvm_version {}
-variant llvm33 conflicts llvm34 llvm35 llvm36 llvm37 description {Use llvm-3.3 for libLTO} {
-    set llvm_version        3.3
-    depends_lib-append      port:llvm-${llvm_version}
-}
-
-variant llvm34 conflicts llvm33 llvm35 llvm36 llvm37 description {Use llvm-3.4 for libLTO} {
-    set llvm_version        3.4
-    depends_lib-append      port:llvm-${llvm_version}
-}
-
-variant llvm35 conflicts llvm33 llvm34 llvm36 llvm37 description {Use llvm-3.5 for libLTO} {
-    set llvm_version        3.5
-    depends_lib-append      port:llvm-${llvm_version}
-}
-
-variant llvm36 conflicts llvm33 llvm34 llvm35 llvm37 description {Use llvm-3.6 for libLTO} {
-    set llvm_version        3.6
-    depends_lib-append      port:llvm-${llvm_version}
-}
-
-variant llvm37 conflicts llvm33 llvm34 llvm35 llvm36 description {Use llvm-3.7 for libLTO} {
-    set llvm_version        3.7
-    depends_lib-append      port:llvm-${llvm_version}
-}
-
-set makefile "Makefile-133"
-
-set cxx_stdlibflags {}
-if {[string match *clang* ${configure.cxx}]} {
-    set cxx_stdlibflags -stdlib=${configure.cxx_stdlib}
-}
-
-if {${os.major} < 10} {
-    # Leopard and earlier didn't have libunwind.h in the SDK
-    depends_build-append    path:include/libunwind.h:libunwind-headers
-}
-
-if {${os.major} < 9} {
+subport ld64-97 {
     # XCode 3.2.6
     version             97.17
-    revision            4
+
     checksums           rmd160  d52df7d7f741c8bedd29cbac73dbb9db992b4795 \
                         sha256  02bd46af0809eaa415d096d7d41c3e8e7d80f7d8d181840866fb87f036b4e089
 
     set makefile	"Makefile-97"
+    set ld64_ver        97
 
-    patchfiles-delete   ld64-133-no-CrashReporterClient.h.patch ld64-134-missing-include.patch ld64-136-i386-badAddress.patch PR-16935960.patch PR-16936488.patch
-    patchfiles-append   ld64-97-no-LTO.patch ld64-97-ppc-branch-island.patch ld64-97-arm_types_PR38931.patch ld64-97-long-branch-warn.patch ld64-97-standalone-libunwind-headers.patch ld64-97-no-Availability.h.patch
-} elseif {${os.major} < 10 || "ppc" in [get_canonical_archs]} {
+    patchfiles \
+        ld64-version.patch \
+        ld64-97-no-LTO.patch \
+        ld64-97-ppc-branch-island.patch \
+        ld64-97-arm_types_PR38931.patch \
+        ld64-97-long-branch-warn.patch \
+        ld64-97-standalone-libunwind-headers.patch \
+        ld64-97-no-Availability.h.patch \
+        ld64-97-BaseAtomImplicitDecl.patch
+}
+
+subport ld64-127 {
     # XCode 4.2
     # This was the last ld64 release that supported linking ppc executables.
     version             127.2
-    revision            9
+
     checksums           rmd160  8ee709341549a1944732daef6ebab7ef1acfcc6e \
                         sha256  97b75547b2bd761306ab3e15ae297f01e7ab9760b922bc657f4ef72e4e052142
 
     set makefile	"Makefile-127"
+    set ld64_ver        127
 
-    patchfiles-delete   ld64-133-no-CrashReporterClient.h.patch ld64-136-i386-badAddress.patch PR-16935960.patch PR-16936488.patch
-    patchfiles-append   ld64-127-any-cctools.patch ld64-127-long-branch-warn.patch ld64-127-cxx_initializer_order_and_sim.patch ld64-127-ppc.patch ld64-97-no-Availability.h.patch
-} elseif {${os.major} < 11} {
+    patchfiles-append \
+        ld64-version.patch \
+        ld64-134-missing-include.patch \
+        ld64-127-any-cctools.patch \
+        ld64-127-long-branch-warn.patch \
+        ld64-127-cxx_initializer_order_and_sim.patch \
+        ld64-127-ppc.patch \
+        ld64-97-no-Availability.h.patch
+}
+
+subport ld64-136 {
     # XCode 4.6
-    # Until we figure out a way to better bootstrap ld64-236 on SnowLeopard or fix its build failure
     version             136
-    revision            3
+
     checksums           rmd160  4a2930ccdd398b63a108810e90293ab96dc154a0 \
                         sha256  99d6c4acb6d4cdf45772951dd2308222aa966763170137459a9d276674645d9e
  
-    patchfiles-delete   PR-16935960.patch PR-16936488.patch
-    patchfiles-append   ld64-136-hash_set.patch
-} else {
+    set makefile        "Makefile-133"
+    set ld64_ver        136
+
+    patchfiles-append \
+        ld64-version.patch \
+        ld64-133-no-CrashReporterClient.h.patch \
+        ld64-134-missing-include.patch \
+        ld64-136-i386-badAddress.patch \
+        ld64-136-hash_set.patch
+}
+
+subport ld64-latest {
+    # XCode 5.1
+    version             236.3
+
+    checksums           rmd160  6a3f44aa9ae57a60d2cff5b3d47be7972ad83029 \
+                        sha256  8ef36729b643201081ab45ebd8586ede8f9968bc17614b679a940faa82875ca6
+
     # http://trac.macports.org/ticket/43737
     compiler.blacklist-append *gcc*
 
+    set makefile        "Makefile-133"
+    set ld64_ver        latest
+
+    patchfiles-append \
+        ld64-version.patch \
+        ld64-133-no-CrashReporterClient.h.patch \
+        ld64-134-missing-include.patch \
+        ld64-136-i386-badAddress.patch \
+        PR-16935960.patch \
+        PR-16936488.patch
+
     if {${configure.cxx_stdlib} eq "libstdc++"} {
         patchfiles-append   ld64-236-hash_set.patch
     }
 }
 
-platform darwin 8 {
+variant universal {}
+
+if {${subport} eq ${name}} {
+    distfiles
+    build {}
+    use_configure no
+
+    if {${os.major} < 9} {
+        set ld64_ver 97
+    } elseif {${os.major} < 10 || "ppc" in [get_canonical_archs]} {
+        set ld64_ver 127
+    } elseif {${os.major} < 11} {
+        set ld64_ver 136
+    } else {
+        set ld64_ver latest
+    }
+
+    depends_run         port:ld64-${ld64_ver}
+
+    destroot {
+        ln -s dyldinfo-${ld64_ver} ${destroot}${prefix}/bin/dyldinfo
+        ln -s ld-${ld64_ver} ${destroot}${prefix}/bin/ld
+        ln -s machocheck-${ld64_ver} ${destroot}${prefix}/bin/machocheck
+        ln -s ObjectDump-${ld64_ver} ${destroot}${prefix}/bin/ObjectDump
+        ln -s rebase-${ld64_ver} ${destroot}${prefix}/bin/rebase
+        ln -s unwinddump-${ld64_ver} ${destroot}${prefix}/bin/unwinddump
+
+        file mkdir ${destroot}${prefix}/libexec/ld64
+        ln -s ld-${ld64_ver} ${destroot}${prefix}/libexec/ld64/ld
+    }
+} else {
+    depends_build       path:include/mach-o/dyld_priv.h:dyld-headers \
+                        path:include/mach-o/arm/reloc.h:libmacho-headers
+
+    # We don't set llvmXX as the default variant on Tiger because it would introduce a
+    # dependency cycle as llvm requires apple-gcc42 and ld64 to build correctly.  Users
+    # wanting LTO support in ld64 on Tiger can install the +llvm variant after llvm
+    # has been installed.
+
+    if {![variant_isset llvm33] && ![variant_isset llvm34] && ![variant_isset llvm35] && ![variant_isset llvm36] && ![variant_isset llvm37]} {
+        if {${os.major} >= 13} {
+            default_variants +llvm35
+        } elseif {${os.major} >= 9} {
+            default_variants +llvm34
+        }
+
+        if {![variant_isset llvm34] && ![variant_isset llvm35] && ![variant_isset llvm36] && ![variant_isset llvm37] && ${os.major} >= 9} {
+            ui_error "Your platform cannot be configured without LTO support in ld64.  Please enable one of the llvmXX variants, and try again."
+            return -code error "Your platform cannot be configured without LTO support in ld64.  Please enable one of the llvmXX variants, and try again."
+        }
+    }
+
+    set llvm_version {}
+    variant llvm33 conflicts llvm34 llvm35 llvm36 llvm37 description {Use llvm-3.3 for libLTO} {
+        set llvm_version        3.3
+        depends_lib-append      port:llvm-${llvm_version}
+    }
+
+    variant llvm34 conflicts llvm33 llvm35 llvm36 llvm37 description {Use llvm-3.4 for libLTO} {
+        set llvm_version        3.4
+        depends_lib-append      port:llvm-${llvm_version}
+    }
+
+    variant llvm35 conflicts llvm33 llvm34 llvm36 llvm37 description {Use llvm-3.5 for libLTO} {
+        set llvm_version        3.5
+        depends_lib-append      port:llvm-${llvm_version}
+    }
+
+    variant llvm36 conflicts llvm33 llvm34 llvm35 llvm37 description {Use llvm-3.6 for libLTO} {
+        set llvm_version        3.6
+        depends_lib-append      port:llvm-${llvm_version}
+    }
+
+    variant llvm37 conflicts llvm33 llvm34 llvm35 llvm36 description {Use llvm-3.7 for libLTO} {
+        set llvm_version        3.7
+        depends_lib-append      port:llvm-${llvm_version}
+    }
+
+    if {${os.major} < 10} {
+        # Leopard and earlier didn't have libunwind.h in the SDK
+        depends_build-append    path:include/libunwind.h:libunwind-headers
+    }
+
+    compiler.blacklist-append gcc-4.0
+
     pre-fetch {
-        if {${llvm_version} != ""} {
-            if {![file exists ${prefix}/bin/llvm-config-mp-${llvm_version}]} {
-                ui_error "You must first install ld64 without llvm support to build llvm.  After llvm is installed, you can reinstall ld64 with the llvm variant."
-                return -code error "You must first install ld64 without llvm support to build llvm.  After llvm is installed, you can reinstall ld64 with the llvm variant."
+        if {${os.major} < 9} {
+            if {${llvm_version} != ""} {
+                if {![file exists ${prefix}/bin/llvm-config-mp-${llvm_version}]} {
+                    ui_error "You must first install ld64 without llvm support to build llvm.  After llvm is installed, you can reinstall ld64 with the llvm variant."
+                    return -code error "You must first install ld64 without llvm support to build llvm.  After llvm is installed, you can reinstall ld64 with the llvm variant."
+                }
             }
         }
     }
 
+    post-extract {
+        file copy ${filespath}/${makefile} ${worksrcpath}/Makefile
+    }
+
     post-patch {
-        reinplace "s:-Wl,-exported_symbol,__mh_execute_header::g" \
-            ${worksrcpath}/Makefile
+        reinplace "s|@@VERSION@@|${version}|g" \
+            ${worksrcpath}/src/ld/Options.cpp
 
-        foreach reg {cr ctr eax ebp ebx ecx edi edx eip esi esp lr mq r0 r1 r10 r11 r12 r13 r14 r15 r16 r17 r18 r19 r2 r20 r21 r22 r23 r24 r25 r26 r27 r28 r29 r3 r30 r31 r4 r5 r6 r7 r8 r9 rax rbp rbx rcx rdi rdx rip rsi rsp srr0 srr1 vrsave xer} {
-            reinplace "s|__${reg}|${reg}|g" ${worksrcpath}/src/ld/parsers/libunwind/Registers.hpp
+        if {${os.major} < 9} {
+            # No CommonCrypto, use openssl
+            reinplace "s:<CommonCrypto/CommonDigest.h>:<openssl/md5.h>:" \
+                ${worksrcpath}/src/ld/MachOWriterExecutable.hpp
+            reinplace "s:CC_MD5:MD5:" \
+                ${worksrcpath}/src/ld/MachOWriterExecutable.hpp
+
+            reinplace "s:-Wl,-exported_symbol,__mh_execute_header::g" \
+                ${worksrcpath}/Makefile
+
+            foreach reg {cr ctr eax ebp ebx ecx edi edx eip esi esp lr mq r0 r1 r10 r11 r12 r13 r14 r15 r16 r17 r18 r19 r2 r20 r21 r22 r23 r24 r25 r26 r27 r28 r29 r3 r30 r31 r4 r5 r6 r7 r8 r9 rax rbp rbx rcx rdi rdx rip rsi rsp srr0 srr1 vrsave xer} {
+                reinplace "s|__${reg}|${reg}|g" ${worksrcpath}/src/ld/parsers/libunwind/Registers.hpp
+            }
         }
     }
-}
 
-compiler.blacklist-append gcc-4.0
+    configure {
+        system "cd ${worksrcpath} && ${build.cmd} src/ld/configure.h"
+    }
 
-post-extract {
-    file copy ${filespath}/${makefile} ${worksrcpath}/Makefile
-}
+    set cxx_stdlibflags {}
+    if {[string match *clang* ${configure.cxx}]} {
+        set cxx_stdlibflags -stdlib=${configure.cxx_stdlib}
+    }
 
-post-patch {
-    reinplace "s|@@VERSION@@|${version}|g" \
-        ${worksrcpath}/src/ld/Options.cpp
+    build.args \
+        CC="${configure.cc}" \
+        CXX="${configure.cxx}" \
+        OTHER_CPPFLAGS="${configure.cppflags}" \
+        OTHER_CFLAGS="${configure.cflags} [get_canonical_archflags cc]" \
+        OTHER_CXXFLAGS="${configure.cxxflags} ${cxx_stdlibflags} [get_canonical_archflags cxx]" \
+        OTHER_LDFLAGS="${configure.ldflags} ${cxx_stdlibflags} [get_canonical_archflags ld]"
 
-    if {${os.major} < 9} {
-        # No CommonCrypto, use openssl
-        reinplace "s:<CommonCrypto/CommonDigest.h>:<openssl/md5.h>:" \
-            ${worksrcpath}/src/ld/MachOWriterExecutable.hpp
-        reinplace "s:CC_MD5:MD5:" \
-            ${worksrcpath}/src/ld/MachOWriterExecutable.hpp
-    } 
-}
+    if {${os.major} >= 11} {
+        build.args-append \
+            RC_SUPPORTED_ARCHS="armv6 armv7 i386 x86_64"
+    }
 
-configure {
-    system "cd ${worksrcpath} && ${build.cmd} src/ld/configure.h"
-}
+    destroot.args \
+        PREFIX=${prefix}
 
-build.args \
-    CC="${configure.cc}" \
-    CXX="${configure.cxx}" \
-    OTHER_CPPFLAGS="${configure.cppflags}" \
-    OTHER_CFLAGS="${configure.cflags} [get_canonical_archflags cc]" \
-    OTHER_CXXFLAGS="${configure.cxxflags} ${cxx_stdlibflags} [get_canonical_archflags cxx]" \
-    OTHER_LDFLAGS="${configure.ldflags} ${cxx_stdlibflags} [get_canonical_archflags ld]"
+    pre-build {
+        if {${llvm_version} != ""} {
+            build.args-append LLVM_CONFIG=${prefix}/bin/llvm-config-mp-${llvm_version}
+        }
 
-if {${os.major} >= 11} {
-    build.args-append \
-        RC_SUPPORTED_ARCHS="armv6 armv7 i386 x86_64"
-}
+        if {${os.major} < 9} {
+            build.args-append OTHER_LDFLAGS_LD64=-lcrypto
+        }
+    }
 
-destroot.args \
-    PREFIX=${prefix}
+    post-destroot {
+        # ${prefix}/bin/ld will always use the llvm we built against
+        # ${prefix}/libexec/ld64/ld uses relative linking for use with the llvm ports
+        file mkdir ${destroot}${prefix}/libexec/ld64
+        file copy ${destroot}${prefix}/bin/ld ${destroot}${prefix}/libexec/ld64/ld-${ld64_ver}
 
-pre-build {
-    if {${llvm_version} != ""} {
-        build.args-append LLVM_CONFIG=${prefix}/bin/llvm-config-mp-${llvm_version}
-    }
+        file rename ${destroot}${prefix}/bin/dyldinfo ${destroot}${prefix}/bin/dyldinfo-${ld64_ver}
+        file rename ${destroot}${prefix}/bin/ld ${destroot}${prefix}/bin/ld-${ld64_ver}
+        file rename ${destroot}${prefix}/bin/machocheck ${destroot}${prefix}/bin/machocheck-${ld64_ver}
+        file rename ${destroot}${prefix}/bin/ObjectDump ${destroot}${prefix}/bin/ObjectDump-${ld64_ver}
+        file rename ${destroot}${prefix}/bin/rebase ${destroot}${prefix}/bin/rebase-${ld64_ver}
+        file rename ${destroot}${prefix}/bin/unwinddump ${destroot}${prefix}/bin/unwinddump-${ld64_ver}
 
-    if {${os.major} < 9} {
-        build.args-append OTHER_LDFLAGS_LD64=-lcrypto
-    }    
-}
+        eval delete [glob ${destroot}${prefix}/share/man/man1/*]
 
-post-destroot {
-    # ${prefix}/bin/ld will always use the llvm we built against
-    # ${prefix}/libexec/ld64/ld uses relative linking for use with the llvm ports
-    file mkdir ${destroot}${prefix}/libexec/ld64
-    file copy ${destroot}${prefix}/bin/ld ${destroot}${prefix}/libexec/ld64/ld
-
-    if {${llvm_version} != ""} {
-        system "install_name_tool -change ${prefix}/libexec/llvm-${llvm_version}/lib/libLTO.dylib \
-                @executable_path/../lib/libLTO.dylib ${destroot}${prefix}/libexec/ld64/ld"
+        if {${llvm_version} != ""} {
+            system "install_name_tool -change ${prefix}/libexec/llvm-${llvm_version}/lib/libLTO.dylib \
+                    @executable_path/../lib/libLTO.dylib ${destroot}${prefix}/libexec/ld64/ld-${ld64_ver}"
+        }
     }
 }
 
-livecheck.type          regex
-livecheck.regex         "${name}-(\[\\d.\]+)"
+livecheck.type          none

Added: trunk/dports/devel/ld64/files/ld64-97-BaseAtomImplicitDecl.patch
===================================================================
--- trunk/dports/devel/ld64/files/ld64-97-BaseAtomImplicitDecl.patch	                        (rev 0)
+++ trunk/dports/devel/ld64/files/ld64-97-BaseAtomImplicitDecl.patch	2015-01-24 09:45:41 UTC (rev 132142)
@@ -0,0 +1,82 @@
+--- 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(); 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.macosforge.org/pipermail/macports-changes/attachments/20150124/c7c08d94/attachment-0001.html>


More information about the macports-changes mailing list