<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/124957>124957</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            [libc][hdrgen] macro_name/macro_value duplicates defines from libc/include/llvm-libc-macros/*-macros.h
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            libc
      </td>
    </tr>

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

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

<pre>
    I just noticed that our generated dlfcn.h has:
```c
#include "llvm-libc-macros/dlfcn-macros.h"
#define RTLD_LAZY
```
and my editor was warning me about `RTLD_LAZY` (and friends being redefined).  I noticed because building llvm against our headers was producing `error: expecting expression` in llvm/ code that used these preprocessor defines.

libc/include/dlfcn.yaml uses macro_name+macro_value to define these, but then we ALSO have them listed in libc/include/llvm-libc-macros/dlfcn-macros.h.

If we were just going to define them in one, but not the other, which would we choose?

I _think_ we should just stick with libc/include/llvm-libc-macros/dlfcn-macros.h.  I don't see currently what the point of macro_value/macro_name _is_.  We could do something fancy with generating special values at build time, but FWICT we're not doing that at all right now.

Did I miss something, or should we just drop the macro_name/macro_value feature from hdrgen and hard code these `#define`s in the corresponding libc/include/llvm-libc-macros/*-macros.h?

cc @michaelrj-google @frobtech 
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJycVEtr7DgT_TXqTZFGVsf9WHjRuaEhEPjgmwuXmU0jS2VLiSwZPeKbfz-U7U4yA8M8wBvJqlOnzqkqmZLtPWLD6gdWP25kySbExlv1qjHJ4rzFmDZt0O_NE7yUlMGHbBVqyEZmCCVCjx6jzKhBu075rQEjE9udGT-zPV8-RQexs165ohGYEM69DXfOtupukCqGxMRlDl-PW8OEWII0dtYj_P_78-P1-fzbr19xGT9Lr2F4B9Q2hwiTTDDJ6K3vYUCQbSgZ2J5_Ru85MHGkqC5a9DpBi_Q64pJIM3HaAjx9FNqikiUhtMU6TS-JOsheWp8WBQxKjTHNyccYdFH0jO05xhgi250Bf46oMt3izzFiSjZ4YmL9jMbEBVTQuIha0iwvJoQx4hiDwpRChIVf2pIA_EzaMXFZJb3Jt32XgyOEBLOQVy8HZOJhObxJVxByWKGWJEx8g7ZkOniYEM7Pv_wPjHybfw_gbCJviemfM_6thyvVp45wJ4y4tFAfSIk_0BgoQfAfZHyYCUHIBiNdTsYqA1MoThOYMiEkZLvLmgGu2Vj_eqV_ycyv5lQpW_UKk83mv9CnNtDBM3HIkBBBlRjRZ_cOExlFBMdgfYbQwReFmbh8ig9Xm65bgB8IaualA6QwIPHtoZNevS_81jmi2zSistLBjJZA5qX5INvhQ6HLj6dv32FCJg4RZ730Iisxo885iLY3pOW0GvFoNTzBYFP6pEB4Id5Em1aLdAzjXN_XLrp87aIOZS4RoYthAKNjjx5oqoyM-tbM1MI0pbchZnueyGgCViFGTGPwy0z9A3OYOH9uh5vzSgG754NVRqKLL3d9CL1DuutiaDMqAxvd7PRpd5IbbKrD7lgdKn6635im0qI6qFZgzbtdp4-nExeSc8m7Pa87fdzYRnBR80qcqkN1rKrtDo_1XnKNXb0Xu7Zj9xwHad2W6G5D7Dc2pYJNJe5P9WHjZIsuzctViKVEQWs2NnN5bekTu-c0YekTIdvs5oU8B9SPrH5Y5GX141_bocvorJIZ021PLM78W2E3JbrG5DzOK5z-XXqbTWm3Kgxr-A1ljOEFVSZ4qpqg1sLfGvF7AAAA__8CESdv">