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

    <tr>
        <th>Summary</th>
        <td>
            [libc] clean up duplicated includes in generated headers
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            good first issue,
            libc
      </td>
    </tr>

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

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

<pre>
    After doing a full build, the generated wchar.h header has:
```c
#include "__llvm-libc-common.h"
#include "llvm-libc-macros/wchar-macros.h"
#include "llvm-libc-types/wint_t.h"
#include "llvm-libc-types/mbstate_t.h"

#include <llvm-libc-types/mbstate_t.h>
#include <llvm-libc-types/size_t.h>
#include <llvm-libc-types/wchar_t.h>
#include <llvm-libc-types/wint_t.h>
```
This is because we list the dependencies in libc/include/wchar.h.def AND libc/include/wchar.yaml. With the move to newhdrgen, we no longer need to list these includes manually in libc/include/*.h.def files; we should encode these in libc/include/*.yaml instead.

At the very least, libc/include/wchar.h.def should be cleaned up, but perhaps there's more duplication like this going on, too.  Note: you'll need to do a fullbuild to generate the headers.

https://libc.llvm.org/full_host_build.html
`-DLLVM_LIBC_FULL_BUILD=ON` should be set in your cmake.
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJyUVE1v4zYQ_TXUZRBBoiS7OejgxDWwgJteuu1RoMixyIYiBX44cH99QVp2suh2PwADBoV5j2_mzSPzXk0GsSfdE-n2BYtBWtcbxV8Feha1Ueh8MVpx6XengA6EVWYCBqeoNYxRaUHoMwSJMKFBxwIKeOOSuVKCRCbQgWSeNDtS7cimuv54OtBGGa6jQCCUDoPW5_lBq5E_cDvP1pSSUPqfuveqmXFnPaGHfNt6_B4oXBbMGGXCEH60eh59YAE_AL7ENM_fxjS__gDAq39-ojo3_RPlt36v1TcfSLX7QyoPysOInEWP8IaglQ_ZUYELGoGGK_SgDCRKQg_rTTcVpSwFnmD3sv-_ggubdQl_qSAz7WzPCMGCwTcp3IQmbdAbgrGgrZnQgUEUqeKmxCOsnB5mZiLT-vJVQYTuVjknpdGT5ikRe2mjFoCGW4F3vq-jk1ZQxgdkorxavbtO44zuAhqZD0nvN2exXjgicI3MoIC4JNAYAyzoJFt8onRI6NbDbB2CiItWnAVlk7DXJFN5mHLabJ5QsLYEeLEBSbODi42EbrW-z0rYNZU5lOnLLZBZ_TWLfm1JhrDkUKamD6mXMi1Nad1E6CGxDNL6MGSuUoZZX9fmYX88_vnbcPz09DwcPh-Pw9PnT8c9afa_v5BN9aFvjyGN-GKjAz6zVywL0TfisXlkBfb1ttluOto2VSH7La1PleAtbbd117WI1djVFd9UjWjrzbYqVE8r2lU1bept3XRVWfENGxl9pN0vm03XnEhb4cyUvvdQKO8j9jVt6_ax0GxE7fMTR-lkrYCTcj5ALkqBps8p9tlQml5B1-cEjXHypK3SEvp36qCCzu9lBnT7q8UQl7uFKN63VZkP7-LqQRGd7r90YFJBxrHkdk526PPt72Fx9m_kIW1aUpuyvHZ17um_AQAA___8LeOl">