HomePhabricator

Disable Modules when building the libc++ sources.

Authored by EricWF on Oct 14 2016, 5:56 AM.

Description

Disable Modules when building the libc++ sources.

Libc++ will not build with modules enabled. In order to support an in-tree
libc++ when LLVM_ENABLE_MODULES is ON we need to explicitly disable the feature.

Unfortunately the libc++ sources are fundamentally non-modular. For example
iostream.cpp defines cout, cerr, wout, ... as char buffers instead of streams
in order to better control initialization/destruction. Not shockingly Clang
diagnoses this. Many other sources files define _LIBCPP_BUILDING_FOO macros to
provide definitions for normally inline symbols (See bind.cpp). Finally The
current module.map prohibits using <strstream> in C++11 so we can't build
strstream.cpp.

I think I can fix most of these issues but until then just disable modules.

llvm-svn: 284230

Details

Committed
EricWFOct 14 2016, 5:56 AM
Parents
rGbef6aa6ea99b: Fix for PR30632: Name mangling issue.
Branches
Unknown
Tags
Unknown