From f1b538ef241e537e993ec585c47af35213ad0be1 Mon Sep 17 00:00:00 2001 From: Jakob Unterwurzacher Date: Sun, 4 Aug 2019 19:43:07 +0200 Subject: [PATCH] Fix "constant 2435016766 overflows int32" build failure on arm Cast to uint32 to fix the int32 overflow, and define BTRFS_SUPER_MAGIC locally to fix the next failure on darwin. --- mount.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/mount.go b/mount.go index 657878e..eeeffe8 100644 --- a/mount.go +++ b/mount.go @@ -100,9 +100,12 @@ func doMount(args *argContainer) { // Preallocation on Btrfs is broken ( https://github.com/rfjakob/gocryptfs/issues/395 ) // and slow ( https://github.com/rfjakob/gocryptfs/issues/63 ). if !args.noprealloc { + // darwin does not have unix.BTRFS_SUPER_MAGIC, so we define it here + const BTRFS_SUPER_MAGIC = 0x9123683e var st unix.Statfs_t err = unix.Statfs(args.cipherdir, &st) - if err == nil && st.Type == unix.BTRFS_SUPER_MAGIC { + // Cast to uint32 avoids compile error on arm: "constant 2435016766 overflows int32" + if err == nil && uint32(st.Type) == BTRFS_SUPER_MAGIC { tlog.Info.Printf(tlog.ColorYellow + "Btrfs detected, forcing -noprealloc. See https://github.com/rfjakob/gocryptfs/issues/395 for why." + tlog.ColorReset)