Hi Richard,

Turns out that the redefinition error was caused because libc++
modulemap lacked a module for its "string.h", and therefore it would
be textually included in more than one module, yielding the error.

With the attached patch for libc++ modulemap (extracted from parts of
a modulemap you previously attached to the thread) + your patch, I can
successfully compile Darwin and selfhost clang with submodule local
visibility. I can also upstream the patches for you in case your too
busy, let me know.

One minor note: the keyword name 'no_undeclared_includes' sounds a bit
confusing, how about 'direct_uses_only', or something along these


On Mon, Oct 17, 2016 at 3:59 PM, Bruno Cardoso Lopes
<bruno.card...@gmail.com> wrote:
>> @Bruno,
>> Can you try "-fdiagnostics-show-note-include-stackā€ so we know the other 
>> path that leads to string.h?
> Attached the complete error log (this snippet won't help without full
> context anyway)

Bruno Cardoso Lopes

Attachment: 0001-ModuleMap-Add-module-entries-for-non-modular-headers.patch
Description: Binary data

cfe-commits mailing list

Reply via email to