diff --git a/ci/azure/update_download_page b/ci/azure/update_download_page index c6a690e8e6..92df66edfb 100755 --- a/ci/azure/update_download_page +++ b/ci/azure/update_download_page @@ -22,6 +22,12 @@ tar cfJ "$SRC_TARBALL" "$SRCTARBALLDIR" export SRC_SHASUM=$(sha256sum $SRC_TARBALL | cut '-d ' -f1) export SRC_BYTESIZE=$(wc -c < $SRC_TARBALL) +# the aarch64 build has to be there too +AARCH64_LINUX_JSON=$(curl --fail "https://ziglang.org/builds/aarch64-linux-$VERSION.json" || exit 1) +export AARCH64_LINUX_TARBALL="$(echo "$AARCH64_LINUX_JSON" | jq .tarball -r)" +export AARCH64_LINUX_BYTESIZE="$(echo "$AARCH64_LINUX_JSON" | jq .size -r)" +export AARCH64_LINUX_SHASUM="$(echo "$AARCH64_LINUX_JSON" | jq .shasum -r)" + # the freebsd build has to be there too FREEBSD_JSON=$(curl --fail "https://ziglang.org/builds/freebsd-$VERSION.json" || exit 1) export FREEBSD_TARBALL="$(echo "$FREEBSD_JSON" | jq .tarball -r)" diff --git a/ci/drone/drone.yml b/ci/drone/drone.yml new file mode 100644 index 0000000000..474f5b6d09 --- /dev/null +++ b/ci/drone/drone.yml @@ -0,0 +1,17 @@ +--- +kind: pipeline +name: test-aarch64-linux-musl + +platform: + arch: arm64 + +steps: +- name: build-and-test + image: ziglang/static-base:llvm9-1 + environment: + AWS_ACCESS_KEY_ID: + from_secret: AWS_ACCESS_KEY_ID + AWS_SECRET_ACCESS_KEY: + from_secret: AWS_SECRET_ACCESS_KEY + commands: + - ./ci/drone/linux_script diff --git a/ci/drone/linux_script b/ci/drone/linux_script new file mode 100755 index 0000000000..b11fd13de2 --- /dev/null +++ b/ci/drone/linux_script @@ -0,0 +1,52 @@ +#!/bin/sh + +set -x +set -e + +TRIPLEARCH="$(uname -m)" +BUILDDIR="$(pwd)" +DISTDIR="$(pwd)/dist" + +apk update +apk add py3-pip xz perl-utils +pip3 install s3cmd + +mkdir build +cd build +cmake .. -DCMAKE_BUILD_TYPE=Release "-DCMAKE_INSTALL_PREFIX=$DISTDIR" -DZIG_STATIC=ON -DCMAKE_PREFIX_PATH=/deps/local + +make -j$(nproc) install +./zig build test-behavior +# TODO figure out why running docs is causing EBADF on dup2 in the child +# ./zig build docs +# TODO full test suite: +#./zig build test + +if [ -z "$DRONE_PULL_REQUEST" ]; then + mv ../LICENSE "$DISTDIR/" + # TODO uncomment when the docs are generated + # mv ../zig-cache/langref.html "$DISTDIR/" + mv "$DISTDIR/bin/zig" "$DISTDIR/" + rmdir "$DISTDIR/bin" + + GITBRANCH="$DRONE_BRANCH" + VERSION="$("$DISTDIR/zig" version)" + DIRNAME="zig-linux-$TRIPLEARCH-$VERSION" + TARBALL="$DIRNAME.tar.xz" + mv "$DISTDIR" "$DIRNAME" + tar cfJ "$TARBALL" "$DIRNAME" + + s3cmd put -P --add-header="cache-control: public, max-age=31536000, immutable" "$TARBALL" s3://ziglang.org/builds/ + + SHASUM=$(shasum -a 256 $TARBALL | cut '-d ' -f1) + BYTESIZE=$(wc -c < $TARBALL) + + JSONFILE="$TRIPLEARCH-linux-$GITBRANCH.json" + touch $JSONFILE + echo "{\"tarball\": \"$TARBALL\"," >>$JSONFILE + echo "\"shasum\": \"$SHASUM\"," >>$JSONFILE + echo "\"size\": \"$BYTESIZE\"}" >>$JSONFILE + + s3cmd put -P --add-header="Cache-Control: max-age=0, must-revalidate" "$JSONFILE" "s3://ziglang.org/builds/$JSONFILE" + s3cmd put -P "$JSONFILE" "s3://ziglang.org/builds/$TRIPLEARCH-linux-$VERSION.json" +fi diff --git a/ci/srht/freebsd_script b/ci/srht/freebsd_script index 7937efeb38..213796f77c 100755 --- a/ci/srht/freebsd_script +++ b/ci/srht/freebsd_script @@ -15,7 +15,7 @@ tar xf "$CACHE_BASENAME.tar.xz" cd $ZIGDIR mkdir build cd build -cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH=$PREFIX -DCMAKE_INSTALL_PREFIX=$(pwd)/release -DZIG_STATIC=ON +cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH=$PREFIX "-DCMAKE_INSTALL_PREFIX=$(pwd)/release" -DZIG_STATIC=ON make $JOBS install release/bin/zig build test-fmt diff --git a/lib/std/os.zig b/lib/std/os.zig index d239f198f4..a1fe051997 100644 --- a/lib/std/os.zig +++ b/lib/std/os.zig @@ -663,7 +663,8 @@ pub fn dup2(old_fd: fd_t, new_fd: fd_t) !void { 0 => return, EBUSY, EINTR => continue, EMFILE => return error.ProcessFdQuotaExceeded, - EINVAL => unreachable, + EINVAL => unreachable, // invalid parameters passed to dup2 + EBADF => unreachable, // always a race condition else => |err| return unexpectedErrno(err), } } diff --git a/src-self-hosted/translate_c.zig b/src-self-hosted/translate_c.zig index 6a91b8e7bf..a5c4959d08 100644 --- a/src-self-hosted/translate_c.zig +++ b/src-self-hosted/translate_c.zig @@ -1123,7 +1123,7 @@ fn transCreateNodeAPInt(c: *Context, int: ?*const ZigClangAPSInt) !*ast.Node { var big = try std.math.big.Int.initCapacity(c.a(), num_limbs); defer big.deinit(); const data = ZigClangAPSInt_getRawData(int.?); - var i: usize = 0; + var i: @typeOf(num_limbs) = 0; while (i < num_limbs) : (i += 1) big.limbs[i] = data[i]; const str = big.toString(c.a(), 10) catch |err| switch (err) { error.OutOfMemory => return error.OutOfMemory,