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
This commit is contained in:
		
							parent
							
								
									bef6aa6ea9
								
							
						
					
					
						commit
						194e027f4c
					
				| 
						 | 
					@ -411,6 +411,16 @@ endif()
 | 
				
			||||||
# Feature flags ===============================================================
 | 
					# Feature flags ===============================================================
 | 
				
			||||||
define_if(MSVC -D_CRT_SECURE_NO_WARNINGS)
 | 
					define_if(MSVC -D_CRT_SECURE_NO_WARNINGS)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Modules flags ===============================================================
 | 
				
			||||||
 | 
					# FIXME The libc++ sources are fundamentally non-modular. They need special
 | 
				
			||||||
 | 
					# versions of the headers in order to provide C++03 and legacy ABI definitions.
 | 
				
			||||||
 | 
					# NOTE: The public headers can be used with modules in all other contexts.
 | 
				
			||||||
 | 
					if (LLVM_ENABLE_MODULES)
 | 
				
			||||||
 | 
					  # Ignore that the rest of the modules flags are now unused.
 | 
				
			||||||
 | 
					  add_compile_flags_if_supported(-Wno-unused-command-line-argument)
 | 
				
			||||||
 | 
					  add_compile_flags(-fno-modules)
 | 
				
			||||||
 | 
					endif()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Sanitizer flags =============================================================
 | 
					# Sanitizer flags =============================================================
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Configure for sanitizers. If LIBCXX_STANDALONE_BUILD then we have to do
 | 
					# Configure for sanitizers. If LIBCXX_STANDALONE_BUILD then we have to do
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue