[libc++][Modules] Remove explicit exports from modules that `export *`
authorIan Anderson <iana@apple.com>
Sun, 4 Jun 2023 05:56:19 +0000 (22:56 -0700)
committerIan Anderson <iana@apple.com>
Wed, 5 Jul 2023 16:52:02 +0000 (09:52 -0700)
commit9992b386bf3c4972494c5e4f571dff24db59a383
tree770e401d03f4af3bac7b37c8cd1044f3b3584115
parent6f05da6cf8b982a309eb674b41554f77a58e49c4
[libc++][Modules] Remove explicit exports from modules that `export *`

This may be a clang bug, but explicit exports interfere with `export *`, especially in local submodule visibility mode. For example, exporting `depr.stdint_h` from `cstdint` causes std::int32_t to become an "unresolved using declaration" in LSV if `cstdint` and `stdint.h` are promoted to top level modules. This was previously worked around by exporting `Darwin.C.stdint` in `depr.stdint_h`, but that only works on Apple platforms, and it stops working when `cstdint` and `stdint.h` are promoted to top level modules.

Remove all of the explicit `export` statements in modules that have `export *`.

Reviewed By: ldionne, Mordante, #libc

Differential Revision: https://reviews.llvm.org/D153212
libcxx/include/module.modulemap.in