aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsrs5694 <srs5694@users.sourceforge.net>2011-06-26 22:40:06 -0400
committersrs5694 <srs5694@users.sourceforge.net>2011-06-26 22:40:06 -0400
commit00b6d7a4604e759eb3c92b3ecea608d6fe024b81 (patch)
treec47703bea8a55b25f90e9b9cc8a54cc3c51c10e9
parent6aae2a9b70e9f88926baad94c1eea40e0b534f01 (diff)
downloadandroid_external_gptfdisk-00b6d7a4604e759eb3c92b3ecea608d6fe024b81.tar.gz
android_external_gptfdisk-00b6d7a4604e759eb3c92b3ecea608d6fe024b81.tar.bz2
android_external_gptfdisk-00b6d7a4604e759eb3c92b3ecea608d6fe024b81.zip
0.7.2 release, includes new Linux type code & true GUID generation in
Windows
-rw-r--r--Makefile538
-rw-r--r--Makefile.freebsd5
-rw-r--r--Makefile.mac11
-rw-r--r--Makefile.mingw2
-rw-r--r--NEWS27
-rw-r--r--README39
-rw-r--r--basicmbr.cc11
-rw-r--r--bsd.cc2
-rw-r--r--current.spec8
-rw-r--r--diskio-unix.cc3
-rw-r--r--fixparts.84
-rw-r--r--gdisk.830
-rw-r--r--gdisk.cc13
-rw-r--r--gpt.cc5
-rw-r--r--gpt.h5
-rw-r--r--gptpart.cc24
-rw-r--r--gptpart.h2
-rw-r--r--guid.cc31
-rw-r--r--guid.h10
-rw-r--r--parttypes.cc39
-rw-r--r--parttypes.h2
-rw-r--r--sgdisk.824
-rw-r--r--support.h33
23 files changed, 208 insertions, 660 deletions
diff --git a/Makefile b/Makefile
index 66fdc64..4c3271e 100644
--- a/Makefile
+++ b/Makefile
@@ -1,11 +1,11 @@
CC=gcc
CXX=g++
CFLAGS+=-D_FILE_OFFSET_BITS=64
-CXXFLAGS+=-Wall -D_FILE_OFFSET_BITS=64
+CXXFLAGS+=-Wall -D_FILE_OFFSET_BITS=64 -D USE_UTF16
+#CXXFLAGS+=-Wall -D_FILE_OFFSET_BITS=64
LDFLAGS+=
LIB_NAMES=crc32 support guid gptpart mbrpart basicmbr mbr gpt bsd parttypes attributes diskio diskio-unix
MBR_LIBS=support diskio diskio-unix basicmbr mbrpart
-#LIB_SRCS=$(NAMES:=.cc)
LIB_OBJS=$(LIB_NAMES:=.o)
MBR_LIB_OBJS=$(MBR_LIBS:=.o)
LIB_HEADERS=$(LIB_NAMES:=.h)
@@ -14,9 +14,11 @@ DEPEND= makedepend $(CXXFLAGS)
all: gdisk sgdisk fixparts
gdisk: $(LIB_OBJS) gdisk.o gpttext.o
+# $(CXX) $(LIB_OBJS) gdisk.o gpttext.o $(LDFLAGS) -luuid -o gdisk
$(CXX) $(LIB_OBJS) gdisk.o gpttext.o $(LDFLAGS) -licuio -licuuc -luuid -o gdisk
sgdisk: $(LIB_OBJS) sgdisk.o
+# $(CXX) $(LIB_OBJS) sgdisk.o $(LDFLAGS) -luuid -lpopt -o sgdisk
$(CXX) $(LIB_OBJS) sgdisk.o $(LDFLAGS) -licuio -licuuc -luuid -lpopt -o sgdisk
fixparts: $(MBR_LIB_OBJS) fixparts.o
@@ -36,535 +38,3 @@ $(OBJS):
$(CRITICAL_CXX_FLAGS)
# DO NOT DELETE
-
-attributes.o: /usr/include/stdint.h /usr/include/features.h
-attributes.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h
-attributes.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h
-attributes.o: /usr/include/bits/wchar.h /usr/include/stdio.h
-attributes.o: /usr/include/bits/types.h /usr/include/bits/typesizes.h
-attributes.o: /usr/include/libio.h /usr/include/_G_config.h
-attributes.o: /usr/include/wchar.h /usr/include/bits/stdio_lim.h
-attributes.o: /usr/include/bits/sys_errlist.h attributes.h support.h
-attributes.o: /usr/include/stdlib.h /usr/include/bits/waitflags.h
-attributes.o: /usr/include/bits/waitstatus.h /usr/include/endian.h
-attributes.o: /usr/include/bits/endian.h /usr/include/bits/byteswap.h
-attributes.o: /usr/include/sys/types.h /usr/include/time.h
-attributes.o: /usr/include/sys/select.h /usr/include/bits/select.h
-attributes.o: /usr/include/bits/sigset.h /usr/include/bits/time.h
-attributes.o: /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h
-attributes.o: /usr/include/alloca.h
-basicmbr.o: /usr/include/stdio.h /usr/include/features.h
-basicmbr.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h
-basicmbr.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h
-basicmbr.o: /usr/include/bits/types.h /usr/include/bits/typesizes.h
-basicmbr.o: /usr/include/libio.h /usr/include/_G_config.h
-basicmbr.o: /usr/include/wchar.h /usr/include/bits/stdio_lim.h
-basicmbr.o: /usr/include/bits/sys_errlist.h /usr/include/stdlib.h
-basicmbr.o: /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h
-basicmbr.o: /usr/include/endian.h /usr/include/bits/endian.h
-basicmbr.o: /usr/include/bits/byteswap.h /usr/include/sys/types.h
-basicmbr.o: /usr/include/time.h /usr/include/sys/select.h
-basicmbr.o: /usr/include/bits/select.h /usr/include/bits/sigset.h
-basicmbr.o: /usr/include/bits/time.h /usr/include/sys/sysmacros.h
-basicmbr.o: /usr/include/bits/pthreadtypes.h /usr/include/alloca.h
-basicmbr.o: /usr/include/stdint.h /usr/include/bits/wchar.h
-basicmbr.o: /usr/include/fcntl.h /usr/include/bits/fcntl.h
-basicmbr.o: /usr/include/bits/stat.h /usr/include/string.h
-basicmbr.o: /usr/include/xlocale.h /usr/include/sys/stat.h
-basicmbr.o: /usr/include/errno.h /usr/include/bits/errno.h
-basicmbr.o: /usr/include/linux/errno.h /usr/include/asm/errno.h
-basicmbr.o: /usr/include/asm-generic/errno.h
-basicmbr.o: /usr/include/asm-generic/errno-base.h mbr.h gptpart.h support.h
-basicmbr.o: parttypes.h /usr/include/unicode/ustream.h
-basicmbr.o: /usr/include/unicode/unistr.h /usr/include/unicode/utypes.h
-basicmbr.o: /usr/include/unicode/umachine.h /usr/include/unicode/ptypes.h
-basicmbr.o: /usr/include/unicode/platform.h /usr/include/inttypes.h
-basicmbr.o: /usr/include/unicode/urename.h /usr/include/unicode/uvernum.h
-basicmbr.o: /usr/include/unicode/utf.h /usr/include/unicode/utf8.h
-basicmbr.o: /usr/include/unicode/utf16.h /usr/include/unicode/utf_old.h
-basicmbr.o: /usr/include/unicode/uversion.h /usr/include/unicode/uconfig.h
-basicmbr.o: /usr/include/unicode/rep.h /usr/include/unicode/uobject.h
-basicmbr.o: /usr/include/unicode/std_string.h
-basicmbr.o: /usr/include/unicode/stringpiece.h
-basicmbr.o: /usr/include/unicode/bytestream.h guid.h /usr/include/uuid/uuid.h
-basicmbr.o: /usr/include/sys/time.h attributes.h diskio.h
-basicmbr.o: /usr/include/sys/ioctl.h /usr/include/bits/ioctls.h
-basicmbr.o: /usr/include/asm/ioctls.h /usr/include/asm-generic/ioctls.h
-basicmbr.o: /usr/include/linux/ioctl.h /usr/include/asm/ioctl.h
-basicmbr.o: /usr/include/asm-generic/ioctl.h /usr/include/bits/ioctl-types.h
-basicmbr.o: /usr/include/sys/ttydefaults.h basicmbr.h mbrpart.h
-bsd.o: /usr/include/stdio.h /usr/include/features.h /usr/include/sys/cdefs.h
-bsd.o: /usr/include/bits/wordsize.h /usr/include/gnu/stubs.h
-bsd.o: /usr/include/gnu/stubs-64.h /usr/include/bits/types.h
-bsd.o: /usr/include/bits/typesizes.h /usr/include/libio.h
-bsd.o: /usr/include/_G_config.h /usr/include/wchar.h
-bsd.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h
-bsd.o: /usr/include/stdlib.h /usr/include/bits/waitflags.h
-bsd.o: /usr/include/bits/waitstatus.h /usr/include/endian.h
-bsd.o: /usr/include/bits/endian.h /usr/include/bits/byteswap.h
-bsd.o: /usr/include/sys/types.h /usr/include/time.h /usr/include/sys/select.h
-bsd.o: /usr/include/bits/select.h /usr/include/bits/sigset.h
-bsd.o: /usr/include/bits/time.h /usr/include/sys/sysmacros.h
-bsd.o: /usr/include/bits/pthreadtypes.h /usr/include/alloca.h
-bsd.o: /usr/include/stdint.h /usr/include/bits/wchar.h /usr/include/fcntl.h
-bsd.o: /usr/include/bits/fcntl.h /usr/include/bits/stat.h
-bsd.o: /usr/include/sys/stat.h /usr/include/errno.h /usr/include/bits/errno.h
-bsd.o: /usr/include/linux/errno.h /usr/include/asm/errno.h
-bsd.o: /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h
-bsd.o: support.h bsd.h gptpart.h parttypes.h /usr/include/unicode/ustream.h
-bsd.o: /usr/include/unicode/unistr.h /usr/include/unicode/utypes.h
-bsd.o: /usr/include/unicode/umachine.h /usr/include/unicode/ptypes.h
-bsd.o: /usr/include/unicode/platform.h /usr/include/inttypes.h
-bsd.o: /usr/include/unicode/urename.h /usr/include/unicode/uvernum.h
-bsd.o: /usr/include/unicode/utf.h /usr/include/unicode/utf8.h
-bsd.o: /usr/include/unicode/utf16.h /usr/include/unicode/utf_old.h
-bsd.o: /usr/include/unicode/uversion.h /usr/include/unicode/uconfig.h
-bsd.o: /usr/include/unicode/rep.h /usr/include/unicode/uobject.h
-bsd.o: /usr/include/unicode/std_string.h /usr/include/unicode/stringpiece.h
-bsd.o: /usr/include/unicode/bytestream.h guid.h /usr/include/uuid/uuid.h
-bsd.o: /usr/include/sys/time.h attributes.h diskio.h /usr/include/sys/ioctl.h
-bsd.o: /usr/include/bits/ioctls.h /usr/include/asm/ioctls.h
-bsd.o: /usr/include/asm-generic/ioctls.h /usr/include/linux/ioctl.h
-bsd.o: /usr/include/asm/ioctl.h /usr/include/asm-generic/ioctl.h
-bsd.o: /usr/include/bits/ioctl-types.h /usr/include/sys/ttydefaults.h
-crc32.o: /usr/include/stdio.h /usr/include/features.h
-crc32.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h
-crc32.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h
-crc32.o: /usr/include/bits/types.h /usr/include/bits/typesizes.h
-crc32.o: /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h
-crc32.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h
-crc32.o: /usr/include/stdlib.h /usr/include/bits/waitflags.h
-crc32.o: /usr/include/bits/waitstatus.h /usr/include/endian.h
-crc32.o: /usr/include/bits/endian.h /usr/include/bits/byteswap.h
-crc32.o: /usr/include/sys/types.h /usr/include/time.h
-crc32.o: /usr/include/sys/select.h /usr/include/bits/select.h
-crc32.o: /usr/include/bits/sigset.h /usr/include/bits/time.h
-crc32.o: /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h
-crc32.o: /usr/include/alloca.h crc32.h /usr/include/stdint.h
-crc32.o: /usr/include/bits/wchar.h
-diskio.o: /usr/include/sys/ioctl.h /usr/include/features.h
-diskio.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h
-diskio.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h
-diskio.o: /usr/include/bits/ioctls.h /usr/include/asm/ioctls.h
-diskio.o: /usr/include/asm-generic/ioctls.h /usr/include/linux/ioctl.h
-diskio.o: /usr/include/asm/ioctl.h /usr/include/asm-generic/ioctl.h
-diskio.o: /usr/include/bits/ioctl-types.h /usr/include/sys/ttydefaults.h
-diskio.o: /usr/include/stdint.h /usr/include/bits/wchar.h
-diskio.o: /usr/include/errno.h /usr/include/bits/errno.h
-diskio.o: /usr/include/linux/errno.h /usr/include/asm/errno.h
-diskio.o: /usr/include/asm-generic/errno.h
-diskio.o: /usr/include/asm-generic/errno-base.h /usr/include/fcntl.h
-diskio.o: /usr/include/bits/fcntl.h /usr/include/sys/types.h
-diskio.o: /usr/include/bits/types.h /usr/include/bits/typesizes.h
-diskio.o: /usr/include/time.h /usr/include/endian.h
-diskio.o: /usr/include/bits/endian.h /usr/include/bits/byteswap.h
-diskio.o: /usr/include/sys/select.h /usr/include/bits/select.h
-diskio.o: /usr/include/bits/sigset.h /usr/include/bits/time.h
-diskio.o: /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h
-diskio.o: /usr/include/bits/stat.h /usr/include/sys/stat.h support.h
-diskio.o: /usr/include/stdlib.h /usr/include/bits/waitflags.h
-diskio.o: /usr/include/bits/waitstatus.h /usr/include/alloca.h diskio.h
-diskio-unix.o: /usr/include/sys/ioctl.h /usr/include/features.h
-diskio-unix.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h
-diskio-unix.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h
-diskio-unix.o: /usr/include/bits/ioctls.h /usr/include/asm/ioctls.h
-diskio-unix.o: /usr/include/asm-generic/ioctls.h /usr/include/linux/ioctl.h
-diskio-unix.o: /usr/include/asm/ioctl.h /usr/include/asm-generic/ioctl.h
-diskio-unix.o: /usr/include/bits/ioctl-types.h /usr/include/sys/ttydefaults.h
-diskio-unix.o: /usr/include/string.h /usr/include/xlocale.h
-diskio-unix.o: /usr/include/stdint.h /usr/include/bits/wchar.h
-diskio-unix.o: /usr/include/errno.h /usr/include/bits/errno.h
-diskio-unix.o: /usr/include/linux/errno.h /usr/include/asm/errno.h
-diskio-unix.o: /usr/include/asm-generic/errno.h
-diskio-unix.o: /usr/include/asm-generic/errno-base.h /usr/include/fcntl.h
-diskio-unix.o: /usr/include/bits/fcntl.h /usr/include/sys/types.h
-diskio-unix.o: /usr/include/bits/types.h /usr/include/bits/typesizes.h
-diskio-unix.o: /usr/include/time.h /usr/include/endian.h
-diskio-unix.o: /usr/include/bits/endian.h /usr/include/bits/byteswap.h
-diskio-unix.o: /usr/include/sys/select.h /usr/include/bits/select.h
-diskio-unix.o: /usr/include/bits/sigset.h /usr/include/bits/time.h
-diskio-unix.o: /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h
-diskio-unix.o: /usr/include/bits/stat.h /usr/include/sys/stat.h diskio.h
-diskio-unix.o: support.h /usr/include/stdlib.h /usr/include/bits/waitflags.h
-diskio-unix.o: /usr/include/bits/waitstatus.h /usr/include/alloca.h
-diskio-windows.o: /usr/include/stdio.h /usr/include/features.h
-diskio-windows.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h
-diskio-windows.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h
-diskio-windows.o: /usr/include/bits/types.h /usr/include/bits/typesizes.h
-diskio-windows.o: /usr/include/libio.h /usr/include/_G_config.h
-diskio-windows.o: /usr/include/wchar.h /usr/include/bits/stdio_lim.h
-diskio-windows.o: /usr/include/bits/sys_errlist.h /usr/include/stdint.h
-diskio-windows.o: /usr/include/bits/wchar.h /usr/include/errno.h
-diskio-windows.o: /usr/include/bits/errno.h /usr/include/linux/errno.h
-diskio-windows.o: /usr/include/asm/errno.h /usr/include/asm-generic/errno.h
-diskio-windows.o: /usr/include/asm-generic/errno-base.h /usr/include/fcntl.h
-diskio-windows.o: /usr/include/bits/fcntl.h /usr/include/sys/types.h
-diskio-windows.o: /usr/include/time.h /usr/include/endian.h
-diskio-windows.o: /usr/include/bits/endian.h /usr/include/bits/byteswap.h
-diskio-windows.o: /usr/include/sys/select.h /usr/include/bits/select.h
-diskio-windows.o: /usr/include/bits/sigset.h /usr/include/bits/time.h
-diskio-windows.o: /usr/include/sys/sysmacros.h
-diskio-windows.o: /usr/include/bits/pthreadtypes.h /usr/include/bits/stat.h
-diskio-windows.o: /usr/include/sys/stat.h support.h /usr/include/stdlib.h
-diskio-windows.o: /usr/include/bits/waitflags.h
-diskio-windows.o: /usr/include/bits/waitstatus.h /usr/include/alloca.h
-diskio-windows.o: diskio.h /usr/include/sys/ioctl.h
-diskio-windows.o: /usr/include/bits/ioctls.h /usr/include/asm/ioctls.h
-diskio-windows.o: /usr/include/asm-generic/ioctls.h
-diskio-windows.o: /usr/include/linux/ioctl.h /usr/include/asm/ioctl.h
-diskio-windows.o: /usr/include/asm-generic/ioctl.h
-diskio-windows.o: /usr/include/bits/ioctl-types.h
-diskio-windows.o: /usr/include/sys/ttydefaults.h
-fixparts.o: /usr/include/stdio.h /usr/include/features.h
-fixparts.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h
-fixparts.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h
-fixparts.o: /usr/include/bits/types.h /usr/include/bits/typesizes.h
-fixparts.o: /usr/include/libio.h /usr/include/_G_config.h
-fixparts.o: /usr/include/wchar.h /usr/include/bits/stdio_lim.h
-fixparts.o: /usr/include/bits/sys_errlist.h /usr/include/string.h
-fixparts.o: /usr/include/xlocale.h basicmbr.h /usr/include/stdint.h
-fixparts.o: /usr/include/bits/wchar.h /usr/include/sys/types.h
-fixparts.o: /usr/include/time.h /usr/include/endian.h
-fixparts.o: /usr/include/bits/endian.h /usr/include/bits/byteswap.h
-fixparts.o: /usr/include/sys/select.h /usr/include/bits/select.h
-fixparts.o: /usr/include/bits/sigset.h /usr/include/bits/time.h
-fixparts.o: /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h
-fixparts.o: diskio.h /usr/include/sys/ioctl.h /usr/include/bits/ioctls.h
-fixparts.o: /usr/include/asm/ioctls.h /usr/include/asm-generic/ioctls.h
-fixparts.o: /usr/include/linux/ioctl.h /usr/include/asm/ioctl.h
-fixparts.o: /usr/include/asm-generic/ioctl.h /usr/include/bits/ioctl-types.h
-fixparts.o: /usr/include/sys/ttydefaults.h support.h /usr/include/stdlib.h
-fixparts.o: /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h
-fixparts.o: /usr/include/alloca.h mbrpart.h
-gdisk.o: /usr/include/stdio.h /usr/include/features.h
-gdisk.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h
-gdisk.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h
-gdisk.o: /usr/include/bits/types.h /usr/include/bits/typesizes.h
-gdisk.o: /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h
-gdisk.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h
-gdisk.o: /usr/include/string.h /usr/include/xlocale.h mbr.h
-gdisk.o: /usr/include/stdint.h /usr/include/bits/wchar.h
-gdisk.o: /usr/include/sys/types.h /usr/include/time.h /usr/include/endian.h
-gdisk.o: /usr/include/bits/endian.h /usr/include/bits/byteswap.h
-gdisk.o: /usr/include/sys/select.h /usr/include/bits/select.h
-gdisk.o: /usr/include/bits/sigset.h /usr/include/bits/time.h
-gdisk.o: /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h
-gdisk.o: gptpart.h support.h /usr/include/stdlib.h
-gdisk.o: /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h
-gdisk.o: /usr/include/alloca.h parttypes.h /usr/include/unicode/ustream.h
-gdisk.o: /usr/include/unicode/unistr.h /usr/include/unicode/utypes.h
-gdisk.o: /usr/include/unicode/umachine.h /usr/include/unicode/ptypes.h
-gdisk.o: /usr/include/unicode/platform.h /usr/include/inttypes.h
-gdisk.o: /usr/include/unicode/urename.h /usr/include/unicode/uvernum.h
-gdisk.o: /usr/include/unicode/utf.h /usr/include/unicode/utf8.h
-gdisk.o: /usr/include/unicode/utf16.h /usr/include/unicode/utf_old.h
-gdisk.o: /usr/include/unicode/uversion.h /usr/include/unicode/uconfig.h
-gdisk.o: /usr/include/unicode/rep.h /usr/include/unicode/uobject.h
-gdisk.o: /usr/include/unicode/std_string.h /usr/include/unicode/stringpiece.h
-gdisk.o: /usr/include/unicode/bytestream.h guid.h /usr/include/uuid/uuid.h
-gdisk.o: /usr/include/sys/time.h attributes.h diskio.h
-gdisk.o: /usr/include/sys/ioctl.h /usr/include/bits/ioctls.h
-gdisk.o: /usr/include/asm/ioctls.h /usr/include/asm-generic/ioctls.h
-gdisk.o: /usr/include/linux/ioctl.h /usr/include/asm/ioctl.h
-gdisk.o: /usr/include/asm-generic/ioctl.h /usr/include/bits/ioctl-types.h
-gdisk.o: /usr/include/sys/ttydefaults.h basicmbr.h mbrpart.h gpttext.h gpt.h
-gdisk.o: bsd.h
-gpt.o: /usr/include/stdio.h /usr/include/features.h /usr/include/sys/cdefs.h
-gpt.o: /usr/include/bits/wordsize.h /usr/include/gnu/stubs.h
-gpt.o: /usr/include/gnu/stubs-64.h /usr/include/bits/types.h
-gpt.o: /usr/include/bits/typesizes.h /usr/include/libio.h
-gpt.o: /usr/include/_G_config.h /usr/include/wchar.h
-gpt.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h
-gpt.o: /usr/include/stdlib.h /usr/include/bits/waitflags.h
-gpt.o: /usr/include/bits/waitstatus.h /usr/include/endian.h
-gpt.o: /usr/include/bits/endian.h /usr/include/bits/byteswap.h
-gpt.o: /usr/include/sys/types.h /usr/include/time.h /usr/include/sys/select.h
-gpt.o: /usr/include/bits/select.h /usr/include/bits/sigset.h
-gpt.o: /usr/include/bits/time.h /usr/include/sys/sysmacros.h
-gpt.o: /usr/include/bits/pthreadtypes.h /usr/include/alloca.h
-gpt.o: /usr/include/stdint.h /usr/include/bits/wchar.h /usr/include/fcntl.h
-gpt.o: /usr/include/bits/fcntl.h /usr/include/bits/stat.h
-gpt.o: /usr/include/string.h /usr/include/xlocale.h /usr/include/math.h
-gpt.o: /usr/include/bits/huge_val.h /usr/include/bits/huge_valf.h
-gpt.o: /usr/include/bits/huge_vall.h /usr/include/bits/inf.h
-gpt.o: /usr/include/bits/nan.h /usr/include/bits/mathdef.h
-gpt.o: /usr/include/bits/mathcalls.h /usr/include/sys/stat.h
-gpt.o: /usr/include/errno.h /usr/include/bits/errno.h
-gpt.o: /usr/include/linux/errno.h /usr/include/asm/errno.h
-gpt.o: /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h
-gpt.o: crc32.h gpt.h gptpart.h support.h parttypes.h
-gpt.o: /usr/include/unicode/ustream.h /usr/include/unicode/unistr.h
-gpt.o: /usr/include/unicode/utypes.h /usr/include/unicode/umachine.h
-gpt.o: /usr/include/unicode/ptypes.h /usr/include/unicode/platform.h
-gpt.o: /usr/include/inttypes.h /usr/include/unicode/urename.h
-gpt.o: /usr/include/unicode/uvernum.h /usr/include/unicode/utf.h
-gpt.o: /usr/include/unicode/utf8.h /usr/include/unicode/utf16.h
-gpt.o: /usr/include/unicode/utf_old.h /usr/include/unicode/uversion.h
-gpt.o: /usr/include/unicode/uconfig.h /usr/include/unicode/rep.h
-gpt.o: /usr/include/unicode/uobject.h /usr/include/unicode/std_string.h
-gpt.o: /usr/include/unicode/stringpiece.h /usr/include/unicode/bytestream.h
-gpt.o: guid.h /usr/include/uuid/uuid.h /usr/include/sys/time.h attributes.h
-gpt.o: mbr.h diskio.h /usr/include/sys/ioctl.h /usr/include/bits/ioctls.h
-gpt.o: /usr/include/asm/ioctls.h /usr/include/asm-generic/ioctls.h
-gpt.o: /usr/include/linux/ioctl.h /usr/include/asm/ioctl.h
-gpt.o: /usr/include/asm-generic/ioctl.h /usr/include/bits/ioctl-types.h
-gpt.o: /usr/include/sys/ttydefaults.h basicmbr.h mbrpart.h bsd.h
-gptpart.o: /usr/include/unicode/ustdio.h /usr/include/stdio.h
-gptpart.o: /usr/include/features.h /usr/include/sys/cdefs.h
-gptpart.o: /usr/include/bits/wordsize.h /usr/include/gnu/stubs.h
-gptpart.o: /usr/include/gnu/stubs-64.h /usr/include/bits/types.h
-gptpart.o: /usr/include/bits/typesizes.h /usr/include/libio.h
-gptpart.o: /usr/include/_G_config.h /usr/include/wchar.h
-gptpart.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h
-gptpart.o: /usr/include/unicode/utypes.h /usr/include/unicode/umachine.h
-gptpart.o: /usr/include/unicode/ptypes.h /usr/include/sys/types.h
-gptpart.o: /usr/include/time.h /usr/include/endian.h
-gptpart.o: /usr/include/bits/endian.h /usr/include/bits/byteswap.h
-gptpart.o: /usr/include/sys/select.h /usr/include/bits/select.h
-gptpart.o: /usr/include/bits/sigset.h /usr/include/bits/time.h
-gptpart.o: /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h
-gptpart.o: /usr/include/unicode/platform.h /usr/include/inttypes.h
-gptpart.o: /usr/include/stdint.h /usr/include/bits/wchar.h
-gptpart.o: /usr/include/unicode/urename.h /usr/include/unicode/uvernum.h
-gptpart.o: /usr/include/unicode/utf.h /usr/include/unicode/utf8.h
-gptpart.o: /usr/include/unicode/utf16.h /usr/include/unicode/utf_old.h
-gptpart.o: /usr/include/unicode/uversion.h /usr/include/unicode/uconfig.h
-gptpart.o: /usr/include/unicode/ucnv.h /usr/include/unicode/ucnv_err.h
-gptpart.o: /usr/include/unicode/uenum.h /usr/include/unicode/localpointer.h
-gptpart.o: /usr/include/unicode/utrans.h /usr/include/unicode/urep.h
-gptpart.o: /usr/include/unicode/parseerr.h /usr/include/string.h
-gptpart.o: /usr/include/xlocale.h gptpart.h support.h /usr/include/stdlib.h
-gptpart.o: /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h
-gptpart.o: /usr/include/alloca.h parttypes.h /usr/include/unicode/ustream.h
-gptpart.o: /usr/include/unicode/unistr.h /usr/include/unicode/rep.h
-gptpart.o: /usr/include/unicode/uobject.h /usr/include/unicode/std_string.h
-gptpart.o: /usr/include/unicode/stringpiece.h
-gptpart.o: /usr/include/unicode/bytestream.h guid.h /usr/include/uuid/uuid.h
-gptpart.o: /usr/include/sys/time.h attributes.h
-gpttext.o: /usr/include/string.h /usr/include/features.h
-gpttext.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h
-gpttext.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h
-gpttext.o: /usr/include/xlocale.h /usr/include/errno.h
-gpttext.o: /usr/include/bits/errno.h /usr/include/linux/errno.h
-gpttext.o: /usr/include/asm/errno.h /usr/include/asm-generic/errno.h
-gpttext.o: /usr/include/asm-generic/errno-base.h /usr/include/stdint.h
-gpttext.o: /usr/include/bits/wchar.h /usr/include/limits.h
-gpttext.o: /usr/include/bits/posix1_lim.h /usr/include/bits/local_lim.h
-gpttext.o: /usr/include/linux/limits.h /usr/include/bits/posix2_lim.h
-gpttext.o: attributes.h gpttext.h gpt.h /usr/include/sys/types.h
-gpttext.o: /usr/include/bits/types.h /usr/include/bits/typesizes.h
-gpttext.o: /usr/include/time.h /usr/include/endian.h
-gpttext.o: /usr/include/bits/endian.h /usr/include/bits/byteswap.h
-gpttext.o: /usr/include/sys/select.h /usr/include/bits/select.h
-gpttext.o: /usr/include/bits/sigset.h /usr/include/bits/time.h
-gpttext.o: /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h
-gpttext.o: gptpart.h support.h /usr/include/stdlib.h
-gpttext.o: /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h
-gpttext.o: /usr/include/alloca.h parttypes.h /usr/include/unicode/ustream.h
-gpttext.o: /usr/include/unicode/unistr.h /usr/include/unicode/utypes.h
-gpttext.o: /usr/include/unicode/umachine.h /usr/include/unicode/ptypes.h
-gpttext.o: /usr/include/unicode/platform.h /usr/include/inttypes.h
-gpttext.o: /usr/include/unicode/urename.h /usr/include/unicode/uvernum.h
-gpttext.o: /usr/include/unicode/utf.h /usr/include/unicode/utf8.h
-gpttext.o: /usr/include/unicode/utf16.h /usr/include/unicode/utf_old.h
-gpttext.o: /usr/include/unicode/uversion.h /usr/include/unicode/uconfig.h
-gpttext.o: /usr/include/unicode/rep.h /usr/include/unicode/uobject.h
-gpttext.o: /usr/include/unicode/std_string.h
-gpttext.o: /usr/include/unicode/stringpiece.h
-gpttext.o: /usr/include/unicode/bytestream.h guid.h /usr/include/uuid/uuid.h
-gpttext.o: /usr/include/sys/time.h mbr.h diskio.h /usr/include/sys/ioctl.h
-gpttext.o: /usr/include/bits/ioctls.h /usr/include/asm/ioctls.h
-gpttext.o: /usr/include/asm-generic/ioctls.h /usr/include/linux/ioctl.h
-gpttext.o: /usr/include/asm/ioctl.h /usr/include/asm-generic/ioctl.h
-gpttext.o: /usr/include/bits/ioctl-types.h /usr/include/sys/ttydefaults.h
-gpttext.o: basicmbr.h mbrpart.h bsd.h
-guid.o: /usr/include/stdio.h /usr/include/features.h /usr/include/sys/cdefs.h
-guid.o: /usr/include/bits/wordsize.h /usr/include/gnu/stubs.h
-guid.o: /usr/include/gnu/stubs-64.h /usr/include/bits/types.h
-guid.o: /usr/include/bits/typesizes.h /usr/include/libio.h
-guid.o: /usr/include/_G_config.h /usr/include/wchar.h
-guid.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h
-guid.o: /usr/include/time.h /usr/include/string.h /usr/include/xlocale.h
-guid.o: guid.h /usr/include/stdint.h /usr/include/bits/wchar.h
-guid.o: /usr/include/uuid/uuid.h /usr/include/sys/types.h
-guid.o: /usr/include/endian.h /usr/include/bits/endian.h
-guid.o: /usr/include/bits/byteswap.h /usr/include/sys/select.h
-guid.o: /usr/include/bits/select.h /usr/include/bits/sigset.h
-guid.o: /usr/include/bits/time.h /usr/include/sys/sysmacros.h
-guid.o: /usr/include/bits/pthreadtypes.h /usr/include/sys/time.h support.h
-guid.o: /usr/include/stdlib.h /usr/include/bits/waitflags.h
-guid.o: /usr/include/bits/waitstatus.h /usr/include/alloca.h
-mbr.o: /usr/include/stdio.h /usr/include/features.h /usr/include/sys/cdefs.h
-mbr.o: /usr/include/bits/wordsize.h /usr/include/gnu/stubs.h
-mbr.o: /usr/include/gnu/stubs-64.h /usr/include/bits/types.h
-mbr.o: /usr/include/bits/typesizes.h /usr/include/libio.h
-mbr.o: /usr/include/_G_config.h /usr/include/wchar.h
-mbr.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h
-mbr.o: /usr/include/stdlib.h /usr/include/bits/waitflags.h
-mbr.o: /usr/include/bits/waitstatus.h /usr/include/endian.h
-mbr.o: /usr/include/bits/endian.h /usr/include/bits/byteswap.h
-mbr.o: /usr/include/sys/types.h /usr/include/time.h /usr/include/sys/select.h
-mbr.o: /usr/include/bits/select.h /usr/include/bits/sigset.h
-mbr.o: /usr/include/bits/time.h /usr/include/sys/sysmacros.h
-mbr.o: /usr/include/bits/pthreadtypes.h /usr/include/alloca.h
-mbr.o: /usr/include/stdint.h /usr/include/bits/wchar.h /usr/include/fcntl.h
-mbr.o: /usr/include/bits/fcntl.h /usr/include/bits/stat.h
-mbr.o: /usr/include/string.h /usr/include/xlocale.h /usr/include/sys/stat.h
-mbr.o: /usr/include/errno.h /usr/include/bits/errno.h
-mbr.o: /usr/include/linux/errno.h /usr/include/asm/errno.h
-mbr.o: /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h
-mbr.o: mbr.h gptpart.h support.h parttypes.h /usr/include/unicode/ustream.h
-mbr.o: /usr/include/unicode/unistr.h /usr/include/unicode/utypes.h
-mbr.o: /usr/include/unicode/umachine.h /usr/include/unicode/ptypes.h
-mbr.o: /usr/include/unicode/platform.h /usr/include/inttypes.h
-mbr.o: /usr/include/unicode/urename.h /usr/include/unicode/uvernum.h
-mbr.o: /usr/include/unicode/utf.h /usr/include/unicode/utf8.h
-mbr.o: /usr/include/unicode/utf16.h /usr/include/unicode/utf_old.h
-mbr.o: /usr/include/unicode/uversion.h /usr/include/unicode/uconfig.h
-mbr.o: /usr/include/unicode/rep.h /usr/include/unicode/uobject.h
-mbr.o: /usr/include/unicode/std_string.h /usr/include/unicode/stringpiece.h
-mbr.o: /usr/include/unicode/bytestream.h guid.h /usr/include/uuid/uuid.h
-mbr.o: /usr/include/sys/time.h attributes.h diskio.h /usr/include/sys/ioctl.h
-mbr.o: /usr/include/bits/ioctls.h /usr/include/asm/ioctls.h
-mbr.o: /usr/include/asm-generic/ioctls.h /usr/include/linux/ioctl.h
-mbr.o: /usr/include/asm/ioctl.h /usr/include/asm-generic/ioctl.h
-mbr.o: /usr/include/bits/ioctl-types.h /usr/include/sys/ttydefaults.h
-mbr.o: basicmbr.h mbrpart.h
-mbrpart.o: /usr/include/stdint.h /usr/include/features.h
-mbrpart.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h
-mbrpart.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h
-mbrpart.o: /usr/include/bits/wchar.h support.h /usr/include/stdlib.h
-mbrpart.o: /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h
-mbrpart.o: /usr/include/endian.h /usr/include/bits/endian.h
-mbrpart.o: /usr/include/bits/byteswap.h /usr/include/sys/types.h
-mbrpart.o: /usr/include/bits/types.h /usr/include/bits/typesizes.h
-mbrpart.o: /usr/include/time.h /usr/include/sys/select.h
-mbrpart.o: /usr/include/bits/select.h /usr/include/bits/sigset.h
-mbrpart.o: /usr/include/bits/time.h /usr/include/sys/sysmacros.h
-mbrpart.o: /usr/include/bits/pthreadtypes.h /usr/include/alloca.h mbrpart.h
-parttypes.o: /usr/include/string.h /usr/include/features.h
-parttypes.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h
-parttypes.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h
-parttypes.o: /usr/include/xlocale.h /usr/include/stdint.h
-parttypes.o: /usr/include/bits/wchar.h /usr/include/stdio.h
-parttypes.o: /usr/include/bits/types.h /usr/include/bits/typesizes.h
-parttypes.o: /usr/include/libio.h /usr/include/_G_config.h
-parttypes.o: /usr/include/wchar.h /usr/include/bits/stdio_lim.h
-parttypes.o: /usr/include/bits/sys_errlist.h parttypes.h
-parttypes.o: /usr/include/stdlib.h /usr/include/bits/waitflags.h
-parttypes.o: /usr/include/bits/waitstatus.h /usr/include/endian.h
-parttypes.o: /usr/include/bits/endian.h /usr/include/bits/byteswap.h
-parttypes.o: /usr/include/sys/types.h /usr/include/time.h
-parttypes.o: /usr/include/sys/select.h /usr/include/bits/select.h
-parttypes.o: /usr/include/bits/sigset.h /usr/include/bits/time.h
-parttypes.o: /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h
-parttypes.o: /usr/include/alloca.h /usr/include/unicode/ustream.h
-parttypes.o: /usr/include/unicode/unistr.h /usr/include/unicode/utypes.h
-parttypes.o: /usr/include/unicode/umachine.h /usr/include/unicode/ptypes.h
-parttypes.o: /usr/include/unicode/platform.h /usr/include/inttypes.h
-parttypes.o: /usr/include/unicode/urename.h /usr/include/unicode/uvernum.h
-parttypes.o: /usr/include/unicode/utf.h /usr/include/unicode/utf8.h
-parttypes.o: /usr/include/unicode/utf16.h /usr/include/unicode/utf_old.h
-parttypes.o: /usr/include/unicode/uversion.h /usr/include/unicode/uconfig.h
-parttypes.o: /usr/include/unicode/rep.h /usr/include/unicode/uobject.h
-parttypes.o: /usr/include/unicode/std_string.h
-parttypes.o: /usr/include/unicode/stringpiece.h
-parttypes.o: /usr/include/unicode/bytestream.h support.h guid.h
-parttypes.o: /usr/include/uuid/uuid.h /usr/include/sys/time.h
-sgdisk.o: /usr/include/stdio.h /usr/include/features.h
-sgdisk.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h
-sgdisk.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h
-sgdisk.o: /usr/include/bits/types.h /usr/include/bits/typesizes.h
-sgdisk.o: /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h
-sgdisk.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h
-sgdisk.o: /usr/include/popt.h /usr/include/errno.h /usr/include/bits/errno.h
-sgdisk.o: /usr/include/linux/errno.h /usr/include/asm/errno.h
-sgdisk.o: /usr/include/asm-generic/errno.h
-sgdisk.o: /usr/include/asm-generic/errno-base.h /usr/include/stdint.h
-sgdisk.o: /usr/include/bits/wchar.h /usr/include/string.h
-sgdisk.o: /usr/include/xlocale.h mbr.h /usr/include/sys/types.h
-sgdisk.o: /usr/include/time.h /usr/include/endian.h
-sgdisk.o: /usr/include/bits/endian.h /usr/include/bits/byteswap.h
-sgdisk.o: /usr/include/sys/select.h /usr/include/bits/select.h
-sgdisk.o: /usr/include/bits/sigset.h /usr/include/bits/time.h
-sgdisk.o: /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h
-sgdisk.o: gptpart.h support.h /usr/include/stdlib.h
-sgdisk.o: /usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h
-sgdisk.o: /usr/include/alloca.h parttypes.h /usr/include/unicode/ustream.h
-sgdisk.o: /usr/include/unicode/unistr.h /usr/include/unicode/utypes.h
-sgdisk.o: /usr/include/unicode/umachine.h /usr/include/unicode/ptypes.h
-sgdisk.o: /usr/include/unicode/platform.h /usr/include/inttypes.h
-sgdisk.o: /usr/include/unicode/urename.h /usr/include/unicode/uvernum.h
-sgdisk.o: /usr/include/unicode/utf.h /usr/include/unicode/utf8.h
-sgdisk.o: /usr/include/unicode/utf16.h /usr/include/unicode/utf_old.h
-sgdisk.o: /usr/include/unicode/uversion.h /usr/include/unicode/uconfig.h
-sgdisk.o: /usr/include/unicode/rep.h /usr/include/unicode/uobject.h
-sgdisk.o: /usr/include/unicode/std_string.h
-sgdisk.o: /usr/include/unicode/stringpiece.h
-sgdisk.o: /usr/include/unicode/bytestream.h guid.h /usr/include/uuid/uuid.h
-sgdisk.o: /usr/include/sys/time.h attributes.h diskio.h
-sgdisk.o: /usr/include/sys/ioctl.h /usr/include/bits/ioctls.h
-sgdisk.o: /usr/include/asm/ioctls.h /usr/include/asm-generic/ioctls.h
-sgdisk.o: /usr/include/linux/ioctl.h /usr/include/asm/ioctl.h
-sgdisk.o: /usr/include/asm-generic/ioctl.h /usr/include/bits/ioctl-types.h
-sgdisk.o: /usr/include/sys/ttydefaults.h basicmbr.h mbrpart.h gpt.h bsd.h
-support.o: /usr/include/stdio.h /usr/include/features.h
-support.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h
-support.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h
-support.o: /usr/include/bits/types.h /usr/include/bits/typesizes.h
-support.o: /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h
-support.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h
-support.o: /usr/include/stdint.h /usr/include/bits/wchar.h
-support.o: /usr/include/errno.h /usr/include/bits/errno.h
-support.o: /usr/include/linux/errno.h /usr/include/asm/errno.h
-support.o: /usr/include/asm-generic/errno.h
-support.o: /usr/include/asm-generic/errno-base.h /usr/include/fcntl.h
-support.o: /usr/include/bits/fcntl.h /usr/include/sys/types.h
-support.o: /usr/include/time.h /usr/include/endian.h
-support.o: /usr/include/bits/endian.h /usr/include/bits/byteswap.h
-support.o: /usr/include/sys/select.h /usr/include/bits/select.h
-support.o: /usr/include/bits/sigset.h /usr/include/bits/time.h
-support.o: /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h
-support.o: /usr/include/bits/stat.h /usr/include/string.h
-support.o: /usr/include/xlocale.h /usr/include/sys/stat.h support.h
-support.o: /usr/include/stdlib.h /usr/include/bits/waitflags.h
-support.o: /usr/include/bits/waitstatus.h /usr/include/alloca.h
-test.o: /usr/include/stdio.h /usr/include/features.h /usr/include/sys/cdefs.h
-test.o: /usr/include/bits/wordsize.h /usr/include/gnu/stubs.h
-test.o: /usr/include/gnu/stubs-64.h /usr/include/bits/types.h
-test.o: /usr/include/bits/typesizes.h /usr/include/libio.h
-test.o: /usr/include/_G_config.h /usr/include/wchar.h
-test.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h
-test.o: support.h /usr/include/stdint.h /usr/include/bits/wchar.h
-test.o: /usr/include/stdlib.h /usr/include/bits/waitflags.h
-test.o: /usr/include/bits/waitstatus.h /usr/include/endian.h
-test.o: /usr/include/bits/endian.h /usr/include/bits/byteswap.h
-test.o: /usr/include/sys/types.h /usr/include/time.h
-test.o: /usr/include/sys/select.h /usr/include/bits/select.h
-test.o: /usr/include/bits/sigset.h /usr/include/bits/time.h
-test.o: /usr/include/sys/sysmacros.h /usr/include/bits/pthreadtypes.h
-test.o: /usr/include/alloca.h
-testguid.o: guid.h /usr/include/stdint.h /usr/include/features.h
-testguid.o: /usr/include/sys/cdefs.h /usr/include/bits/wordsize.h
-testguid.o: /usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h
-testguid.o: /usr/include/bits/wchar.h /usr/include/uuid/uuid.h
-testguid.o: /usr/include/sys/types.h /usr/include/bits/types.h
-testguid.o: /usr/include/bits/typesizes.h /usr/include/time.h
-testguid.o: /usr/include/endian.h /usr/include/bits/endian.h
-testguid.o: /usr/include/bits/byteswap.h /usr/include/sys/select.h
-testguid.o: /usr/include/bits/select.h /usr/include/bits/sigset.h
-testguid.o: /usr/include/bits/time.h /usr/include/sys/sysmacros.h
-testguid.o: /usr/include/bits/pthreadtypes.h /usr/include/sys/time.h
-testguid.o: parttypes.h /usr/include/stdlib.h /usr/include/bits/waitflags.h
-testguid.o: /usr/include/bits/waitstatus.h /usr/include/alloca.h
-testguid.o: /usr/include/unicode/ustream.h /usr/include/unicode/unistr.h
-testguid.o: /usr/include/unicode/utypes.h /usr/include/unicode/umachine.h
-testguid.o: /usr/include/unicode/ptypes.h /usr/include/unicode/platform.h
-testguid.o: /usr/include/inttypes.h /usr/include/unicode/urename.h
-testguid.o: /usr/include/unicode/uvernum.h /usr/include/unicode/utf.h
-testguid.o: /usr/include/unicode/utf8.h /usr/include/unicode/utf16.h
-testguid.o: /usr/include/unicode/utf_old.h /usr/include/unicode/uversion.h
-testguid.o: /usr/include/unicode/uconfig.h /usr/include/unicode/rep.h
-testguid.o: /usr/include/unicode/uobject.h /usr/include/unicode/std_string.h
-testguid.o: /usr/include/unicode/stringpiece.h
-testguid.o: /usr/include/unicode/bytestream.h support.h
diff --git a/Makefile.freebsd b/Makefile.freebsd
index 783dd7d..b0258f8 100644
--- a/Makefile.freebsd
+++ b/Makefile.freebsd
@@ -1,7 +1,8 @@
CC=gcc
CXX=g++
CFLAGS+=-D_FILE_OFFSET_BITS=64
-CXXFLAGS+=-Wall -D_FILE_OFFSET_BITS=64 -I/usr/local/include
+CXXFLAGS+=-Wall -D_FILE_OFFSET_BITS=64 -D USE_UTF16 -I/usr/local/include
+#CXXFLAGS+=-Wall -D_FILE_OFFSET_BITS=64 -I /usr/local/include
LDFLAGS+=
LIB_NAMES=crc32 support guid gptpart mbrpart basicmbr mbr gpt bsd parttypes attributes diskio diskio-unix
MBR_LIBS=support diskio diskio-unix basicmbr mbrpart
@@ -14,9 +15,11 @@ all: gdisk sgdisk fixparts
gdisk: $(LIB_OBJS) gdisk.o gpttext.o
$(CXX) $(LIB_OBJS) gdisk.o gpttext.o -L/usr/local/lib $(LDFLAGS) -licuio -luuid -o gdisk
+# $(CXX) $(LIB_OBJS) gdisk.o gpttext.o -L/usr/local/lib $(LDFLAGS) -luuid -o gdisk
sgdisk: $(LIB_OBJS) sgdisk.o
$(CXX) $(LIB_OBJS) sgdisk.o -L/usr/local/lib $(LDFLAGS) -luuid -licuio -lpopt -o sgdisk
+# $(CXX) $(LIB_OBJS) sgdisk.o -L/usr/local/lib $(LDFLAGS) -luuid -lpopt -o sgdisk
fixparts: $(MBR_LIB_OBJS) fixparts.o
$(CXX) $(MBR_LIB_OBJS) fixparts.o -L/usr/local/lib $(LDFLAGS) -o fixparts
diff --git a/Makefile.mac b/Makefile.mac
index 3793624..4ab08e1 100644
--- a/Makefile.mac
+++ b/Makefile.mac
@@ -1,7 +1,8 @@
CC=gcc
CXX=g++
CFLAGS=-O2 -D_FILE_OFFSET_BITS=64 -g
-CXXFLAGS=-O2 -Wall -D_FILE_OFFSET_BITS=64 -I /usr/local/include -I/opt/local/include -g
+CXXFLAGS=-O2 -Wall -D_FILE_OFFSET_BITS=64 -D USE_UTF16 -I/sw/include -I/usr/local/include -I/opt/local/include -g
+#CXXFLAGS=-O2 -Wall -D_FILE_OFFSET_BITS=64 -I /usr/local/include -I/opt/local/include -g
LIB_NAMES=crc32 support guid gptpart mbrpart basicmbr mbr gpt bsd parttypes attributes diskio diskio-unix
MBR_LIBS=support diskio diskio-unix basicmbr mbrpart
#LIB_SRCS=$(NAMES:=.cc)
@@ -12,11 +13,13 @@ DEPEND= makedepend $(CFLAGS)
all: gdisk sgdisk fixparts
-gdisk: $(LIB_OBJS) gpttext.o gdisk.o
- $(CXX) $(LIB_OBJS) -L/usr/local/lib -licuuc -licuio -licudata gpttext.o gdisk.o -o gdisk
+gdisk: $(LIB_OBJS) gpttext.o gdisk.o
+# $(CXX) $(LIB_OBJS) gpttext.o gdisk.o -o gdisk
+ $(CXX) $(LIB_OBJS) -L/usr/lib -licucore gpttext.o gdisk.o -o gdisk
sgdisk: $(LIB_OBJS) sgdisk.o
- $(CXX) $(LIB_OBJS) sgdisk.o -L/opt/local/lib -L/usr/local/lib -licudata -licuio -licuuc -lpopt -o sgdisk
+# $(CXX) $(LIB_OBJS) sgdisk.o -L/sw/lib -lpopt -o sgdisk
+ $(CXX) $(LIB_OBJS) sgdisk.o -L/sw/lib -licucore -lpopt -o sgdisk
fixparts: $(MBR_LIB_OBJS) fixparts.o
$(CXX) $(MBR_LIB_OBJS) fixparts.o $(LDFLAGS) -o fixparts
diff --git a/Makefile.mingw b/Makefile.mingw
index 70c8eda..e6da082 100644
--- a/Makefile.mingw
+++ b/Makefile.mingw
@@ -15,7 +15,7 @@ DEPEND= makedepend $(CFLAGS)
all: gdisk fixparts
gdisk: $(LIB_OBJS) gdisk.o gpttext.o
- $(CXX) $(LIB_OBJS) gdisk.o gpttext.o -luuid -static-libgcc -o gdisk.exe
+ $(CXX) $(LIB_OBJS) gdisk.o gpttext.o -lrpcrt4 -static-libgcc -o gdisk.exe
sgdisk: $(LIB_OBJS) sgdisk.o
$(CXX) $(LIB_OBJS) sgdisk.o -lpopt -static-libgcc -o sgdisk.exe
diff --git a/NEWS b/NEWS
index b0815fa..07dd807 100644
--- a/NEWS
+++ b/NEWS
@@ -1,6 +1,31 @@
-0.7.2 (?/??/2011):
+0.7.2 (6/26/2011):
------------------
+- The Windows version now (finally!) generates proper GUIDs rather than a
+ purely random number. This fixes a bug that caused Windows 7 to crash
+ when converting a disk from MBR format (but, oddly, not when creating a
+ fresh partition table or doing various other things).
+
+- Added a warning when an MBR partition is discarded because it's too
+ big for the disk.
+
+- Changed warning to Windows users about the dangers of converting to GPT
+ so that it appears only on disks that aren't already in GPT form.
+
+- Fixed bug that caused bogus "3" values to pad the ends of partition names
+ on some disks (particularly those created by Microsoft's disk
+ partitioning tools).
+
+- Made compilation without Unicode support possible (see README file)
+
+- Made default filesystem type code OS-dependent (based on the compilation
+ platform).
+
+- Added new Linux-only filesystem partition type GUID code,
+ 0FC63DAF-8483-4772-8E79-3D69D8477DE4 (8300 entry code). Also changed name
+ of the EBD0A0A2-B9E5-4433-87C0-68B6B72699C7 (0700 entry code) to
+ "Microsoft basic data").
+
- Fixed a bug that caused an incorrect code to be set for active/bootable
partitions when generating a hybrid MBR.
diff --git a/README b/README
index 3449210..e818c2c 100644
--- a/README
+++ b/README
@@ -160,19 +160,26 @@ used.) In addition, note these requirements:
called uuid-dev or something similar to get the headers. On FreeBSD, the
e2fsprogs-libuuid port must be installed.
-* The ICU library (http://site.icu-project.org) is required on all
- platforms except Windows. This library is normally installed in Linux,
- but you may need to install the development headers (libicu-dev or
- something similar).
+* The ICU library (http://site.icu-project.org), which provides support for
+ Unicode partition names, is recommended on all
+ platforms except Windows. This library is normally installed in Linux and
+ OS X, but you may need to install the development headers (libicu-dev or
+ something similar in Linux; or the libicu36-dev Fink package in OS X). To
+ compile without ICU support, you must modify the Makefile: Remove the
+ "-D USE_UTF16" part from the CXXFLAGS line and remove references to
+ -licuio, -licuuc, -licudata, and -licucore (details vary between
+ platforms) from the compilation options. Suitable lines are present, but
+ commented out, in the Makefile, Makefile.mac, and Makefile.bsd files.
* The sgdisk program also requires the popt library and its development
files (headers). Most Linux distributions install popt by default, but
you may need to install a package called popt-dev, popt-devel, or
something similar to obtain the header files. Mac OS users can find a
- version of popt for Mac OS from http://popt.darwinports.com; however,
- you'll first need to install DarwinPorts (instructions exist on the
- preceding page). Alternatively, you can compile gdisk alone, without
- sgdisk; gdisk doesn't require popt.
+ version of popt for Mac OS from Drawin Ports (http://popt.darwinports.com)
+ or Fink (http://www.finkproject.org); however, you'll first need to
+ install DarwinPorts or Fink (instructions exist on the relevant projects'
+ pages). Alternatively, you can compile gdisk alone, without sgdisk; gdisk
+ doesn't require popt.
When all the necessary development tools and libraries are installed, you
can uncompress the package and type "make" at the command prompt in the
@@ -192,17 +199,17 @@ Caveats
THIS SOFTWARE IS BETA SOFTWARE! IF IT WIPES OUT YOUR HARD DISK OR EATS YOUR
CAT, DON'T BLAME ME! To date, I've tested the software on several USB flash
-drives, a handful of PATA and SATA hard disks, and several virtual disks in
-the QEMU and VirtualBox environments. Many others have now used the
-software on their computers, as well. I believe all data-corruption bugs to
-be squashed, but I know full well that the odds of my missing something are
-high. This is particularly true for large drives; my only direct testing
-with such disks is with virtual QEMU disks. I've received user reports of
-success with RAID arrays over 2TiB in size, though.
+drives, physical hard disks, and virtual disks in the QEMU and VirtualBox
+environments. Many others have now used the software on their computers, as
+well. I believe all data-corruption bugs to be squashed, but I know full well
+that the odds of my missing something are high. This is particularly true for
+large (over-2TiB) drives; my only direct testing with such disks is with
+virtual QEMU and VirtualBox disks. I've received user reports of success with
+RAID arrays over 2TiB in size, though.
My main development platform is a system running the 64-bit version of
Gentoo Linux (previously Ubuntu 8.04). I've also tested on several other
-32- and 64-bit Linux distributions Intel-based Mac OS X 10.5 and 10.6,
+32- and 64-bit Linux distributions, Intel-based Mac OS X 10.5 and 10.6,
64-bit FreeBSD 7.1, and Windows 7.
Redistribution
diff --git a/basicmbr.cc b/basicmbr.cc
index 54b4809..4f193e2 100644
--- a/basicmbr.cc
+++ b/basicmbr.cc
@@ -130,9 +130,9 @@ int BasicMBRData::ReadMBRData(const string & deviceFilename) {
// Read data from MBR. If checkBlockSize == 1 (the default), the block
// size is checked; otherwise it's set to the default (512 bytes).
-// Note that any extended partition(s) present will be explicitly stored
-// in the partitions[] array, along with their contained partitions; the
-// extended container partition(s) should be ignored by other functions.
+// Note that any extended partition(s) present will be omitted from
+// in the partitions[] array; these partitions must be re-created when
+// the partition table is saved in MBR format.
int BasicMBRData::ReadMBRData(DiskIO * theDisk, int checkBlockSize) {
int allOK = 1, i, logicalNum = 0;
int err = 1;
@@ -1100,7 +1100,8 @@ void BasicMBRData::SortMBR(int start) {
// Delete any partitions that are too big to fit on the disk
// or that are too big for MBR (32-bit limits).
-// This really deletes the partitions by setting values to 0.
+// This deletes the partitions by setting values to 0, not just
+// by setting them as being omitted.
// Returns the number of partitions deleted in this way.
int BasicMBRData::DeleteOversizedParts() {
int num = 0, i;
@@ -1108,6 +1109,8 @@ int BasicMBRData::DeleteOversizedParts() {
for (i = 0; i < MAX_MBR_PARTS; i++) {
if ((partitions[i].GetStartLBA() > diskSize) || (partitions[i].GetLastLBA() > diskSize) ||
(partitions[i].GetStartLBA() > UINT32_MAX) || (partitions[i].GetLengthLBA() > UINT32_MAX)) {
+ cerr << "\aWarning: Deleting oversized partition #" << i + 1 << "! Start = "
+ << partitions[i].GetStartLBA() << ", length = " << partitions[i].GetLengthLBA() << "\n";
partitions[i].Empty();
num++;
} // if
diff --git a/bsd.cc b/bsd.cc
index 8524d5b..f487f18 100644
--- a/bsd.cc
+++ b/bsd.cc
@@ -323,7 +323,7 @@ GPTPart BSDData::AsGPT(int i) {
case 27: // FreeBSD ZFS
guid.SetType(0xa504); break;
default:
- guid.SetType(0x0700); break;
+ guid.SetType(0xa503); break;
} // switch
// Set the partition name to the name of the type code....
guid.SetName(guid.GetTypeName());
diff --git a/current.spec b/current.spec
index b0fa691..109285c 100644
--- a/current.spec
+++ b/current.spec
@@ -1,11 +1,11 @@
Summary: GPT partitioning and MBR repair software
Name: gptfdisk
-Version: 0.7.1
+Version: 0.7.2
Release: 1%{?dist}
License: GPLv2
URL: http://www.rodsbooks.com/gdisk
Group: Applications/System
-Source: http://www.rodsbooks.com/gdisk/gptfdisk-0.7.1.tgz
+Source: http://www.rodsbooks.com/gdisk/gptfdisk-0.7.2.tar.gz
BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
%description
@@ -77,5 +77,5 @@ provides a few additional partition manipulation features.
%changelog
-* Mon Mar 21 2011 R Smith <rodsmith@rodsbooks.com> - 0.7.1
-- Created spec file for 0.7.1 release
+* Sun Jun 26 2011 R Smith <rodsmith@rodsbooks.com> - 0.7.2
+- Created spec file for 0.7.2 release
diff --git a/diskio-unix.cc b/diskio-unix.cc
index 327a498..03fc3c8 100644
--- a/diskio-unix.cc
+++ b/diskio-unix.cc
@@ -230,7 +230,8 @@ void DiskIO::DiskSync(void) {
platformFound++;
#endif
#ifdef __linux__
- sleep(2);
+ sleep(1); // Theoretically unnecessary, but ioctl() fails sometimes if omitted....
+ fsync(fd);
i = ioctl(fd, BLKRRPART);
if (i)
cout << "Warning: The kernel is still using the old partition table.\n"
diff --git a/fixparts.8 b/fixparts.8
index 23970fb..e8bd74f 100644
--- a/fixparts.8
+++ b/fixparts.8
@@ -1,6 +1,6 @@
.\" Copyright 2011 Roderick W. Smith (rodsmith@rodsbooks.com)
.\" May be distributed under the GNU General Public License
-.TH "FIXPARTS" "8" "0.7.1" "Roderick W. Smith" "FixParts Manual"
+.TH "FIXPARTS" "8" "0.7.2" "Roderick W. Smith" "FixParts Manual"
.SH "NAME"
fixparts \- MBR partition table repair utility
.SH "SYNOPSIS"
@@ -202,7 +202,7 @@ see a summary of available options.
.PP
.SH "BUGS"
-As of March 2011 (version 0.7.1), \fBfixparts\fR
+As of June 2011 (version 0.7.2), \fBfixparts\fR
should be considered beta software. Known bugs and limitations include:
.TP
diff --git a/gdisk.8 b/gdisk.8
index 3368c71..850b459 100644
--- a/gdisk.8
+++ b/gdisk.8
@@ -1,6 +1,6 @@
.\" Copyright 2011 Roderick W. Smith (rodsmith@rodsbooks.com)
.\" May be distributed under the GNU General Public License
-.TH "GDISK" "8" "0.7.1" "Roderick W. Smith" "GPT fdisk Manual"
+.TH "GDISK" "8" "0.7.2" "Roderick W. Smith" "GPT fdisk Manual"
.SH "NAME"
gdisk \- Interactive GUID partition table (GPT) manipulator
.SH "SYNOPSIS"
@@ -177,19 +177,19 @@ displays this information for a single partition.
.TP
.B l
-Display a summary of partition types. GPT uses a GUID to identify
-partition types for particular OSes and purposes. For ease of data entry,
-\fBgdisk\fR compresses these into two\-byte (four\-digit hexadecimal)
-values that are related to their equivalent MBR codes. Specifically, the
-MBR code is multiplied by hexadecimal 0x0100. For instance, the code for
-Linux swap space in MBR is 0x82, and it's 0x8200 in \fBgdisk\fR.
-A one\-to\-one correspondence is impossible, though. Most notably, many DOS,
-Windows, and Linux data partition codes correspond to a single GPT code
-(entered as 0x0700 in \fBgdisk\fR). Some OSes use a single MBR code but
-employ many more codes in GPT. For these, \fBgdisk\fR
-adds code numbers sequentially, such as 0xa500 for a FreeBSD disklabel,
-0xa501 for FreeBSD boot, 0xa502 for FreeBSD swap, and so on. Note that
-these two\-byte codes are unique to \fBgdisk\fR.
+Display a summary of partition types. GPT uses a GUID to identify partition
+types for particular OSes and purposes. For ease of data entry, \fBgdisk\fR
+compresses these into two\-byte (four\-digit hexadecimal) values that are
+related to their equivalent MBR codes. Specifically, the MBR code is
+multiplied by hexadecimal 0x0100. For instance, the code for Linux swap
+space in MBR is 0x82, and it's 0x8200 in \fBgdisk\fR. A one\-to\-one
+correspondence is impossible, though. Most notably, the codes for all
+varieties of FAT and NTFS partition correspond to a single GPT code
+(entered as 0x0700 in \fBsgdisk\fR). Some OSes use a single MBR code but
+employ many more codes in GPT. For these, \fBgdisk\fR adds code numbers
+sequentially, such as 0xa500 for a FreeBSD disklabel, 0xa501 for FreeBSD
+boot, 0xa502 for FreeBSD swap, and so on. Note that these two\-byte codes
+are unique to \fBgdisk\fR.
.TP
.B n
@@ -561,7 +561,7 @@ entering data. When only one option is possible, \fBgdisk\fR
usually bypasses the prompt entirely.
.SH "BUGS"
-As of March 2011 (version 0.7.1), \fBgdisk\fR
+As of June 2011 (version 0.7.2), \fBgdisk\fR
should be considered beta software. Known bugs and limitations include:
.TP
diff --git a/gdisk.cc b/gdisk.cc
index 22de86b..98d4980 100644
--- a/gdisk.cc
+++ b/gdisk.cc
@@ -38,19 +38,22 @@ int main(int argc, char* argv[]) {
switch (argc) {
case 1:
- WinWarning();
cout << "Type device filename, or press <Enter> to exit: ";
device = ReadString();
if (device.length() == 0)
exit(0);
else if (theGPT.LoadPartitions(device)) {
+ if (theGPT.GetState() != use_gpt)
+ WinWarning();
MainMenu(device, &theGPT);
} // if/elseif
break;
case 2: // basic usage
- WinWarning();
- if (theGPT.LoadPartitions(argv[1]))
+ if (theGPT.LoadPartitions(argv[1])) {
+ if (theGPT.GetState() != use_gpt)
+ WinWarning();
MainMenu(argv[1], &theGPT);
+ } // if
break;
case 3: // usage with "-l" option
if (strcmp(argv[1], "-l") == 0) {
@@ -433,8 +436,8 @@ void WinWarning(void) {
cout << "\a************************************************************************\n"
<< "Most versions of Windows cannot boot from a GPT disk, and most varieties\n"
<< "prior to Vista cannot read GPT disks. Therefore, you should exit now\n"
- << "unless you understand the implications of converting MBR to GPT, editing\n"
- << "an existing GPT disk, or creating a new GPT disk layout!\n"
+ << "unless you understand the implications of converting MBR to GPT or creating\n"
+ << "a new GPT disk layout!\n"
<< "************************************************************************\n\n";
cout << "Are you SURE you want to continue? ";
if (GetYN() != 'Y')
diff --git a/gpt.cc b/gpt.cc
index 4889c37..c28e39d 100644
--- a/gpt.cc
+++ b/gpt.cc
@@ -1669,7 +1669,7 @@ uint32_t GPTData::CreatePartition(uint32_t partNum, uint64_t startSector, uint64
if (FindLastInFree(startSector) >= endSector) {
partitions[partNum].SetFirstLBA(startSector);
partitions[partNum].SetLastLBA(endSector);
- partitions[partNum].SetType(0x0700);
+ partitions[partNum].SetType(DEFAULT_TYPE);
partitions[partNum].RandomizeUniqueGUID();
} else retval = 0; // if free space until endSector
} else retval = 0; // if startSector is free
@@ -1858,10 +1858,9 @@ void GPTData::RecomputeCHS(void) {
// was unchanged.
int GPTData::Align(uint64_t* sector) {
int retval = 0, sectorOK = 0;
- uint64_t earlier, later, testSector, original;
+ uint64_t earlier, later, testSector;
if ((*sector % sectorAlignment) != 0) {
- original = *sector;
earlier = (*sector / sectorAlignment) * sectorAlignment;
later = earlier + (uint64_t) sectorAlignment;
diff --git a/gpt.h b/gpt.h
index c4c5881..d8c2a43 100644
--- a/gpt.h
+++ b/gpt.h
@@ -155,9 +155,10 @@ public:
void MakeProtectiveMBR(void) {protectiveMBR.MakeProtectiveMBR();}
void RecomputeCHS(void);
int Align(uint64_t* sector);
-
- // Return data about the GPT structures....
void SetProtectiveMBR(BasicMBRData & newMBR) {protectiveMBR = newMBR;}
+
+ // Return data about the GPT structures....
+ WhichToUse GetState(void) {return whichWasUsed;}
int GetPartRange(uint32_t* low, uint32_t* high);
int FindFirstFreePart(void);
uint32_t GetNumParts(void) {return mainHeader.numParts;}
diff --git a/gptpart.cc b/gptpart.cc
index 838680b..130add0 100644
--- a/gptpart.cc
+++ b/gptpart.cc
@@ -15,7 +15,7 @@
#define __STDC_LIMIT_MACROS
#define __STDC_CONSTANT_MACROS
-#ifndef _WIN32
+#ifdef USE_UTF16
#include <unicode/ustdio.h>
#else
#define UnicodeString string
@@ -68,7 +68,7 @@ uint64_t GPTPart::GetLengthLBA(void) const {
return length;
} // GPTPart::GetLengthLBA()
-#ifndef _WIN32
+#ifdef USE_UTF16
// Return partition's name field, converted to a Unicode string
UnicodeString GPTPart::GetDescription(void) {
return (UChar*) name;
@@ -77,13 +77,13 @@ UnicodeString GPTPart::GetDescription(void) {
// Return partition's name field, converted to a C++ ASCII string
string GPTPart::GetDescription(void) {
string theName;
- int i;
+ int i = 0;
theName = "";
- for (i = 0; i < NAME_SIZE; i += 2) {
- if (name[i] != '\0')
- theName += name[i];
- } // for
+ while ((i < NAME_SIZE) && (name[i] != '\0')) {
+ theName += name[i];
+ i+=2;
+ } // while
return theName;
} // GPTPart::GetDescription() (Windows version)
#endif
@@ -103,7 +103,7 @@ void GPTPart::SetType(PartType t) {
partitionType = t;
} // GPTPart::SetType()
-#ifndef _WIN32
+#ifdef USE_UTF16
// Set the name for a partition to theName, using a C++-style string as
// input.
void GPTPart::SetName(const string & theName) {
@@ -120,7 +120,9 @@ void GPTPart::SetName(const UnicodeString & theName) {
theName.extractBetween(0, NAME_SIZE / 2 - 1, (UChar*) name);
} // if/else
} // GPTPart::SetName()
+
#else
+
// Set the name for a partition to theName. Note that theName is a
// standard C++-style ASCII string, although the GUID partition definition
// requires a UTF-16LE string. This function creates a simple-minded copy
@@ -190,7 +192,7 @@ void GPTPart::ShowSummary(int partNum, uint32_t blockSize) {
cout.setf(ios::uppercase);
cout << hex << partitionType.GetHexType() << " " << dec;
cout.fill(' ');
-#ifndef _WIN32
+#ifdef USE_UTF16
GetDescription().extractBetween(0, 23, description);
cout << description << "\n";
#else
@@ -273,13 +275,13 @@ void GPTPart::ChangeType(void) {
cout << "Current type is '" << GetTypeName() << "'\n";
do {
- cout << "Hex code or GUID (L to show codes, Enter = 0700): ";
+ cout << "Hex code or GUID (L to show codes, Enter = " << hex << DEFAULT_TYPE << dec << "): ";
line = ReadString();
if ((line[0] == 'L') || (line[0] == 'l')) {
partitionType.ShowAllTypes();
} else {
if (line.length() == 0)
- tempType = 0x0700;
+ tempType= DEFAULT_TYPE;
else
tempType = line;
} // if/else
diff --git a/gptpart.h b/gptpart.h
index 2686229..cdfce2a 100644
--- a/gptpart.h
+++ b/gptpart.h
@@ -74,7 +74,7 @@ class GPTPart {
void SetAttributes(uint64_t a) {attributes = a;}
void SetAttributes(void) {attributes.ChangeAttributes();}
void SetName(const string & theName);
-#ifndef _WIN32
+#ifdef USE_UTF16
void SetName(const UnicodeString & theName);
#endif
void SetDefaultDescription(void);
diff --git a/guid.cc b/guid.cc
index 4073375..6abc16e 100644
--- a/guid.cc
+++ b/guid.cc
@@ -128,20 +128,35 @@ void GUIDData::Zero(void) {
// Set a completely random GUID value....
// The uuid_generate() function returns a value that needs to have its
// first three fields byte-reversed to conform to Intel's GUID layout.
-// If that function isn't defined (e.g., on Windows), set a completely
-// random GUID -- not completely kosher, but it doesn't seem to cause
-// any problems (so far...)
+// The Windows UuidCreate() function doesn't need this adjustment. If
+// neither function is defined, or if UuidCreate() fails, set a completely
+// random GUID -- not completely kosher, but it works on most platforms
+// (immediately after creating the UUID on Windows 7 being an important
+// exception).
void GUIDData::Randomize(void) {
+ int i, uuidGenerated = 0;
+
#ifdef _UUID_UUID_H
uuid_generate(uuidData);
ReverseBytes(&uuidData[0], 4);
ReverseBytes(&uuidData[4], 2);
ReverseBytes(&uuidData[6], 2);
-#else
- int i;
- for (i = 0; i < 16; i++)
- uuidData[i] = (unsigned char) (256.0 * (rand() / (RAND_MAX + 1.0)));
+ uuidGenerated = 1;
+#endif
+#if defined (_RPC_H) || defined (__RPC_H__)
+ UUID MsUuid;
+ if (UuidCreate(&MsUuid) == RPC_S_OK) {
+ memcpy(uuidData, &MsUuid, 16);
+ uuidGenerated = 1;
+ } // if
#endif
+
+ if (!uuidGenerated) {
+ cerr << "Warning! Unable to generate a proper UUID! Creating an improper one as a last\n"
+ << "resort! Windows 7 may crash if you save this partition table!\a\n";
+ for (i = 0; i < 16; i++)
+ uuidData[i] = (unsigned char) (256.0 * (rand() / (RAND_MAX + 1.0)));
+ } // if
} // GUIDData::Randomize
// Equality operator; returns 1 if the GUIDs are equal, 0 if they're unequal
@@ -194,4 +209,4 @@ ostream & operator<<(ostream & os, const GUIDData & data) {
os << data.AsString();
return os;
-} // GUIDData::operator<<() \ No newline at end of file
+} // GUIDData::operator<<()
diff --git a/guid.h b/guid.h
index 59e1bc9..6eb6ebf 100644
--- a/guid.h
+++ b/guid.h
@@ -5,7 +5,7 @@
// Implements the GUIDData data structure and support methods
//
//
-// Author: Rod Smith <rodsmith@rodsbooks.com>, (C) 2010
+// Author: Rod Smith <rodsmith@rodsbooks.com>, (C) 2010-2011
//
// Copyright: See COPYING file that comes with this distribution
//
@@ -18,10 +18,14 @@
#include <string>
// Have to play games with uuid_t since it's defined in incompatible ways
-// for Unix (libuuid) vs. Windows
+// for Unix (libuuid) vs. Windows (in rpc.h)
#ifdef _WIN32
+#include <rpc.h>
+ #ifdef _MSC_VER
+ #pragma comment(lib, "Rpcrt4.lib")
+ #endif
typedef unsigned char my_uuid_t[16];
-#else
+#else // Not Windows
#include <uuid/uuid.h>
typedef uuid_t my_uuid_t;
#endif
diff --git a/parttypes.cc b/parttypes.cc
index 8ccc482..d77774d 100644
--- a/parttypes.cc
+++ b/parttypes.cc
@@ -73,21 +73,21 @@ void PartType::AddAllTypes(void) {
AddType(0x0000, "00000000-0000-0000-0000-000000000000", "Unused entry", 0);
// DOS/Windows partition types, which confusingly Linux also uses in GPT
- AddType(0x0100, "EBD0A0A2-B9E5-4433-87C0-68B6B72699C7", "Linux/Windows data", 0); // FAT-12
- AddType(0x0400, "EBD0A0A2-B9E5-4433-87C0-68B6B72699C7", "Linux/Windows data", 0); // FAT-16 < 32M
- AddType(0x0600, "EBD0A0A2-B9E5-4433-87C0-68B6B72699C7", "Linux/Windows data", 0); // FAT-16
- AddType(0x0700, "EBD0A0A2-B9E5-4433-87C0-68B6B72699C7", "Linux/Windows data", 1); // NTFS (or HPFS)
- AddType(0x0b00, "EBD0A0A2-B9E5-4433-87C0-68B6B72699C7", "Linux/Windows data", 0); // FAT-32
- AddType(0x0c00, "EBD0A0A2-B9E5-4433-87C0-68B6B72699C7", "Linux/Windows data", 0); // FAT-32 LBA
+ AddType(0x0100, "EBD0A0A2-B9E5-4433-87C0-68B6B72699C7", "Microsoft basic data", 0); // FAT-12
+ AddType(0x0400, "EBD0A0A2-B9E5-4433-87C0-68B6B72699C7", "Microsoft basic data", 0); // FAT-16 < 32M
+ AddType(0x0600, "EBD0A0A2-B9E5-4433-87C0-68B6B72699C7", "Microsoft basic data", 0); // FAT-16
+ AddType(0x0700, "EBD0A0A2-B9E5-4433-87C0-68B6B72699C7", "Microsoft basic data", 1); // NTFS (or HPFS)
+ AddType(0x0b00, "EBD0A0A2-B9E5-4433-87C0-68B6B72699C7", "Microsoft basic data", 0); // FAT-32
+ AddType(0x0c00, "EBD0A0A2-B9E5-4433-87C0-68B6B72699C7", "Microsoft basic data", 0); // FAT-32 LBA
AddType(0x0c01, "E3C9E316-0B5C-4DB8-817D-F92DF00215AE", "Microsoft reserved");
- AddType(0x0e00, "EBD0A0A2-B9E5-4433-87C0-68B6B72699C7", "Linux/Windows data", 0); // FAT-16 LBA
- AddType(0x1100, "EBD0A0A2-B9E5-4433-87C0-68B6B72699C7", "Linux/Windows data", 0); // Hidden FAT-12
- AddType(0x1400, "EBD0A0A2-B9E5-4433-87C0-68B6B72699C7", "Linux/Windows data", 0); // Hidden FAT-16 < 32M
- AddType(0x1600, "EBD0A0A2-B9E5-4433-87C0-68B6B72699C7", "Linux/Windows data", 0); // Hidden FAT-16
- AddType(0x1700, "EBD0A0A2-B9E5-4433-87C0-68B6B72699C7", "Linux/Windows data", 0); // Hidden NTFS (or HPFS)
- AddType(0x1b00, "EBD0A0A2-B9E5-4433-87C0-68B6B72699C7", "Linux/Windows data", 0); // Hidden FAT-32
- AddType(0x1c00, "EBD0A0A2-B9E5-4433-87C0-68B6B72699C7", "Linux/Windows data", 0); // Hidden FAT-32 LBA
- AddType(0x1e00, "EBD0A0A2-B9E5-4433-87C0-68B6B72699C7", "Linux/Windows data", 0); // Hidden FAT-16 LBA
+ AddType(0x0e00, "EBD0A0A2-B9E5-4433-87C0-68B6B72699C7", "Microsoft basic data", 0); // FAT-16 LBA
+ AddType(0x1100, "EBD0A0A2-B9E5-4433-87C0-68B6B72699C7", "Microsoft basic data", 0); // Hidden FAT-12
+ AddType(0x1400, "EBD0A0A2-B9E5-4433-87C0-68B6B72699C7", "Microsoft basic data", 0); // Hidden FAT-16 < 32M
+ AddType(0x1600, "EBD0A0A2-B9E5-4433-87C0-68B6B72699C7", "Microsoft basic data", 0); // Hidden FAT-16
+ AddType(0x1700, "EBD0A0A2-B9E5-4433-87C0-68B6B72699C7", "Microsoft basic data", 0); // Hidden NTFS (or HPFS)
+ AddType(0x1b00, "EBD0A0A2-B9E5-4433-87C0-68B6B72699C7", "Microsoft basic data", 0); // Hidden FAT-32
+ AddType(0x1c00, "EBD0A0A2-B9E5-4433-87C0-68B6B72699C7", "Microsoft basic data", 0); // Hidden FAT-32 LBA
+ AddType(0x1e00, "EBD0A0A2-B9E5-4433-87C0-68B6B72699C7", "Microsoft basic data", 0); // Hidden FAT-16 LBA
AddType(0x2700, "DE94BBA4-06D1-4D40-A16A-BFD50179D6AC", "Windows RE");
AddType(0x4200, "AF9B60A0-1431-4F62-BC68-3311714A69AD", "Windows LDM data"); // Logical disk manager
AddType(0x4201, "5808C8AA-7E8F-42E0-85D2-E1E90434CFB3", "Windows LDM metadata"); // Logical disk manager
@@ -107,7 +107,8 @@ void PartType::AddAllTypes(void) {
// Linux-specific partition types....
AddType(0x8200, "0657FD6D-A4AB-43C4-84E5-0933C84B4F4F", "Linux swap"); // Linux swap (or Solaris)
- AddType(0x8300, "EBD0A0A2-B9E5-4433-87C0-68B6B72699C7", "Linux/Windows data", 0); // Linux native
+ AddType(0x8300, "0FC63DAF-8483-4772-8E79-3D69D8477DE4", "Linux filesystem"); // Linux native
+// AddType(0x8300, "EBD0A0A2-B9E5-4433-87C0-68B6B72699C7", "Linux/Windows data", 0); // Linux native
AddType(0x8301, "8DA63339-0007-60C0-C436-083AC8230908", "Linux reserved");
AddType(0x8e00, "E6D6D379-F507-44C2-A23C-238F2A3DF928", "Linux LVM");
@@ -241,18 +242,18 @@ PartType & PartType::operator=(uint16_t ID) {
} // while
if (!found) {
// Assign a default value....
- GUIDData::operator=("EBD0A0A2-B9E5-4433-87C0-68B6B72699C7"); // 0700, Linux/Windows data
+ operator=(DEFAULT_TYPE);
cout.setf(ios::uppercase);
cout.fill('0');
cout << "Exact type match not found for type code ";
cout.width(4);
- cout << hex << ID << "; assigning type code for\n'Linux/Windows data'\n" << dec;
+ cout << hex << ID << "; assigning type code for\n'" << TypeName() << "'\n" << dec;
cout.fill(' ');
} // if (!found)
return *this;
} // PartType::operator=(uint16_t ID)
-// Return the English description of the partition type (e.g., "Linux/Windows data")
+// Return the English description of the partition type (e.g., "Linux filesystem")
string PartType::TypeName(void) const {
AType* theItem = allTypes;
int found = 0;
@@ -272,7 +273,7 @@ string PartType::TypeName(void) const {
return typeName;
} // PartType::TypeName()
-// Return the Unicode description of the partition type (e.g., "Linux/Windows data")
+// Return the Unicode description of the partition type (e.g., "Linux filesystem")
UnicodeString PartType::UTypeName(void) const {
AType* theItem = allTypes;
int found = 0;
diff --git a/parttypes.h b/parttypes.h
index 73c66e2..c45d8e4 100644
--- a/parttypes.h
+++ b/parttypes.h
@@ -3,7 +3,7 @@
#include <stdint.h>
#include <stdlib.h>
-#ifndef _WIN32
+#ifdef USE_UTF16
#include <unicode/ustream.h>
#else
#define UnicodeString string
diff --git a/sgdisk.8 b/sgdisk.8
index 8dbbab5..1fa5f77 100644
--- a/sgdisk.8
+++ b/sgdisk.8
@@ -1,6 +1,6 @@
.\" Copyright 2011 Roderick W. Smith (rodsmith@rodsbooks.com)
.\" May be distributed under the GNU General Public License
-.TH "SGDISK" "8" "0.7.1" "Roderick W. Smith" "GPT fdisk Manual"
+.TH "SGDISK" "8" "0.7.2" "Roderick W. Smith" "GPT fdisk Manual"
.SH "NAME"
sgdisk \- Command\-line GUID partition table (GPT) manipulator for Linux and Unix
.SH "SYNOPSIS"
@@ -286,20 +286,20 @@ but the original disk is not recommended.
.TP
.B \-L, \-\-list\-types
-Display a summary of partition types. GPT uses a GUID to identify
-partition types for particular OSes and purposes. For ease of data entry,
+Display a summary of partition types. GPT uses a GUID to identify partition
+types for particular OSes and purposes. For ease of data entry,
\fBsgdisk\fR compresses these into two\-byte (four\-digit hexadecimal)
values that are related to their equivalent MBR codes. Specifically, the
MBR code is multiplied by hexadecimal 0x0100. For instance, the code for
-Linux swap space in MBR is 0x82, and it's 0x8200 in \fBgdisk\fR.
-A one\-to\-one correspondence is impossible, though. Most notably, many DOS,
-Windows, and Linux data partition codes correspond to a single GPT code
+Linux swap space in MBR is 0x82, and it's 0x8200 in \fBgdisk\fR. A
+one\-to\-one correspondence is impossible, though. Most notably, the codes
+for all varieties of FAT and NTFS partition correspond to a single GPT code
(entered as 0x0700 in \fBsgdisk\fR). Some OSes use a single MBR code but
-employ many more codes in GPT. For these, \fBsgdisk\fR
-adds code numbers sequentially, such as 0xa500 for a FreeBSD disklabel,
-0xa501 for FreeBSD boot, 0xa502 for FreeBSD swap, and so on. Note that
-these two\-byte codes are unique to \fBgdisk\fR and \fBsgdisk\fR. This
-option does not require you to specify a valid disk device filename.
+employ many more codes in GPT. For these, \fBsgdisk\fR adds code numbers
+sequentially, such as 0xa500 for a FreeBSD disklabel, 0xa501 for FreeBSD
+boot, 0xa502 for FreeBSD swap, and so on. Note that these two\-byte codes
+are unique to \fBgdisk\fR and \fBsgdisk\fR. This option does not require
+you to specify a valid disk device filename.
.TP
.B \-m, \-\-gpttombr
@@ -470,7 +470,7 @@ Non\-GPT disk detected and no \fI\-g\fR option
.B 4
An error prevented saving changes
.SH "BUGS"
-As of March 2011 (version 0.7.1), \fBsgdisk\fR
+As of June 2011 (version 0.7.2), \fBsgdisk\fR
should be considered beta software. Known bugs and limitations include:
.TP
diff --git a/support.h b/support.h
index da09cc9..edae3dd 100644
--- a/support.h
+++ b/support.h
@@ -8,20 +8,24 @@
#ifndef __GPTSUPPORT
#define __GPTSUPPORT
-#define GPTFDISK_VERSION "0.7.1.1"
+#define GPTFDISK_VERSION "0.7.2"
#if defined (__FreeBSD__) || defined (__FreeBSD_kernel__) || defined (__APPLE__)
-// Darwin (Mac OS) only: disk IOCTLs are different, and there is no lseek64
-// This used to use __DARWIN_UNIX03 rather than __APPLE__, but __APPLE__
-// is more general. If the code fails to work on older versions of OS X/
-// Darwin, this may need to be changed back (and in various .cc files).
+// Darwin (Mac OS) & FreeBSD: disk IOCTLs are different, and there is no lseek64
#include <sys/disk.h>
#define lseek64 lseek
#endif
-// Linux only....
-#ifdef __linux__
-#include <linux/fs.h>
+#if defined (__FreeBSD__) || defined (__FreeBSD_kernel__)
+#define DEFAULT_TYPE 0xA503
+#endif
+
+#ifdef __APPLE__
+#define DEFAULT_TYPE 0xAF00
+#endif
+
+#ifdef _WIN32
+#define DEFAULT_TYPE 0x0700
#endif
// Microsoft Visual C++ only
@@ -31,6 +35,16 @@
#define sprintf sprintf_s
#endif
+// Linux only....
+#ifdef __linux__
+#include <linux/fs.h>
+#define DEFAULT_TYPE 0x8300
+#endif
+
+#ifndef DEFAULT_TYPE
+#define DEFAULT_TYPE 0x8300
+#endif
+
// Set this as a default
#define SECTOR_SIZE UINT32_C(512)
@@ -38,9 +52,6 @@
#define APM_SIGNATURE1 UINT64_C(0x00004D5000000000)
#define APM_SIGNATURE2 UINT64_C(0x0000535400000000)
-// Maximum line length on some input functions
-#define MAX_LINE_LENGTH 255
-
/**************************
* Some GPT constants.... *
**************************/