<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=http://email.email.llvm.org/c/eJytVU1z2zYQ_TXUZYcchdTnQQdbtqZum3pqJWcNSC5FxCChAUAr-vd9AJSxpCbNIZ2hRGJ3sfuwHw-lrk-rre5Y90yOrZP9npSqyfBBG8c1uVZaktYO0GvqOMnXkAmX5HNLgkrp6MjS1F5eDg6mPVSORH_edZSuJVXPJt7Canqio-iDZ02NVEyNNvQmrSylku6UJeOHZHwX_58aOumBWvHG3qEwVSvxGbYFv_VwULISjkmXX7hyQQW8CO58PO-bv4rugA2VYeHjho3JbCwMmcqSkuVG60zAVmc6_kNLSb6AymmtANj0lo4t91RrnyGfFO8-ePHGtUbUXiPm0st9BhshlY3BxAVOe-pKuGRjtPGm8Go45IfkvtfGo3cZPSGDhwMLY0O2o0HN8GOpFBbH0D00HBa96Nif2a_POcpoe-BKNgiq1ClW0df3EpZH6UsG3LFAxd1l8nGu-NjzOi_o5fHvz08vj1uY0tfF7ELx-S8vMx2lpkHupi4p7sni1C4N5YLIRvntHqXeurSrKNi504GT4gHVpNQZibphhUi72SRFQhSntTBHnDW4yjcwzCyl-nKt_98QnZD9VYwg-EGQc1OdLX3G0VmX2P4bKJS-KleBbpxd46D0ufyyvirbDaK-u7JP5mvaIAvrlqvXUJX3bevfHtd_-I2faPd8__t6t_7zbrvdJflk9_H0HAbs-8be8w2GNE0pFCdKsr3SpfqJ2x9qbxozeo91uXb_DiR-fttIIDR309bfIRpR136mU8zMTmlR-9EGTfm5kv2bxgBLjF2YRaHAZWGYrhjrhYWSoNE4dk-gwi7Mlx0w5bIBV5Jt9YAaV63o9xxnmMFwElTlucCTAkjVMneenF45Dm8VNikWgThtJcwpEqw9U0gtmwbvvoKkZHdksNUVKQoYWVB9q49nqvGNthDKAdC-BTF7no3srbR-hVr2iBWO62NyOAGwBbYT_QnAQIa2E8YFpo33wvLbVRBPXw1G6sGjBI1pHDdQmuxfk2IzqldFvSyWYiQGoDCrVwYxjQajVq1zB-vrl2_w7CEeyqzSHRa-rc-v9GB06JB8E5OBj2mRL8ajdjVv5vPJtOSxqGd5XheTcjYriqKqed4U02o5UqJkZVfJ9D7Jc4wdon0UVfuMVTJ9GP06BrnKx3k-_vBhiV8-nmTFnBdVJRYiz4u6KRfJZMzoU5V5P5k2-5FZBZflsLdQ-lay70phLQrHHCADoZNOhQXApx2ga0gDrbPYs0ED-ia2_7olwwV5vijsKIBeBcT_ANYei8o>53280</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            [lld-macho] lld eagerly loads duplicate objects in archives
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            lld:MachO
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          keith
      </td>
    </tr>
</table>

<pre>
    Someone testing lld reported this issue to me, that's a bit weird, but isn't an issue with ld64, so I wanted to file for visibility.

If you have an archive file with duplicate object files in it, for example created with `ar rcs libFoo.a foo.o foo.o` (libtool warns when doing this, `ar` does not), lld fails with a duplicate symbol error, where ld64 ignores it. It appears that ld64 dedups based on the basename in the archive. Specifically this test fails with lld but not ld64:

```s
# REQUIRES: x86
# RUN: rm -rf %t; split-file %s %t
# RUN: llvm-mc -filetype=obj -triple=x86_64-apple-darwin %t/obj.s -o %t/obj.o
# RUN: llvm-mc -filetype=obj -triple=x86_64-apple-darwin %t/main.s -o %t/main.o
# RUN: llvm-ar rcs %t/test.a %t/obj.o %t/obj.o
# RUN: %lld %t/main.o %t/test.a -o %t/main -ObjC

# RUN: llvm-nm %t/main | FileCheck %s
# CHECK: T _OBJC_CLASS_$_MyObject
# CHECK: T _main

#--- obj.s
.globl _OBJC_CLASS_$_MyObject
_OBJC_CLASS_$_MyObject:

#--- main.s
.globl _main
_main:
  ret
```

If you add `-all_load` to the invocation ld64 also fails.

Realistically I'm not sure if we should change the behavior here, it seems like this could lead to scary issues where differences between object files are somehow ignored (although I haven't looked into ld64 to see if it does anything smart for that), but I'm curious what others think?
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJytVU1z4jgQ_TXmorKL2HweOCQk1DKzs6lNds6UbLexJrJFSXIY_v2-lpgKsDO7l60CbHW3ul9_PUpTn1avpiPTk_DkvOr3QutaWDoY66kWvlVOKOcG6I3oKMnXkEmf5HMnpCiVF0dStmZ5OXiY9lB5IfvzraPyrdD1bMIWzoitOMo-eDaiUZpEY6x4V06VSit_ypLxYzK-j7_bRpzMIFr5TuxQ2qpVeA3Xgt96OGhVSU_ClN-o8kEFvAjuOR77pu-yO-BCZUly3HAxmY2lFbZyQqtyY0wmYWsyE3-hFUm-gMobowHY9k4cW-pFbbhCXBR2H7ywcW0QtTeIuWQ5V7CRSrsYTF7gdKeuhEuy1lg2hVdLoT5C7XtjGb3PxBYVPBxIWheqHQ1qgh8nSumQhumhoXDoZUecM5_PNcrE64Eq1SCo1qfYRe7vJSxGyS0D7tig4v6y-Mgrftz5nBfi5enPr9uXp1eYiu-L2YXi6x8ss51IbYPaTX1SPAiHrH0a2gWRi_LbO1q_d2lXiWDnTwdKikd0U6TeKvQNJ0TazSYpCqIpraU9ItfgKt_AMHMiNZdn8_-G6KTqr2IEwS-CnIfqbMkVx2RdYvt3oFByV64C3Ti7xiHS5_Lb-qptN4j67so-ma_FBlVYt1S9ha58XFv_9rT-zBf_Ervnh0_r3fr3-9fXXZJPdl9Oz2HBfm7Mnm8wpGkqQnOiJNtrU-r_cPtL7c1gRu-xL9fuP4DE1x8XBQjN34z1T4hG1jXvdIqd2Wkja15t0BTvlerfDRZYYe3CLkoNLgvLdMVYLyS1Ao3GtduCCruwX27AlqsGXClcawb0uGplv6e4wwSGU6Aq5gImBZCqI-qYnN4oLm8VLmmSgThdJe0pEqw7U0itmgbPvoKkJH8ksNUVKUoYOVB9a45nquFBW0jtAWjfgpiZZyN7a2PeoFY9YoV0OSaFDIAtsJ3sTwAGMnSdtD4wbfxfWP74K4jZV4NVZmCUoDGDdAOlqf4tKTajelXUy2IpR155Tatk-oDxTztZtSaZPgaGIrkni1pyP9w_CD9w_Znz3GiwetV6f3Dc-HyDzx5EN5RZZToceB_Oj_RgTRitfBOriJdpkS_Go3ZVLPOyKakc19PpjO6qZt5MIZjMZ5DXi-lIy5K0Y7RJngMjon0B5GecgHqkVvk4z8d3d0t88_EkK-a0qCq5kHle1E25SCZjwnjqjJFkxu5HdhVAlcPeQckT5D6U0jn0i0J52L8c0DG7eiPkNgroVwH6377Xdxo">