summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorian.mcgreer%sun.com <devnull@localhost>2002-06-25 16:57:40 +0000
committerian.mcgreer%sun.com <devnull@localhost>2002-06-25 16:57:40 +0000
commit24af7265212e16d89c1b2fc734e867a8e8067ce7 (patch)
treea7a53faedfb5f8cc4b6fc5d3baf8e1496129a067
parentd65dacd133a4316e8b7f028e1ade252cf33dd83f (diff)
downloadnss-hg-24af7265212e16d89c1b2fc734e867a8e8067ce7.tar.gz
fix AIX builds, 64-bit compiler chokes on large switches in debug builds
-rw-r--r--security/nss/lib/pk11wrap/debug_module.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/security/nss/lib/pk11wrap/debug_module.c b/security/nss/lib/pk11wrap/debug_module.c
index 18cf7c778..8d9e0b90a 100644
--- a/security/nss/lib/pk11wrap/debug_module.c
+++ b/security/nss/lib/pk11wrap/debug_module.c
@@ -40,11 +40,18 @@ static CK_FUNCTION_LIST debug_functions;
static void print_final_statistics(void);
+/* The AIX 64-bit compiler chokes on large switch statements (see
+ * bug #63815). I tried the trick recommended there, using -O2 in
+ * debug builds, and it didn't work. Instead, I'll suppress some of
+ * the verbose output and just dump values.
+ */
+
static void get_attr_type_str(CK_ATTRIBUTE_TYPE atype, char *str, int len)
{
#define SETA(attr) \
PR_snprintf(str, len, "%s", attr); break;
switch (atype) {
+#ifndef AIX_64BIT
case CKA_CLASS: SETA("CKA_CLASS");
case CKA_TOKEN: SETA("CKA_TOKEN");
case CKA_PRIVATE: SETA("CKA_PRIVATE");
@@ -136,6 +143,7 @@ static void get_attr_type_str(CK_ATTRIBUTE_TYPE atype, char *str, int len)
case CKA_CERT_MD5_HASH: SETA("CKA_CERT_MD5_HASH");
case CKA_NETSCAPE_DB: SETA("CKA_NETSCAPE_DB");
case CKA_NETSCAPE_TRUST: SETA("CKA_NETSCAPE_TRUST");
+#endif
default: PR_snprintf(str, len, "0x%p", atype); break;
}
}
@@ -145,6 +153,7 @@ static void get_obj_class(CK_OBJECT_CLASS class, char *str, int len)
#define SETO(objc) \
PR_snprintf(str, len, "%s", objc); break;
switch (class) {
+#ifndef AIX_64BIT
case CKO_DATA: SETO("CKO_DATA");
case CKO_CERTIFICATE: SETO("CKO_CERTIFICATE");
case CKO_PUBLIC_KEY: SETO("CKO_PUBLIC_KEY");
@@ -156,6 +165,7 @@ static void get_obj_class(CK_OBJECT_CLASS class, char *str, int len)
case CKO_NETSCAPE_SMIME: SETO("CKO_NETSCAPE_SMIME");
case CKO_NETSCAPE_TRUST: SETO("CKO_NETSCAPE_TRUST");
case CKO_NETSCAPE_BUILTIN_ROOT_LIST: SETO("CKO_NETSCAPE_BUILTIN_ROOT_LIST");
+#endif
default: PR_snprintf(str, len, "0x%p", class); break;
}
}
@@ -165,6 +175,7 @@ static void get_trust_val(CK_TRUST trust, char *str, int len)
#define SETT(objc) \
PR_snprintf(str, len, "%s", objc); break;
switch (trust) {
+#ifndef AIX_64BIT
case CKT_NETSCAPE_TRUSTED: SETT("CKT_NETSCAPE_TRUSTED");
case CKT_NETSCAPE_TRUSTED_DELEGATOR: SETT("CKT_NETSCAPE_TRUSTED_DELEGATOR");
case CKT_NETSCAPE_UNTRUSTED: SETT("CKT_NETSCAPE_UNTRUSTED");
@@ -172,6 +183,7 @@ static void get_trust_val(CK_TRUST trust, char *str, int len)
case CKT_NETSCAPE_TRUST_UNKNOWN: SETT("CKT_NETSCAPE_TRUST_UNKNOWN");
case CKT_NETSCAPE_VALID: SETT("CKT_NETSCAPE_VALID");
case CKT_NETSCAPE_VALID_DELEGATOR: SETT("CKT_NETSCAPE_VALID_DELEGATOR");
+#endif
default: PR_snprintf(str, len, "0x%p", trust); break;
}
}