--- old/usr/src/cmd/cmd-inet/usr.lib/wanboot/Makefile.com	2014-05-20 20:20:10.173612899 +0400
+++ new/usr/src/cmd/cmd-inet/usr.lib/wanboot/Makefile.com	2014-05-20 20:20:10.213037571 +0400
@@ -31,4 +31,8 @@
 
 CERRWARN += -_gcc=-Wno-uninitialized
 
+# OpenSSL 1.0 and 0.9.8 produce different lint warnings
+LINTFLAGS   +=    -erroff=E_SUPPRESSION_DIRECTIVE_UNUSED
+LINTFLAGS64 +=    -erroff=E_SUPPRESSION_DIRECTIVE_UNUSED
+
 .KEEP_STATE:
--- old/usr/src/cmd/cmd-inet/usr.lib/wanboot/p12split/p12split.c	2014-05-20 20:20:10.557140636 +0400
+++ new/usr/src/cmd/cmd-inet/usr.lib/wanboot/p12split/p12split.c	2014-05-20 20:20:10.606380177 +0400
@@ -260,6 +260,7 @@
 			int i;
 
 			for (i = 0; i < sk_X509_num(ta_in); i++) {
+				/* LINTED */
 				x = sk_X509_value(ta_in, i);
 				(void) printf(
 				    gettext("\nTrust Anchor cert %d:\n"), i);
@@ -373,11 +374,13 @@
 		return;
 
 	for (i = 0; i < sk_X509_num(ta_in); ) {
+		/* LINTED */
 		curr = sk_X509_value(ta_in, i);
 		ret = time_check_print(curr);
 		if ((ret != CHK_TIME_OK && ret != CHK_TIME_IS_BEFORE) &&
 		    del_expired) {
 			(void) fprintf(stderr, gettext("  Removing cert\n"));
+			/* LINTED */
 			curr = sk_X509_delete(ta_in, i);
 			X509_free(curr);
 			continue;
@@ -581,12 +584,14 @@
 	 */
 	if (clist != NULL) {
 		if (cert != NULL && sk_X509_num(clist) == 1) {
+			/* LINTED */
 			(void) sk_X509_delete(clist, 0);
 		}
 		sk_X509_pop_free(clist, X509_free);
 	}
 	if (klist != NULL) {
 		if (pkey != NULL && sk_EVP_PKEY_num(klist) == 1) {
+			/* LINTED */
 			(void) sk_EVP_PKEY_delete(klist, 0);
 		}
 		sk_EVP_PKEY_pop_free(klist, sunw_evp_pkey_free);
--- old/usr/src/cmd/cmd-inet/usr.lib/wanboot/wanboot-cgi/wanboot-cgi.c	2014-05-20 20:20:10.858620740 +0400
+++ new/usr/src/cmd/cmd-inet/usr.lib/wanboot/wanboot-cgi/wanboot-cgi.c	2014-05-20 20:20:10.868115979 +0400
@@ -877,6 +877,7 @@
 	 * Merge the two stacks of pkcs12 certs.
 	 */
 	for (i = 0; i < sk_X509_num(i_anchors); i++) {
+		/* LINTED */
 		x = sk_X509_delete(i_anchors, i);
 		(void) sk_X509_push(o_anchors, x);
 	}
@@ -1089,6 +1090,7 @@
 	p12 = NULL;
 
 	for (i = 0; i < sk_X509_num(certs); i++) {
+		/* LINTED */
 		x = sk_X509_value(certs, i);
 		if (!one_name(sunw_issuer_attrs(x, buf, sizeof (buf) - 1),
 		    nvl)) {
--- old/usr/src/lib/libkmf/plugins/kmf_openssl/Makefile.com	2014-05-20 20:20:11.220422683 +0400
+++ new/usr/src/lib/libkmf/plugins/kmf_openssl/Makefile.com	2014-05-20 20:20:11.247030430 +0400
@@ -43,6 +43,10 @@
 LINTSSLLIBS	= $(BERLIB) -lcryptoutil -lc
 LINTSSLLIBS64	= $(BERLIB64) -lcryptoutil -lc
 
+# OpenSSL 1.0 and 0.9.8 produce different lint warnings
+LINTFLAGS   +=    -erroff=E_SUPPRESSION_DIRECTIVE_UNUSED
+LINTFLAGS64 +=    -erroff=E_SUPPRESSION_DIRECTIVE_UNUSED
+
 SRCDIR=		../common
 INCDIR=		../../include
 
--- old/usr/src/lib/libkmf/plugins/kmf_openssl/common/openssl_spi.c	2014-05-20 20:20:11.492058917 +0400
+++ new/usr/src/lib/libkmf/plugins/kmf_openssl/common/openssl_spi.c	2014-05-20 20:20:11.512753407 +0400
@@ -2499,6 +2499,7 @@
 	keyhash = id->value.byKey->data;
 	/* Calculate hash of each key and compare */
 	for (i = 0; i < sk_X509_num(certs); i++) {
+		/* LINTED E_BAD_PTR_CAST_ALIGN */
 		X509 *x = sk_X509_value(certs, i);
 		/* Use pubkey_digest to get the key ID value */
 		(void) X509_pubkey_digest(x, EVP_sha1(), tmphash, NULL);
@@ -3638,6 +3639,7 @@
 	}
 
 	for (i = 0; i < sk_X509_INFO_num(x509_info_stack); i++) {
+		/* LINTED E_BAD_PTR_CAST_ALIGN */
 		cert_infos[ncerts] = sk_X509_INFO_value(x509_info_stack, i);
 		ncerts++;
 	}
@@ -3719,6 +3721,7 @@
 err:
 	/* Cleanup the stack of X509 info records */
 	for (i = 0; i < sk_X509_INFO_num(x509_info_stack); i++) {
+		/* LINTED E_BAD_PTR_CAST_ALIGN */
 		info = (X509_INFO *)sk_X509_INFO_value(x509_info_stack, i);
 		X509_INFO_free(info);
 	}
@@ -3739,6 +3742,7 @@
 	int i;
 
 	for (i = 0; i < sk_PKCS12_SAFEBAG_num(bags); i++) {
+		/* LINTED E_BAD_PTR_CAST_ALIGN */
 		PKCS12_SAFEBAG *bag = sk_PKCS12_SAFEBAG_value(bags, i);
 		ret = openssl_parse_bag(bag, pin, (pin ? strlen(pin) : 0),
 		    keys, certs);
@@ -3769,9 +3773,11 @@
 		X509_ATTRIBUTE *a;
 		for (i = 0;
 		    i < sk_X509_ATTRIBUTE_num(pkey->attributes); i++) {
+			/* LINTED E_BAD_PTR_CASE_ALIGN */
 			a = sk_X509_ATTRIBUTE_value(pkey->attributes, i);
 			if (OBJ_obj2nid(a->object) == nid) {
 				X509_ATTRIBUTE_free(a);
+				/* LINTED E_BAD_PTR_CAST_ALIGN */
 				(void) sk_X509_ATTRIBUTE_set(pkey->attributes,
 				    i, attr);
 				return (KMF_OK);
@@ -3949,6 +3955,7 @@
 
 	for (i = 0; ret == KMF_OK && i < sk_PKCS7_num(asafes); i++) {
 		bags = NULL;
+		/* LINTED E_BAD_PTR_CAST_ALIGN */
 		p7 = sk_PKCS7_value(asafes, i);
 		bagnid = OBJ_obj2nid(p7->type);
 
@@ -4226,6 +4233,7 @@
 		return (NULL);
 
 	for (i = 0; i < sk_X509_ATTRIBUTE_num(attrs); i++) {
+		/* LINTED E_BAD_PTR_CAST_ALIGN */
 		a = sk_X509_ATTRIBUTE_value(attrs, i);
 		if (OBJ_obj2nid(a->object) == nid)
 			return (a);
@@ -4266,6 +4274,7 @@
 		ASN1_TYPE *ty = NULL;
 		int numattr = sk_ASN1_TYPE_num(attr->value.set);
 		if (attr->single == 0 && numattr > 0) {
+			/* LINTED E_BAD_PTR_CAST_ALIGN */
 			ty = sk_ASN1_TYPE_value(attr->value.set, 0);
 		}
 		if (ty != NULL) {
@@ -4289,6 +4298,7 @@
 		ASN1_TYPE *ty = NULL;
 		int numattr = sk_ASN1_TYPE_num(attr->value.set);
 		if (attr->single == 0 && numattr > 0) {
+			/* LINTED E_BAD_PTR_CAST_ALIGN */
 			ty = sk_ASN1_TYPE_value(attr->value.set, 0);
 		}
 		key->id.Data = (uchar_t *)malloc(
@@ -4319,6 +4329,7 @@
 	int i;
 
 	for (i = 0; sslkeys != NULL && i < sk_EVP_PKEY_num(sslkeys); i++) {
+		/* LINTED E_BAD_PTR_CAST_ALIGN */
 		EVP_PKEY *pkey = sk_EVP_PKEY_value(sslkeys, i);
 		rv = convertToRawKey(pkey, &key);
 		if (rv == KMF_OK)
@@ -4330,6 +4341,7 @@
 
 	/* Now add the certificate to the certlist */
 	for (i = 0; sslcert != NULL && i < sk_X509_num(sslcert); i++) {
+		/* LINTED E_BAD_PTR_CAST_ALIGN */
 		X509 *cert = sk_X509_value(sslcert, i);
 		rv = add_cert_to_list(kmfh, cert, certlist, ncerts);
 		if (rv != KMF_OK)
@@ -4345,6 +4357,7 @@
 		 * Lint is complaining about the embedded casting, and
 		 * to fix it, you need to fix openssl header files.
 		 */
+		/* LINTED E_BAD_PTR_CAST_ALIGN */
 		c = sk_X509_value(sslcacerts, i);
 
 		/* Now add the ca cert to the certlist */
@@ -5411,6 +5424,7 @@
 	}
 
 	for (i = 0; i < sk_X509_REVOKED_num(revoke_stack); i++) {
+		/* LINTED E_BAD_PTR_CAST_ALIGN */
 		revoke = sk_X509_REVOKED_value(revoke_stack, i);
 		if (ASN1_INTEGER_cmp(xcert->cert_info->serialNumber,
 		    revoke->serialNumber) == 0) {
--- old/usr/src/lib/libpkg/Makefile.com	2014-05-20 20:20:11.912855361 +0400
+++ new/usr/src/lib/libpkg/Makefile.com	2014-05-20 20:20:11.930243268 +0400
@@ -57,7 +57,7 @@
 # openssl forces us to ignore dubious pointer casts, thanks to its clever
 # use of macros for stack management.
 LINTFLAGS=      -umx -errtags \
-		-erroff=E_BAD_PTR_CAST_ALIGN,E_BAD_PTR_CAST
+		-erroff=E_BAD_PTR_CAST_ALIGN,E_BAD_PTR_CAST,E_SUPPRESSION_DIRECTIVE_UNUSED
 $(LINTLIB):=	SRCS = $(SRCDIR)/$(LINTSRC)
 
 
--- old/usr/src/lib/libwanboot/Makefile.com	2014-05-20 20:20:12.168105959 +0400
+++ new/usr/src/lib/libwanboot/Makefile.com	2014-05-20 20:20:12.195551539 +0400
@@ -84,6 +84,10 @@
 LINTFLAGS   +=    -erroff=E_BAD_PTR_CAST_ALIGN
 LINTFLAGS64 +=    -erroff=E_BAD_PTR_CAST_ALIGN
 
+# OpenSSL 1.0 and 0.9.8 produce different lint warnings
+LINTFLAGS   +=    -erroff=E_SUPPRESSION_DIRECTIVE_UNUSED
+LINTFLAGS64 +=    -erroff=E_SUPPRESSION_DIRECTIVE_UNUSED
+
 CFLAGS +=	$(CCVERBOSE)
 CPPFLAGS +=	-I$(LOC_DIR) -I$(COM_DIR) -I$(DHCP_DIR)
 
