diff --git a/build b/build index 69cdfa6457..c538e91aeb 100755 --- a/build +++ b/build @@ -1,6 +1,8 @@ #!/bin/sh set -e +set -u +set -x JOBS="$1" TARGET="$2" # Example: riscv64-linux-gnu @@ -16,6 +18,7 @@ TARGET_OS_CMAKE=${TARGET_OS_AND_ABI%-*} # Example: linux case $TARGET_OS_CMAKE in macos) TARGET_OS_CMAKE="Darwin";; freebsd) TARGET_OS_CMAKE="FreeBSD";; + netbsd) TARGET_OS_CMAKE="NetBSD";; windows) TARGET_OS_CMAKE="Windows";; linux) TARGET_OS_CMAKE="Linux";; native) TARGET_OS_CMAKE="";; @@ -53,8 +56,16 @@ make "$JOBS" install # Now we have Zig as a cross compiler. ZIG="$ROOTDIR/out/host/bin/zig" -export CC="$ZIG cc -fno-sanitize=all -target $TARGET -mcpu=$MCPU" -export CXX="$ZIG c++ -fno-sanitize=all -target $TARGET -mcpu=$MCPU" +export CC="$ZIG cc -fno-sanitize=all -mcpu=$MCPU" +export CXX="$ZIG c++ -fno-sanitize=all -mcpu=$MCPU" +echo "#!/bin/sh +env CC=\"clang\" $CC \"\$@\"" > $ROOTDIR/out/host/bin/zigcc +echo "#!/bin/sh +env CC=\"clang\" $CXX \"\$@\"" > $ROOTDIR/out/host/bin/zigcxx +chmod +x $ROOTDIR/out/host/bin/zigcc +chmod +x $ROOTDIR/out/host/bin/zigcxx +export CC="$ROOTDIR/out/host/bin/zigcc" +export CXX="$ROOTDIR/out/host/bin/zigcxx" # First cross compile zlib for the target, as we need the LLVM linked into # the finaly zig binary to have zlib support enabled. @@ -129,6 +140,6 @@ cmake "$ROOTDIR/zig" \ -DZIG_VERSION="$ZIG_VERSION" \ -DZIG_USE_LLVM_CONFIG=OFF \ -DZIG_STATIC_ZLIB=ON +make "$JOBS" install unset CC unset CXX -make "$JOBS" install diff --git a/llvm/lib/Target/AMDGPU/CMakeLists.txt b/llvm/lib/Target/AMDGPU/CMakeLists.txt index 71f2026c33..043c62d68e 100644 --- a/llvm/lib/Target/AMDGPU/CMakeLists.txt +++ b/llvm/lib/Target/AMDGPU/CMakeLists.txt @@ -144,6 +144,7 @@ add_llvm_target(AMDGPUCodeGen GCNNSAReassign.cpp GCNDPPCombine.cpp SIModeRegister.cpp + sincos_netbsd_compat.c LINK_COMPONENTS Analysis diff --git a/llvm/lib/Target/AMDGPU/sincos_netbsd_compat.c b/llvm/lib/Target/AMDGPU/sincos_netbsd_compat.c new file mode 100644 index 0000000000..44db15af99 --- /dev/null +++ b/llvm/lib/Target/AMDGPU/sincos_netbsd_compat.c @@ -0,0 +1,16 @@ +#include <math.h> + +void sincos(double x, double *sin_result, double *cos_result) { + *sin_result = sin(x); + *cos_result = cos(x); +} + +void sincosf(float x, float *sin_result, float *cos_result) { + *sin_result = sinf(x); + *cos_result = cosf(x); +} + +void sincosl(long double x, long double *sin_result, long double *cos_result) { + *sin_result = sinl(x); + *cos_result = cosl(x); +} diff --git a/zig/cmake/install.cmake b/zig/cmake/install.cmake index 386773e30c..f7d6a57bb1 100644 --- a/zig/cmake/install.cmake +++ b/zig/cmake/install.cmake @@ -10,7 +10,7 @@ if(NOT EXISTS ${zig_EXE}) message(FATAL_ERROR) endif() -execute_process(COMMAND ${zig_EXE} ${ZIG_INSTALL_ARGS} +execute_process(COMMAND env CC=clang ${zig_EXE} ${ZIG_INSTALL_ARGS} WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} RESULT_VARIABLE _result )