From 00b6d7a4604e759eb3c92b3ecea608d6fe024b81 Mon Sep 17 00:00:00 2001 From: srs5694 <srs5694@users.sourceforge.net> Date: Sun, 26 Jun 2011 22:40:06 -0400 Subject: [PATCH] 0.7.2 release, includes new Linux type code & true GUID generation in Windows --- Makefile | 538 +---------------------------------------------- Makefile.freebsd | 5 +- Makefile.mac | 11 +- Makefile.mingw | 2 +- NEWS | 27 ++- README | 39 ++-- basicmbr.cc | 11 +- bsd.cc | 2 +- current.spec | 8 +- diskio-unix.cc | 3 +- fixparts.8 | 4 +- gdisk.8 | 30 +-- gdisk.cc | 13 +- gpt.cc | 5 +- gpt.h | 5 +- gptpart.cc | 24 ++- gptpart.h | 2 +- guid.cc | 31 ++- guid.h | 10 +- parttypes.cc | 39 ++-- parttypes.h | 2 +- sgdisk.8 | 24 +-- support.h | 33 ++- 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.... * **************************/ -- GitLab