diff --git a/programming/misc/libcxx/actions.py b/programming/misc/libcxx/actions.py index 99694ec024..9e7afff0e9 100755 --- a/programming/misc/libcxx/actions.py +++ b/programming/misc/libcxx/actions.py @@ -22,75 +22,67 @@ def setup(): if get.buildTYPE() == "emul32" : libsuffix = "32" pisitools.ldflags.add(" -fuse-ld=lld -L/usr/lib32 -ldl -lpthread ") - triple = "i686-pc-linux-gnu" + triple = "i686-pc-linux-gnu" pisitools.cflags.add("-m32 --target=%s" %triple) pisitools.cxxflags.add("-m32 --target=%s" %triple) + options = "-DLLVM_ENABLE_RUNTIMES='libcxx;libcxxabi'" + else: libsuffix = " " pisitools.ldflags.add(" -fuse-ld=lld -rtlib=compiler-rt -L/usr/lib -ldl -lpthread ") triple = "%s " % get.HOST() + options = "-DLLVM_ENABLE_RUNTIMES='libcxx;libcxxabi;libunwind' -DLIBUNWIND_USE_COMPILER_RT=ON \ + -DCMAKE_STRIP=' ' \ + -DLIBCXXABI_USE_COMPILER_RT=ON \ + -DLIBCXXABI_ENABLE_EXCEPTIONS=ON \ + -DLIBCXXABI_ENABLE_THREADS=ON \ + -DLIBCXXABI_ENABLE_SHARED=OFF \ + -DLLVM_NO_OLD_LIBSTDCXX=TRUE \ + -DLIBCXX_INSTALL_HEADERS=ON \ + -DLIBCXX_ENABLE_EXCEPTIONS=ON \ + -DLIBCXX_ENABLE_THREADS=ON \ + -DLIBCXX_ENABLE_MONOTONIC_CLOCK=ON \ + -DLIBCXX_ENABLE_SHARED=ON \ + -DLIBCXX_SUPPORTS_STD_EQ_CXX11_FLAG=TRUE \ + -DLIBCXX_ENABLE_EXPERIMENTAL_LIBRARY=ON \ + -DLIBCXX_ENABLE_FILESYSTEM=ON \ + -DLIBCXX_USE_COMPILER_RT=ON \ + -DLIBCXX_HAS_PTHREAD_API=ON \ + -DLIBUNWIND_ENABLE_SHARED=ON \ + -DLIBCXXABI_ENABLE_STATIC_UNWINDER=ON \ + -DLIBCXXABI_USE_LLVM_UNWINDER=ON \ + -DLIBCXX_ENABLE_SHARED=ON \ + -DLIBCXX_ENABLE_STATIC_ABI_LIBRARY=TRUE \ + -DCXX_SUPPORTS_CXX11=TRUE \ + -DLIBCXX_ENABLE_STATIC=ON \ + -DLIBUNWIND_TARGET_TRIPLE=%s \ + " % triple - shelltools.system("ln -s %s/%s/libcxx llvm/projects/libcxx" %(get.workDIR(), WorkDir)) - shelltools.system("ln -s %s/%s/libcxxabi llvm/projects/libcxxabi" %(get.workDIR(), WorkDir)) + # shelltools.system("ln -s %s/%s/libcxx llvm/projects/libcxx" %(get.workDIR(), WorkDir)) + # shelltools.system("ln -s %s/%s/libcxxabi llvm/projects/libcxxabi" %(get.workDIR(), WorkDir)) - shelltools.makedirs("llvm/build") - shelltools.cd("llvm/build") + shelltools.makedirs("build") + shelltools.cd("build") shelltools.system(" cmake \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=/usr \ - -DCMAKE_AR=/usr/bin/llvm-ar \ - -DCMAKE_RANLIB=/usr/bin/llvm-ranlib \ - -DCMAKE_STRIP=' ' \ - -DLIBCXXABI_USE_COMPILER_RT=ON \ - -DLIBCXXABI_ENABLE_EXCEPTIONS=ON \ - -DLIBCXXABI_ENABLE_THREADS=ON \ - -DLIBCXXABI_ENABLE_SHARED=OFF \ - -DLLVM_NO_OLD_LIBSTDCXX=TRUE \ - -DCXX_SUPPORTS_CXX11=TRUE \ - -DLIBCXXABI_ENABLE_SHARED=OFF \ - -DLIBCXXABI_HAS_PTHREAD_API=ON \ - -DLIBCXXABI_INSTALL_LIBRARY=OFF \ - -DLIBCXXABI_INSTALL_STATIC_LIBRARY=OFF \ - -DLIBCXXABI_ENABLE_NEW_DELETE_DEFINITIONS=OFF \ - -DLIBCXXABI_ENABLE_STATIC_UNWINDER=ON \ - -DLIBCXXABI_LIBUNWIND_INCLUDES=../../libunwind/incude \ - -DLIBCXXABI_LIBUNWIND_PATH=../../libunwind \ - -DLIBCXXABI_USE_LLVM_UNWINDER=ON \ - -DLIBCXX_INSTALL_HEADERS=ON \ - -DLIBCXX_ENABLE_EXCEPTIONS=ON \ - -DLIBCXX_ENABLE_THREADS=ON \ - -DLIBCXX_ENABLE_MONOTONIC_CLOCK=ON \ - -DLIBCXX_ENABLE_SHARED=ON \ - -DLIBCXX_SUPPORTS_STD_EQ_CXX11_FLAG=TRUE \ - -DLIBCXX_ENABLE_EXPERIMENTAL_LIBRARY=ON \ - -DLIBCXX_ENABLE_FILESYSTEM=ON \ - -DLIBCXX_ENABLE_STATIC_ABI_LIBRARY=TRUE \ - -DLIBCXX_USE_COMPILER_RT=ON \ - -DLIBCXX_CXX_ABI=libcxxabi \ - -DLIBCXX_HAS_PTHREAD_API=ON \ -DLIBCXX_LIBDIR_SUFFIX=%s \ - -DLIBCXX_ENABLE_SHARED=ON \ - -DLIBCXX_ENABLE_STATIC=ON \ - -DLIBCXX_ENABLE_STATIC_ABI_LIBRARY=TRUE \ - -DLLVM_EXTERNAL_LIBUNWIND_SOURCE_DIR=../../libunwind \ - -DLIBUNWIND_INSTALL_LIBRARY=OFF \ - -DLIBUNWIND_ENABLE_SHARED=ON \ - -DLIBUNWIND_USE_COMPILER_RT=ON \ -DCMAKE_C_COMPILER=clang \ -DCMAKE_CXX_COMPILER=clang++ \ - -DLIBUNWIND_TARGET_TRIPLE=%s \ + -DLLVM_ENABLE_PIC=ON \ -DLLVM_DEFAULT_TARGET_TRIPLE=%s \ - .. \ - " %(libsuffix, triple, triple) ) + %s \ + ../runtimes \ + " %(libsuffix, triple, options) ) def build(): - shelltools.cd("llvm/build") + shelltools.cd("build") autotools.make("cxx cxx_experimental") def install(): - shelltools.cd("llvm/build") + shelltools.cd("build") shelltools.system("DESTDIR=%s make install-cxx-headers install-cxx" %get.installDIR()) - pisitools.dodoc("../projects/libcxx/CREDITS.TXT", "../projects/libcxx/LICENSE.TXT", "../projects/libcxx/NOTES.TXT", "../projects/libcxx/TODO.TXT") + pisitools.dodoc("../libcxx/CREDITS.TXT", "../libcxx/LICENSE.TXT", "../libcxx/TODO.TXT")