diff --git a/.upstream-tests b/.upstream-tests index aa0fa108a2..d14d567463 160000 --- a/.upstream-tests +++ b/.upstream-tests @@ -1 +1 @@ -Subproject commit aa0fa108a259f49ac14f7ada093d9060c186631e +Subproject commit d14d567463faf429be4c738411e45f4feb70211b diff --git a/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_11/attach_cuda_driver_to_docker_image.bash b/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_11/attach_cuda_driver_to_docker_image.bash new file mode 120000 index 0000000000..64f9274b1c --- /dev/null +++ b/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_11/attach_cuda_driver_to_docker_image.bash @@ -0,0 +1 @@ +../../../../../../../utils/nvidia/linux/docker/attach_cuda_driver_to_docker_image.bash \ No newline at end of file diff --git a/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_11/base.Dockerfile b/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_11/base.Dockerfile new file mode 100644 index 0000000000..c47f09d6aa --- /dev/null +++ b/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_11/base.Dockerfile @@ -0,0 +1,108 @@ +# Dockerfile for libcudacxx_base:host_x86_64_fedora_32__target_x86_64_fedora_32__gcc_10_cxx_11 + +FROM fedora:32 + +MAINTAINER Bryce Adelstein Lelbach + +ARG LIBCUDACXX_SKIP_BASE_TESTS_BUILD +ARG LIBCUDACXX_COMPUTE_ARCHS + +############################################################################### +# BUILD: The following is invoked when the image is built. + +SHELL ["/usr/bin/env", "bash", "-c"] + +RUN yum -y updateinfo\ + && yum -y install which findutils make gcc-c++ libstdc++-static llvm-devel clang python python-pip cmake\ + && pip install lit\ + && mkdir -p /sw/gpgpu/libcudacxx/build\ + && mkdir -p /sw/gpgpu/libcudacxx/libcxx/build + +# For debugging. +#RUN yum -y install gdb strace vim + +# We use ADD here because it invalidates the cache for subsequent steps, which +# is what we want, as we need to rebuild if the sources have changed. + +# Copy NVCC and the CUDA runtime from the source tree. +ADD bin /sw/gpgpu/bin + +# Copy the core CUDA headers from the source tree. +ADD cuda/import/*.h* /sw/gpgpu/cuda/import/ +ADD cuda/common/*.h* /sw/gpgpu/cuda/common/ +ADD cuda/tools/ /sw/gpgpu/cuda/tools/ +ADD opencl/import/cl_rel/CL/*.h* /sw/gpgpu/opencl/import/cl_rel/CL/ + +# Copy libcu++ sources from the source tree. +ADD libcudacxx /sw/gpgpu/libcudacxx + +# List out everything in /sw before the build. +RUN echo "Contents of /sw:" && cd /sw/ && find + +# Build libc++ and configure libc++ tests. +RUN set -o pipefail; cd /sw/gpgpu/libcudacxx/libcxx/build\ + && cmake ..\ + -DLIBCXX_INCLUDE_TESTS=ON\ + -DLIBCXX_INCLUDE_BENCHMARKS=OFF\ + -DLIBCXX_CXX_ABI=libsupc++\ + -DLIBCXX_TEST_STANDARD_VER=c++11\ + -DLIBCXX_ABI_UNSTABLE=ON\ + -DLLVM_CONFIG_PATH=$(which llvm-config)\ + -DCMAKE_C_COMPILER=gcc\ + -DCMAKE_CXX_COMPILER=g++\ + && make -j\ + 2>&1 | tee /sw/gpgpu/libcudacxx/build/cmake_libcxx.log + +# Configure libcu++ tests. +RUN set -o pipefail; cd /sw/gpgpu/libcudacxx/build\ + && cmake ..\ + -DLIBCXX_TEST_STANDARD_VER=c++11\ + -DLLVM_CONFIG_PATH=$(which llvm-config)\ + -DCMAKE_CXX_COMPILER=/sw/gpgpu/bin/x86_64_Linux_release/nvcc\ + -DLIBCXX_NVCC_HOST_COMPILER=g++\ + 2>&1 | tee /sw/gpgpu/libcudacxx/build/cmake_libcudacxx.log + +# Build tests if requested. +# NOTE: libc++ tests are disabled until we can setup libc++abi. +RUN set -o pipefail; cd /sw/gpgpu/libcudacxx\ + && LIBCUDACXX_COMPUTE_ARCHS=$LIBCUDACXX_COMPUTE_ARCHS\ + LIBCUDACXX_SKIP_BASE_TESTS_BUILD=$LIBCUDACXX_SKIP_BASE_TESTS_BUILD\ + /sw/gpgpu/libcudacxx/utils/nvidia/linux/perform_tests.bash\ + --skip-tests-runs\ + --skip-libcxx-tests\ + 2>&1 | tee /sw/gpgpu/libcudacxx/build/build_lit_all.log + +# Build tests for sm6x if requested. +RUN set -o pipefail; cd /sw/gpgpu/libcudacxx\ + && LIBCUDACXX_COMPUTE_ARCHS="60 61 62"\ + LIBCUDACXX_SKIP_BASE_TESTS_BUILD=$LIBCUDACXX_SKIP_BASE_TESTS_BUILD\ + /sw/gpgpu/libcudacxx/utils/nvidia/linux/perform_tests.bash\ + --skip-tests-runs\ + --skip-libcxx-tests\ + 2>&1 | tee /sw/gpgpu/libcudacxx/build/build_lit_sm6x.log + +# Build tests for sm7x if requested. +RUN set -o pipefail; cd /sw/gpgpu/libcudacxx\ + && LIBCUDACXX_COMPUTE_ARCHS="70 72 75"\ + LIBCUDACXX_SKIP_BASE_TESTS_BUILD=$LIBCUDACXX_SKIP_BASE_TESTS_BUILD\ + /sw/gpgpu/libcudacxx/utils/nvidia/linux/perform_tests.bash\ + --skip-tests-runs\ + --skip-libcxx-tests\ + 2>&1 | tee /sw/gpgpu/libcudacxx/build/build_lit_sm7x.log + +# Build tests for sm8x if requested. +RUN set -o pipefail; cd /sw/gpgpu/libcudacxx\ + && LIBCUDACXX_COMPUTE_ARCHS="80"\ + LIBCUDACXX_SKIP_BASE_TESTS_BUILD=$LIBCUDACXX_SKIP_BASE_TESTS_BUILD\ + /sw/gpgpu/libcudacxx/utils/nvidia/linux/perform_tests.bash\ + --skip-tests-runs\ + --skip-libcxx-tests\ + 2>&1 | tee /sw/gpgpu/libcudacxx/build/build_lit_sm8x.log + +# Package the logs up, because `docker container cp` doesn't support wildcards, +# and I want to limit the number of places we have to make changes when we ship +# new architectures. +RUN cd /sw/gpgpu/libcudacxx/build && tar -cvf logs.tar *.log + +WORKDIR /sw/gpgpu/libcudacxx + diff --git a/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_11/build_and_run_docker_image.bash b/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_11/build_and_run_docker_image.bash new file mode 120000 index 0000000000..7fff39d1e6 --- /dev/null +++ b/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_11/build_and_run_docker_image.bash @@ -0,0 +1 @@ +../../../../../../../utils/nvidia/linux/docker/build_and_run_docker_image.bash \ No newline at end of file diff --git a/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_11/build_base_docker_image.bash b/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_11/build_base_docker_image.bash new file mode 120000 index 0000000000..5e3d81ce19 --- /dev/null +++ b/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_11/build_base_docker_image.bash @@ -0,0 +1 @@ +../../../../../../../utils/nvidia/linux/docker/build_base_docker_image.bash \ No newline at end of file diff --git a/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_11/clear_docker_containers_and_images.bash b/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_11/clear_docker_containers_and_images.bash new file mode 120000 index 0000000000..58e2591696 --- /dev/null +++ b/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_11/clear_docker_containers_and_images.bash @@ -0,0 +1 @@ +../../../../../../../utils/nvidia/linux/docker/clear_docker_containers_and_images.bash \ No newline at end of file diff --git a/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_11/configuration.bash b/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_11/configuration.bash new file mode 120000 index 0000000000..9eeb7988a0 --- /dev/null +++ b/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_11/configuration.bash @@ -0,0 +1 @@ +../../../../../../../utils/nvidia/linux/docker/configuration.bash \ No newline at end of file diff --git a/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_11/export_base_docker_image.bash b/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_11/export_base_docker_image.bash new file mode 120000 index 0000000000..7b2f7270d7 --- /dev/null +++ b/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_11/export_base_docker_image.bash @@ -0,0 +1 @@ +../../../../../../../utils/nvidia/linux/docker/export_base_docker_image.bash \ No newline at end of file diff --git a/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_11/final.Dockerfile b/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_11/final.Dockerfile new file mode 100644 index 0000000000..28447c8770 --- /dev/null +++ b/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_11/final.Dockerfile @@ -0,0 +1,29 @@ +# Dockerfile for libcudacxx:host_x86_64_fedora_32__target_x86_64_fedora_32__gcc_10_cxx_11 + +FROM libcudacxx_base:host_x86_64_fedora_32__target_x86_64_fedora_32__gcc_10_cxx_11 + +MAINTAINER Bryce Adelstein Lelbach + +############################################################################### +# BUILD: The following is invoked when the CUDA driver is attached. + +# We use ADD here because it invalidates the cache for subsequent steps, which +# is what we want, as we need to rebuild if the sources have changed. + +ADD nvidia-modprobe /usr/bin/ +# Restore setuid. +RUN chmod +s /usr/bin/nvidia-modprobe + +ADD libcuda.so* /usr/lib64/ +ADD libnvidia-ptxjitcompiler.so* /usr/lib64/ + +############################################################################### +# CMD: The following is invoked when the image is run. + +RUN useradd -ms /bin/bash libcudacxx && chown -R libcudacxx:libcudacxx /sw +USER libcudacxx + +WORKDIR /sw/gpgpu/libcudacxx + +CMD /sw/gpgpu/libcudacxx/utils/nvidia/linux/perform_tests.bash --skip-libcxx-tests + diff --git a/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_11/import_base_docker_image_and_attach_cuda_driver.bash b/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_11/import_base_docker_image_and_attach_cuda_driver.bash new file mode 120000 index 0000000000..f372da80d8 --- /dev/null +++ b/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_11/import_base_docker_image_and_attach_cuda_driver.bash @@ -0,0 +1 @@ +../../../../../../../utils/nvidia/linux/docker/import_base_docker_image_and_attach_cuda_driver.bash \ No newline at end of file diff --git a/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_11/import_base_docker_image_and_attach_cuda_driver_and_run_docker_image.bash b/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_11/import_base_docker_image_and_attach_cuda_driver_and_run_docker_image.bash new file mode 120000 index 0000000000..1c107e0c77 --- /dev/null +++ b/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_11/import_base_docker_image_and_attach_cuda_driver_and_run_docker_image.bash @@ -0,0 +1 @@ +../../../../../../../utils/nvidia/linux/docker/import_base_docker_image_and_attach_cuda_driver_and_run_docker_image.bash \ No newline at end of file diff --git a/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_11/run_docker_image.bash b/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_11/run_docker_image.bash new file mode 120000 index 0000000000..9602084857 --- /dev/null +++ b/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_11/run_docker_image.bash @@ -0,0 +1 @@ +../../../../../../../utils/nvidia/linux/docker/run_docker_image.bash \ No newline at end of file diff --git a/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_11/variant_configuration.bash b/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_11/variant_configuration.bash new file mode 100755 index 0000000000..3c98e08e86 --- /dev/null +++ b/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_11/variant_configuration.bash @@ -0,0 +1,11 @@ +#! /bin/bash + +HOST_ARCH=x86_64 +HOST_OS_KIND=fedora +HOST_OS_VERSION=32 +TARGET_ARCH=x86_64 +TARGET_OS_KIND=fedora +TARGET_OS_VERSION=32 +COMPILER_KIND=gcc +COMPILER_VERSION=10 +COMPILER_CXX_DIALECT=11 diff --git a/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_14/attach_cuda_driver_to_docker_image.bash b/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_14/attach_cuda_driver_to_docker_image.bash new file mode 120000 index 0000000000..64f9274b1c --- /dev/null +++ b/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_14/attach_cuda_driver_to_docker_image.bash @@ -0,0 +1 @@ +../../../../../../../utils/nvidia/linux/docker/attach_cuda_driver_to_docker_image.bash \ No newline at end of file diff --git a/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_14/base.Dockerfile b/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_14/base.Dockerfile new file mode 100644 index 0000000000..4c1bb914ea --- /dev/null +++ b/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_14/base.Dockerfile @@ -0,0 +1,108 @@ +# Dockerfile for libcudacxx_base:host_x86_64_fedora_32__target_x86_64_fedora_32__gcc_10_cxx_14 + +FROM fedora:32 + +MAINTAINER Bryce Adelstein Lelbach + +ARG LIBCUDACXX_SKIP_BASE_TESTS_BUILD +ARG LIBCUDACXX_COMPUTE_ARCHS + +############################################################################### +# BUILD: The following is invoked when the image is built. + +SHELL ["/usr/bin/env", "bash", "-c"] + +RUN yum -y updateinfo\ + && yum -y install which findutils make gcc-c++ libstdc++-static llvm-devel clang python python-pip cmake\ + && pip install lit\ + && mkdir -p /sw/gpgpu/libcudacxx/build\ + && mkdir -p /sw/gpgpu/libcudacxx/libcxx/build + +# For debugging. +#RUN yum -y install gdb strace vim + +# We use ADD here because it invalidates the cache for subsequent steps, which +# is what we want, as we need to rebuild if the sources have changed. + +# Copy NVCC and the CUDA runtime from the source tree. +ADD bin /sw/gpgpu/bin + +# Copy the core CUDA headers from the source tree. +ADD cuda/import/*.h* /sw/gpgpu/cuda/import/ +ADD cuda/common/*.h* /sw/gpgpu/cuda/common/ +ADD cuda/tools/ /sw/gpgpu/cuda/tools/ +ADD opencl/import/cl_rel/CL/*.h* /sw/gpgpu/opencl/import/cl_rel/CL/ + +# Copy libcu++ sources from the source tree. +ADD libcudacxx /sw/gpgpu/libcudacxx + +# List out everything in /sw before the build. +RUN echo "Contents of /sw:" && cd /sw/ && find + +# Build libc++ and configure libc++ tests. +RUN set -o pipefail; cd /sw/gpgpu/libcudacxx/libcxx/build\ + && cmake ..\ + -DLIBCXX_INCLUDE_TESTS=ON\ + -DLIBCXX_INCLUDE_BENCHMARKS=OFF\ + -DLIBCXX_CXX_ABI=libsupc++\ + -DLIBCXX_TEST_STANDARD_VER=c++11\ + -DLIBCXX_ABI_UNSTABLE=ON\ + -DLLVM_CONFIG_PATH=$(which llvm-config)\ + -DCMAKE_C_COMPILER=gcc\ + -DCMAKE_CXX_COMPILER=g++\ + && make -j\ + 2>&1 | tee /sw/gpgpu/libcudacxx/build/cmake_libcxx.log + +# Configure libcu++ tests. +RUN set -o pipefail; cd /sw/gpgpu/libcudacxx/build\ + && cmake ..\ + -DLIBCXX_TEST_STANDARD_VER=c++11\ + -DLLVM_CONFIG_PATH=$(which llvm-config)\ + -DCMAKE_CXX_COMPILER=/sw/gpgpu/bin/x86_64_Linux_release/nvcc\ + -DLIBCXX_NVCC_HOST_COMPILER=g++\ + 2>&1 | tee /sw/gpgpu/libcudacxx/build/cmake_libcudacxx.log + +# Build tests if requested. +# NOTE: libc++ tests are disabled until we can setup libc++abi. +RUN set -o pipefail; cd /sw/gpgpu/libcudacxx\ + && LIBCUDACXX_COMPUTE_ARCHS=$LIBCUDACXX_COMPUTE_ARCHS\ + LIBCUDACXX_SKIP_BASE_TESTS_BUILD=$LIBCUDACXX_SKIP_BASE_TESTS_BUILD\ + /sw/gpgpu/libcudacxx/utils/nvidia/linux/perform_tests.bash\ + --skip-tests-runs\ + --skip-libcxx-tests\ + 2>&1 | tee /sw/gpgpu/libcudacxx/build/build_lit_all.log + +# Build tests for sm6x if requested. +RUN set -o pipefail; cd /sw/gpgpu/libcudacxx\ + && LIBCUDACXX_COMPUTE_ARCHS="60 61 62"\ + LIBCUDACXX_SKIP_BASE_TESTS_BUILD=$LIBCUDACXX_SKIP_BASE_TESTS_BUILD\ + /sw/gpgpu/libcudacxx/utils/nvidia/linux/perform_tests.bash\ + --skip-tests-runs\ + --skip-libcxx-tests\ + 2>&1 | tee /sw/gpgpu/libcudacxx/build/build_lit_sm6x.log + +# Build tests for sm7x if requested. +RUN set -o pipefail; cd /sw/gpgpu/libcudacxx\ + && LIBCUDACXX_COMPUTE_ARCHS="70 72 75"\ + LIBCUDACXX_SKIP_BASE_TESTS_BUILD=$LIBCUDACXX_SKIP_BASE_TESTS_BUILD\ + /sw/gpgpu/libcudacxx/utils/nvidia/linux/perform_tests.bash\ + --skip-tests-runs\ + --skip-libcxx-tests\ + 2>&1 | tee /sw/gpgpu/libcudacxx/build/build_lit_sm7x.log + +# Build tests for sm8x if requested. +RUN set -o pipefail; cd /sw/gpgpu/libcudacxx\ + && LIBCUDACXX_COMPUTE_ARCHS="80"\ + LIBCUDACXX_SKIP_BASE_TESTS_BUILD=$LIBCUDACXX_SKIP_BASE_TESTS_BUILD\ + /sw/gpgpu/libcudacxx/utils/nvidia/linux/perform_tests.bash\ + --skip-tests-runs\ + --skip-libcxx-tests\ + 2>&1 | tee /sw/gpgpu/libcudacxx/build/build_lit_sm8x.log + +# Package the logs up, because `docker container cp` doesn't support wildcards, +# and I want to limit the number of places we have to make changes when we ship +# new architectures. +RUN cd /sw/gpgpu/libcudacxx/build && tar -cvf logs.tar *.log + +WORKDIR /sw/gpgpu/libcudacxx + diff --git a/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_14/build_and_run_docker_image.bash b/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_14/build_and_run_docker_image.bash new file mode 120000 index 0000000000..7fff39d1e6 --- /dev/null +++ b/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_14/build_and_run_docker_image.bash @@ -0,0 +1 @@ +../../../../../../../utils/nvidia/linux/docker/build_and_run_docker_image.bash \ No newline at end of file diff --git a/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_14/build_base_docker_image.bash b/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_14/build_base_docker_image.bash new file mode 120000 index 0000000000..5e3d81ce19 --- /dev/null +++ b/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_14/build_base_docker_image.bash @@ -0,0 +1 @@ +../../../../../../../utils/nvidia/linux/docker/build_base_docker_image.bash \ No newline at end of file diff --git a/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_14/clear_docker_containers_and_images.bash b/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_14/clear_docker_containers_and_images.bash new file mode 120000 index 0000000000..58e2591696 --- /dev/null +++ b/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_14/clear_docker_containers_and_images.bash @@ -0,0 +1 @@ +../../../../../../../utils/nvidia/linux/docker/clear_docker_containers_and_images.bash \ No newline at end of file diff --git a/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_14/configuration.bash b/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_14/configuration.bash new file mode 120000 index 0000000000..9eeb7988a0 --- /dev/null +++ b/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_14/configuration.bash @@ -0,0 +1 @@ +../../../../../../../utils/nvidia/linux/docker/configuration.bash \ No newline at end of file diff --git a/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_14/export_base_docker_image.bash b/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_14/export_base_docker_image.bash new file mode 120000 index 0000000000..7b2f7270d7 --- /dev/null +++ b/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_14/export_base_docker_image.bash @@ -0,0 +1 @@ +../../../../../../../utils/nvidia/linux/docker/export_base_docker_image.bash \ No newline at end of file diff --git a/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_14/final.Dockerfile b/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_14/final.Dockerfile new file mode 100644 index 0000000000..ce46a4eecd --- /dev/null +++ b/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_14/final.Dockerfile @@ -0,0 +1,29 @@ +# Dockerfile for libcudacxx:host_x86_64_fedora_32__target_x86_64_fedora_32__gcc_10_cxx_14 + +FROM libcudacxx_base:host_x86_64_fedora_32__target_x86_64_fedora_32__gcc_10_cxx_14 + +MAINTAINER Bryce Adelstein Lelbach + +############################################################################### +# BUILD: The following is invoked when the CUDA driver is attached. + +# We use ADD here because it invalidates the cache for subsequent steps, which +# is what we want, as we need to rebuild if the sources have changed. + +ADD nvidia-modprobe /usr/bin/ +# Restore setuid. +RUN chmod +s /usr/bin/nvidia-modprobe + +ADD libcuda.so* /usr/lib64/ +ADD libnvidia-ptxjitcompiler.so* /usr/lib64/ + +############################################################################### +# CMD: The following is invoked when the image is run. + +RUN useradd -ms /bin/bash libcudacxx && chown -R libcudacxx:libcudacxx /sw +USER libcudacxx + +WORKDIR /sw/gpgpu/libcudacxx + +CMD /sw/gpgpu/libcudacxx/utils/nvidia/linux/perform_tests.bash --skip-libcxx-tests + diff --git a/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_14/import_base_docker_image_and_attach_cuda_driver.bash b/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_14/import_base_docker_image_and_attach_cuda_driver.bash new file mode 120000 index 0000000000..f372da80d8 --- /dev/null +++ b/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_14/import_base_docker_image_and_attach_cuda_driver.bash @@ -0,0 +1 @@ +../../../../../../../utils/nvidia/linux/docker/import_base_docker_image_and_attach_cuda_driver.bash \ No newline at end of file diff --git a/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_14/import_base_docker_image_and_attach_cuda_driver_and_run_docker_image.bash b/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_14/import_base_docker_image_and_attach_cuda_driver_and_run_docker_image.bash new file mode 120000 index 0000000000..1c107e0c77 --- /dev/null +++ b/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_14/import_base_docker_image_and_attach_cuda_driver_and_run_docker_image.bash @@ -0,0 +1 @@ +../../../../../../../utils/nvidia/linux/docker/import_base_docker_image_and_attach_cuda_driver_and_run_docker_image.bash \ No newline at end of file diff --git a/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_14/run_docker_image.bash b/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_14/run_docker_image.bash new file mode 120000 index 0000000000..9602084857 --- /dev/null +++ b/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_14/run_docker_image.bash @@ -0,0 +1 @@ +../../../../../../../utils/nvidia/linux/docker/run_docker_image.bash \ No newline at end of file diff --git a/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_14/variant_configuration.bash b/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_14/variant_configuration.bash new file mode 100755 index 0000000000..7c38932c21 --- /dev/null +++ b/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_14/variant_configuration.bash @@ -0,0 +1,11 @@ +#! /bin/bash + +HOST_ARCH=x86_64 +HOST_OS_KIND=fedora +HOST_OS_VERSION=32 +TARGET_ARCH=x86_64 +TARGET_OS_KIND=fedora +TARGET_OS_VERSION=32 +COMPILER_KIND=gcc +COMPILER_VERSION=10 +COMPILER_CXX_DIALECT=14 diff --git a/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_17/attach_cuda_driver_to_docker_image.bash b/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_17/attach_cuda_driver_to_docker_image.bash new file mode 120000 index 0000000000..64f9274b1c --- /dev/null +++ b/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_17/attach_cuda_driver_to_docker_image.bash @@ -0,0 +1 @@ +../../../../../../../utils/nvidia/linux/docker/attach_cuda_driver_to_docker_image.bash \ No newline at end of file diff --git a/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_17/base.Dockerfile b/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_17/base.Dockerfile new file mode 100644 index 0000000000..907a0989ce --- /dev/null +++ b/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_17/base.Dockerfile @@ -0,0 +1,108 @@ +# Dockerfile for libcudacxx_base:host_x86_64_fedora_32__target_x86_64_fedora_32__gcc_10_cxx_17 + +FROM fedora:32 + +MAINTAINER Bryce Adelstein Lelbach + +ARG LIBCUDACXX_SKIP_BASE_TESTS_BUILD +ARG LIBCUDACXX_COMPUTE_ARCHS + +############################################################################### +# BUILD: The following is invoked when the image is built. + +SHELL ["/usr/bin/env", "bash", "-c"] + +RUN yum -y updateinfo\ + && yum -y install which findutils make gcc-c++ libstdc++-static llvm-devel clang python python-pip cmake\ + && pip install lit\ + && mkdir -p /sw/gpgpu/libcudacxx/build\ + && mkdir -p /sw/gpgpu/libcudacxx/libcxx/build + +# For debugging. +#RUN yum -y install gdb strace vim + +# We use ADD here because it invalidates the cache for subsequent steps, which +# is what we want, as we need to rebuild if the sources have changed. + +# Copy NVCC and the CUDA runtime from the source tree. +ADD bin /sw/gpgpu/bin + +# Copy the core CUDA headers from the source tree. +ADD cuda/import/*.h* /sw/gpgpu/cuda/import/ +ADD cuda/common/*.h* /sw/gpgpu/cuda/common/ +ADD cuda/tools/ /sw/gpgpu/cuda/tools/ +ADD opencl/import/cl_rel/CL/*.h* /sw/gpgpu/opencl/import/cl_rel/CL/ + +# Copy libcu++ sources from the source tree. +ADD libcudacxx /sw/gpgpu/libcudacxx + +# List out everything in /sw before the build. +RUN echo "Contents of /sw:" && cd /sw/ && find + +# Build libc++ and configure libc++ tests. +RUN set -o pipefail; cd /sw/gpgpu/libcudacxx/libcxx/build\ + && cmake ..\ + -DLIBCXX_INCLUDE_TESTS=ON\ + -DLIBCXX_INCLUDE_BENCHMARKS=OFF\ + -DLIBCXX_CXX_ABI=libsupc++\ + -DLIBCXX_TEST_STANDARD_VER=c++11\ + -DLIBCXX_ABI_UNSTABLE=ON\ + -DLLVM_CONFIG_PATH=$(which llvm-config)\ + -DCMAKE_C_COMPILER=gcc\ + -DCMAKE_CXX_COMPILER=g++\ + && make -j\ + 2>&1 | tee /sw/gpgpu/libcudacxx/build/cmake_libcxx.log + +# Configure libcu++ tests. +RUN set -o pipefail; cd /sw/gpgpu/libcudacxx/build\ + && cmake ..\ + -DLIBCXX_TEST_STANDARD_VER=c++11\ + -DLLVM_CONFIG_PATH=$(which llvm-config)\ + -DCMAKE_CXX_COMPILER=/sw/gpgpu/bin/x86_64_Linux_release/nvcc\ + -DLIBCXX_NVCC_HOST_COMPILER=g++\ + 2>&1 | tee /sw/gpgpu/libcudacxx/build/cmake_libcudacxx.log + +# Build tests if requested. +# NOTE: libc++ tests are disabled until we can setup libc++abi. +RUN set -o pipefail; cd /sw/gpgpu/libcudacxx\ + && LIBCUDACXX_COMPUTE_ARCHS=$LIBCUDACXX_COMPUTE_ARCHS\ + LIBCUDACXX_SKIP_BASE_TESTS_BUILD=$LIBCUDACXX_SKIP_BASE_TESTS_BUILD\ + /sw/gpgpu/libcudacxx/utils/nvidia/linux/perform_tests.bash\ + --skip-tests-runs\ + --skip-libcxx-tests\ + 2>&1 | tee /sw/gpgpu/libcudacxx/build/build_lit_all.log + +# Build tests for sm6x if requested. +RUN set -o pipefail; cd /sw/gpgpu/libcudacxx\ + && LIBCUDACXX_COMPUTE_ARCHS="60 61 62"\ + LIBCUDACXX_SKIP_BASE_TESTS_BUILD=$LIBCUDACXX_SKIP_BASE_TESTS_BUILD\ + /sw/gpgpu/libcudacxx/utils/nvidia/linux/perform_tests.bash\ + --skip-tests-runs\ + --skip-libcxx-tests\ + 2>&1 | tee /sw/gpgpu/libcudacxx/build/build_lit_sm6x.log + +# Build tests for sm7x if requested. +RUN set -o pipefail; cd /sw/gpgpu/libcudacxx\ + && LIBCUDACXX_COMPUTE_ARCHS="70 72 75"\ + LIBCUDACXX_SKIP_BASE_TESTS_BUILD=$LIBCUDACXX_SKIP_BASE_TESTS_BUILD\ + /sw/gpgpu/libcudacxx/utils/nvidia/linux/perform_tests.bash\ + --skip-tests-runs\ + --skip-libcxx-tests\ + 2>&1 | tee /sw/gpgpu/libcudacxx/build/build_lit_sm7x.log + +# Build tests for sm8x if requested. +RUN set -o pipefail; cd /sw/gpgpu/libcudacxx\ + && LIBCUDACXX_COMPUTE_ARCHS="80"\ + LIBCUDACXX_SKIP_BASE_TESTS_BUILD=$LIBCUDACXX_SKIP_BASE_TESTS_BUILD\ + /sw/gpgpu/libcudacxx/utils/nvidia/linux/perform_tests.bash\ + --skip-tests-runs\ + --skip-libcxx-tests\ + 2>&1 | tee /sw/gpgpu/libcudacxx/build/build_lit_sm8x.log + +# Package the logs up, because `docker container cp` doesn't support wildcards, +# and I want to limit the number of places we have to make changes when we ship +# new architectures. +RUN cd /sw/gpgpu/libcudacxx/build && tar -cvf logs.tar *.log + +WORKDIR /sw/gpgpu/libcudacxx + diff --git a/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_17/build_and_run_docker_image.bash b/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_17/build_and_run_docker_image.bash new file mode 120000 index 0000000000..7fff39d1e6 --- /dev/null +++ b/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_17/build_and_run_docker_image.bash @@ -0,0 +1 @@ +../../../../../../../utils/nvidia/linux/docker/build_and_run_docker_image.bash \ No newline at end of file diff --git a/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_17/build_base_docker_image.bash b/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_17/build_base_docker_image.bash new file mode 120000 index 0000000000..5e3d81ce19 --- /dev/null +++ b/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_17/build_base_docker_image.bash @@ -0,0 +1 @@ +../../../../../../../utils/nvidia/linux/docker/build_base_docker_image.bash \ No newline at end of file diff --git a/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_17/clear_docker_containers_and_images.bash b/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_17/clear_docker_containers_and_images.bash new file mode 120000 index 0000000000..58e2591696 --- /dev/null +++ b/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_17/clear_docker_containers_and_images.bash @@ -0,0 +1 @@ +../../../../../../../utils/nvidia/linux/docker/clear_docker_containers_and_images.bash \ No newline at end of file diff --git a/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_17/configuration.bash b/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_17/configuration.bash new file mode 120000 index 0000000000..9eeb7988a0 --- /dev/null +++ b/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_17/configuration.bash @@ -0,0 +1 @@ +../../../../../../../utils/nvidia/linux/docker/configuration.bash \ No newline at end of file diff --git a/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_17/export_base_docker_image.bash b/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_17/export_base_docker_image.bash new file mode 120000 index 0000000000..7b2f7270d7 --- /dev/null +++ b/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_17/export_base_docker_image.bash @@ -0,0 +1 @@ +../../../../../../../utils/nvidia/linux/docker/export_base_docker_image.bash \ No newline at end of file diff --git a/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_17/final.Dockerfile b/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_17/final.Dockerfile new file mode 100644 index 0000000000..6046fa61d4 --- /dev/null +++ b/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_17/final.Dockerfile @@ -0,0 +1,29 @@ +# Dockerfile for libcudacxx:host_x86_64_fedora_32__target_x86_64_fedora_32__gcc_10_cxx_17 + +FROM libcudacxx_base:host_x86_64_fedora_32__target_x86_64_fedora_32__gcc_10_cxx_17 + +MAINTAINER Bryce Adelstein Lelbach + +############################################################################### +# BUILD: The following is invoked when the CUDA driver is attached. + +# We use ADD here because it invalidates the cache for subsequent steps, which +# is what we want, as we need to rebuild if the sources have changed. + +ADD nvidia-modprobe /usr/bin/ +# Restore setuid. +RUN chmod +s /usr/bin/nvidia-modprobe + +ADD libcuda.so* /usr/lib64/ +ADD libnvidia-ptxjitcompiler.so* /usr/lib64/ + +############################################################################### +# CMD: The following is invoked when the image is run. + +RUN useradd -ms /bin/bash libcudacxx && chown -R libcudacxx:libcudacxx /sw +USER libcudacxx + +WORKDIR /sw/gpgpu/libcudacxx + +CMD /sw/gpgpu/libcudacxx/utils/nvidia/linux/perform_tests.bash --skip-libcxx-tests + diff --git a/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_17/import_base_docker_image_and_attach_cuda_driver.bash b/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_17/import_base_docker_image_and_attach_cuda_driver.bash new file mode 120000 index 0000000000..f372da80d8 --- /dev/null +++ b/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_17/import_base_docker_image_and_attach_cuda_driver.bash @@ -0,0 +1 @@ +../../../../../../../utils/nvidia/linux/docker/import_base_docker_image_and_attach_cuda_driver.bash \ No newline at end of file diff --git a/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_17/import_base_docker_image_and_attach_cuda_driver_and_run_docker_image.bash b/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_17/import_base_docker_image_and_attach_cuda_driver_and_run_docker_image.bash new file mode 120000 index 0000000000..1c107e0c77 --- /dev/null +++ b/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_17/import_base_docker_image_and_attach_cuda_driver_and_run_docker_image.bash @@ -0,0 +1 @@ +../../../../../../../utils/nvidia/linux/docker/import_base_docker_image_and_attach_cuda_driver_and_run_docker_image.bash \ No newline at end of file diff --git a/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_17/run_docker_image.bash b/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_17/run_docker_image.bash new file mode 120000 index 0000000000..9602084857 --- /dev/null +++ b/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_17/run_docker_image.bash @@ -0,0 +1 @@ +../../../../../../../utils/nvidia/linux/docker/run_docker_image.bash \ No newline at end of file diff --git a/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_17/variant_configuration.bash b/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_17/variant_configuration.bash new file mode 100755 index 0000000000..e9bec11579 --- /dev/null +++ b/docker/host_x86_64/fedora_32/target_x86_64/fedora_32/gcc_10/cxx_17/variant_configuration.bash @@ -0,0 +1,11 @@ +#! /bin/bash + +HOST_ARCH=x86_64 +HOST_OS_KIND=fedora +HOST_OS_VERSION=32 +TARGET_ARCH=x86_64 +TARGET_OS_KIND=fedora +TARGET_OS_VERSION=32 +COMPILER_KIND=gcc +COMPILER_VERSION=10 +COMPILER_CXX_DIALECT=17 diff --git a/libcxx b/libcxx index b95d22474a..5aabdf7eb8 160000 --- a/libcxx +++ b/libcxx @@ -1 +1 @@ -Subproject commit b95d22474aec389168f42b0978d52864c7750985 +Subproject commit 5aabdf7eb888277d57c595f464fd975fbc4bf9a3