#include <fcntl.h>
 #include <unistd.h>
+#include <stdlib.h>
 #include <stdio.h>
 
 /* Minimal definition of disklabel, so we don't have to include
     nread = read(fd, &bootloader_image, sizeof(bootblock));
     if(nread != sizeof(bootblock)) {
        perror("lxboot read");
-       fprintf(stderr, "expected %d, got %d\n", sizeof(bootblock), nread);
+       fprintf(stderr, "expected %zd, got %d\n", sizeof(bootblock), nread);
        exit(0);
     }
 
     nread = read(dev, &bootblock_from_disk, sizeof(bootblock));
     if(nread != sizeof(bootblock)) {
        perror("bootblock read");
-       fprintf(stderr, "expected %d, got %d\n", sizeof(bootblock), nread);
+       fprintf(stderr, "expected %zd, got %d\n", sizeof(bootblock), nread);
        exit(0);
     }