Pad out kernel image to multiple of 4 kB to make Bochs happier.
authorBen Pfaff <blp@cs.stanford.edu>
Tue, 17 Aug 2004 06:33:26 +0000 (06:33 +0000)
committerBen Pfaff <blp@cs.stanford.edu>
Tue, 17 Aug 2004 06:33:26 +0000 (06:33 +0000)
src/Makefile.inc

index 338bb25eac42efbd802e0f3ead5d49f69a812083..b28b5d20d600198f72278a2db5000431eb4769db 100644 (file)
@@ -56,10 +56,12 @@ kernel.o: $(OBJECTS)
                `$(CC) -print-libgcc-file-name`
 
 kernel.bin: kernel.o
-       objcopy -O binary -R .note -R .comment -S $< $@
+       objcopy -O binary -R .note -R .comment -S $< $@.data
+       perl -e 'print "\0" x (4096 - (-s "$@.data") % 4096)' > $@.pad
+       cat $@.data $@.pad > $@.tmp && mv $@.tmp $@
 
 loader.bin: loader.S kernel.bin
-       gcc -c $< -DKERNEL_LOAD_PAGES=`perl -e 'print int (((-s "kernel.bin") + 4095) / 4096);'`
+       gcc -c $< -DKERNEL_LOAD_PAGES=`perl -e 'print +(-s "kernel.bin") / 4096;'`
        ld -N -e start -Ttext 0x7c00 --oformat binary -o $@ loader.o
 
 diskimage.bin: loader.bin kernel.bin