<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=http://email.email.llvm.org/c/eJzNVtuO4zYM_RrnhbCRca5-yMPuZFMMegPaRdu3QLaYWDuy5OoySf6-pJyZZOe2BQoUCwiJZcrkIXlIsbbytLrLysUDgrFBNSghtCLAz6Jp819BawnSomchaBR0LLQIXnQIorPRBLA76IWUyuxBmSS1MfQxgOrEnk550HI-zcpbOLSqaaFDYTx422FQHWlWxgeh9daQzm2wVkMjDOyE0gX83pEE8Ci6XmM2-ZCN19n48bfkJU9a1UUzbM6C-fi80lYRxu1WhOBUHQNut1m5pPWgvKqVVuGU9qXEnYg60FNWVsOCHzD8Joy03S-xq9GlgxVki4-DZgCHIToD0zKbnN9li_WrKK4x4xHfRZyVE2UaHSVCNrn1QSpbtNnk07UmPAYky-zcqygvgJ6C0AllXrrQO5Lthhi4pAZM0kO215CVM5nNbk0Ky-0bpq6tvev-5xYNuDiwZGe1tgemTWO7jrR6srY82UhAT2CQmWghHFDcA-nJlT95Z21gneRC9PxpotYzXjwP5gwaLehs7lvhSGtuiTKemTX4WyQOQf6nJhfzazrS_tWjZ9LBEyYK6Kes3Hh5T7-daF6YtkRihPynAnJ9pQ_ynSM7B-vu4UPf_6jCV2_-2FCFSRGUNZBI828svqynvGkJBMKrvmTTMaluYhC1xm0vQksKi-LxZ_OIxtNmyH3xhPC5_FUDrIUsfJMW2CP1nYMKLXedS1K_g3RSUqLHnFGtGdv_nt03AXzXyUbnrKNEUl1vyH-tmuQsf_xXYyUWou_p-daagCbw6zU-oLY9d5bNZ_KGfFGX8-uhRRfHJjzKSBQ9n67T84twsPUUkOF6SlJgqQfrwHEEPN83dAMGqJFYKK3h3pRwn73hvkRvQLimVQEb6vkIx-V8y9daRZ81grIDWrg9tc3YU06Jl9oKeWlt0qYrdEccIG3c_3pn9xRP6KI_m9bK3KPkPkufwPNOyCbyFoVEgi0Z_mW37cRxe-2856b8dsXd7ZL6c80xGrbNV_mLG2qoSG7AQ0G9Z3M-Zl10KwXwsWkIuC-eFTrbdBaE9pYe_47KUSrO4wPPBGBJgwNJyIwkVgzFyfPCMJekyJ3PpxdPE8ownewxUEKJZLFD-ZVxnnK6lATP-QutotmDbEMd90CUA88NguP6hTNCM4ggF_pUKnAuKhpwamzFg7KugDs6ECJ5f2JlFD5F08NCci57hzt06UvKHMElL9maj0ymyWwym1bgRHKVvDAXjjKsYiRXE1lNKjESMbTWrZxHj_ej6PSqDaH33B3LDa09JSdS77IdV6R-ePzLKchfiKlcE2yVa4iszsajdiV3VX2zrKp60txU02q3vGnG08V4Nh_XWE3L5UiLGrVfZbOPdO0bPAzAeQSYrUf_HYFaleOSFv_clDdVIapxM72pqgbLRor5grtUx_Mf6yms24_cKqmkTHkSauWDvwiF92pPVZIAE8KggsYVt8mhd357fr1mMQwEfyLZeX4dJSdWyYN_AEvapKw>53550</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            lld/mac does not leave the same amount of install_name header padding as ld64
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

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

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

<pre>
    I've noticed that Mach-O lld does not leave the same amount of padding in the output image as ld64, which means sometimes install_name_tool can fail. Small example:

**dylib.c**
```
int __attribute__((visibility("default"))) GetRandomNumber() {
  return 42;
}
```

**exe.c**
```
#include <stdio.h>

extern int GetRandomNumber();

int main() {
  printf("random number = %d\n", GetRandomNumber());
}
```

Then run the following commands (you may need to tweak `-isysroot`) using ld64:

```
% clang -shared -olibsmallrandom.dylib -Wl,-install_name,libsmallrandom.dylib dylib.c -isysroot ~/sdk/mac
% clang -o exe -L. -lsmallrandom -framework AppKit -framework AVFoundation exe.c -isysroot ~/sdk/mac
% install_name_tool -change libsmallrandom.dylib @executable_path/../../Frameworks/Random.framework/Frameworks/libsmallrandom.dylib ./exe
```

Then repeat with lld:
```
% clang -shared -olibsmallrandom.dylib -Wl,-install_name,libsmallrandom.dylib dylib.c -isysroot ~/sdk/mac -fuse-ld=lld
% clang -o exe -L. -lsmallrandom -framework AppKit -framework AVFoundation exe.c -isysroot ~/sdk/mac -fuse-ld=lld
% install_name_tool -change libsmallrandom.dylib @executable_path/../../Frameworks/Random.framework/Frameworks/libsmallrandom.dylib ./exe
error: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/install_name_tool: changing install names or rpaths can't be redone for: ./exe (for architecture x86_64) because larger updated load commands do not fit (the program must be relinked, and you may need to use -headerpad or -headerpad_max_install_names)
```

If you repeat the link of **exe.c** with `-Wl,-headerpad_max_install_names` then it succeeds.

The repro also requires adding some other dependent dylibs so that the padding that lld does leave gets consumed.

I'm not sure this is a bug per se, or just an acceptable change in behavior. I actually think it'd be preferable to address issue #53549 rather than changing this.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzNVkuP4zYM_jXOhbDhOK_JIYfdyaYY9AW0i21vgSwxsXZky9Vjkvz7knJmkp3X9lQsICSWKZMfyY8Ua6tOq7usWjwgdDZoiQpCIwL8KmST_w7GKFAWPQvBoKBjoUHwokUQrY1dALuDXiiluz3oLkltDH0MoFuxp1MejJpPs-oWDo2WDbQoOg_ethh0S5p154MwZtuRzm2w1oAUHeyENgX82ZIE8Cja3mA2-ZCV66x8_K14qZPRdSGHzVkwL88rbTVh3G5FCE7XMeB2m1U3tB6017U2OpzSvlK4E9EEesqq5bDgJwx_iE7Z9rfY1ujSwSVki4-DZgCHIboOplU2Ob_LFutXUVxjxiO-izirJrqTJiqEbHLrg9K2aLLJp2tNeAxIltm5V1FeAD0FoRW6e-lC70i2G2Lgkhrokh6yvYasmqlsdtulsNy-Yera2rvuf26wAxcHluysMfbAtJG2bUmrJ2s3JxsJ6Ak6ZCZaCAcU90B6cu1P3lkbWCe5ED1_mqj1jBfPgzkDaQSdzX0jHGnNLVHGM7MGf4vEIcj_MuRifk1H2r969Ew6eMJEAf2UVRuv7um3FfKFaUskRsh_KSA3V_og3zmyc7DuHj70_c86fPPmy4YqTImgbQeJNP_F4st6ymVDIBBe9SWblqRaxiBqg9tehIYUFsXjz-YRjafNkPviCeFz-asGWAtZ-C4tsEfqOwcdGu46l6T-AOmkpESPOaNaM7b_PbtvAvihk43OWUeJpLrekP9Gy-Qsf_y3tAoL0ff0fGu7gF3g12t8QGN77iybz-QN-aIv59dDiy6OMjzKSBQ9n67T84twsPUUkOF6SlJgqQfrwHEEPN83dAMGqJFYqGzHvSnhPnvDfYnegHCy0QEl9XyE4818y9fakj6TgrIDRrg9tc3YU06Jl8YKdWltyqYrdEccIG3c_3pn9xRPaKM_mza6u0fFfZY-geedkE3kDQqFBFsx_Mtu24rj9tp5z0357Yq72yX155pjNGybr_IXN9RQkdyAh4J6z-a8ZF10KwXwUUoC7otnhc42nQVhvKXHf6J2lIrz-MAzAVjS4EARsk4RK4bi5HlhmEtS5M7n04unCWWYTvYYKKFEstii-sY4TzltSoLn_IVG0-xBtqGOeyDKgecGwXH9yhmhGUSQC30qFTgXFQ04NTbiQVtXwB0dCJG8P7EyCp-m6WGhOJe9wx269CVljuCSl2zNRybTZDaZTZfgRHKVvOguHGVYxUitJmo5WYpR0MHgikt-6APfn8WuMwJDsp4Cdp7FRtGZVRNC77nLVhtae0pypB5oW65s8_D4l1OyvhLjubYYPdcioZ-Vo2aFU6wrHONCjseLcleVMzmbTW9qKUpRzqdyZESNxq-y2UcaHzo8DAHgUWK2HulVVVa0-GdcjZeFWJZyOl4uJVZSifmCe1XLUyDjKKzbj9wqQaJ8eRIa7YO_CIX3ek-1ksyRfhFDY93KefR4P0qWVwn5v1mBj9A">