On Thu, Jan 05, 2012 at 01:28:25PM +0000, FreeBSD Tinderbox wrote: > ... > cc -O2 -pipe > -I/src/cddl/sbin/zpool/../../../cddl/contrib/opensolaris/lib/libzpool/common > -I/src/cddl/sbin/zpool/../../../cddl/compat/opensolaris/include > -I/src/cddl/sbin/zpool/../../../cddl/compat/opensolaris/lib/libumem > -I/src/cddl/sbin/zpool/../../../sys/cddl/compat/opensolaris > -I/src/cddl/sbin/zpool/../../../cddl/contrib/opensolaris/head > -I/src/cddl/sbin/zpool/../../../cddl/contrib/opensolaris/lib/libuutil/common > -I/src/cddl/sbin/zpool/../../../cddl/contrib/opensolaris/lib/libumem/common > -I/src/cddl/sbin/zpool/../../../cddl/contrib/opensolaris/lib/libzfs/common > -I/src/cddl/sbin/zpool/../../../cddl/contrib/opensolaris/lib/libnvpair > -I/src/cddl/sbin/zpool/../../../sys/cddl/contrib/opensolaris/common/zfs > -I/src/cddl/sbin/zpool/../../../sys/cddl/contrib/opensolaris/uts/common > -I/src/cddl/sbin/zpool/../../../sys/cddl/contrib/opensolaris/uts/common/fs/zfs > -I/src/cddl/sbin/zpool/../../../sys/cddl/contrib/opensolaris/uts/common/sys > -I/src/cddl/sbin/zpool/../../../cddl/contrib/o! > pensolaris/lib/libzpool/common > -I/src/cddl/sbin/zpool/../../../cddl/contrib/opensolaris/cmd/stat/common > -DNEED_SOLARIS_BOOLEAN -std=gnu89 -fstack-protector -Wno-unknown-pragmas -o > zpool zpool_main.o zpool_vdev.o zpool_iter.o zpool_util.o zfs_comutil.o > timestamp.o -lavl -lbsdxml -lgeom -lm -lnvpair -lsbuf -lumem -lutil -luutil > -lzfs > zpool_main.o(.text+0x34fd): In function `zpool_do_labelclear': > : undefined reference to `zpool_pool_state_to_name' > *** Error code 1 > ...
Attached patch gets around the above for me. Caveats: * I haven't finished the build yet (but did get beyond that breakage). * I don't use ZFS, so I don't exercise the code. Peace, david -- David H. Wolfskill [email protected] Depriving a girl or boy of an opportunity for education is evil. See http://www.catwhisker.org/~david/publickey.gpg for my public key.
Index: cddl/contrib/opensolaris/lib/libzfs/common/libzfs.h
===================================================================
--- cddl/contrib/opensolaris/lib/libzfs/common/libzfs.h (revision 229586)
+++ cddl/contrib/opensolaris/lib/libzfs/common/libzfs.h (working copy)
@@ -202,7 +202,8 @@
extern void zpool_close(zpool_handle_t *);
extern const char *zpool_get_name(zpool_handle_t *);
extern int zpool_get_state(zpool_handle_t *);
-extern char *zpool_state_to_name(vdev_state_t, vdev_aux_t);
+extern const char *zpool_state_to_name(vdev_state_t, vdev_aux_t);
+extern const char *zpool_pool_state_to_name(pool_state_t);
extern void zpool_free_handles(libzfs_handle_t *);
/*
Index: cddl/contrib/opensolaris/lib/libzfs/common/libzfs_pool.c
===================================================================
--- cddl/contrib/opensolaris/lib/libzfs/common/libzfs_pool.c (revision 229586)
+++ cddl/contrib/opensolaris/lib/libzfs/common/libzfs_pool.c (working copy)
@@ -176,7 +176,7 @@
/*
* Map VDEV STATE to printed strings.
*/
-char *
+const char *
zpool_state_to_name(vdev_state_t state, vdev_aux_t aux)
{
switch (state) {
@@ -204,6 +204,34 @@
}
/*
+ * Map POOL STATE to printed strings.
+ */
+const char *
+zpool_pool_state_to_name(pool_state_t state)
+{
+ switch (state) {
+ case POOL_STATE_ACTIVE:
+ return (gettext("ACTIVE"));
+ case POOL_STATE_EXPORTED:
+ return (gettext("EXPORTED"));
+ case POOL_STATE_DESTROYED:
+ return (gettext("DESTROYED"));
+ case POOL_STATE_SPARE:
+ return (gettext("SPARE"));
+ case POOL_STATE_L2CACHE:
+ return (gettext("L2CACHE"));
+ case POOL_STATE_UNINITIALIZED:
+ return (gettext("UNINITIALIZED"));
+ case POOL_STATE_UNAVAIL:
+ return (gettext("UNAVAIL"));
+ case POOL_STATE_POTENTIALLY_ACTIVE:
+ return (gettext("POTENTIALLY_ACTIVE"));
+ }
+
+ return (gettext("UNKNOWN"));
+}
+
+/*
* Get a zpool property value for 'prop' and return the value in
* a pre-allocated buffer.
*/
pgp3XnLXOGPzz.pgp
Description: PGP signature
