Closed Bug 1556273 Opened 5 years ago Closed 5 years ago

Harden ABI checks against bogus __anonymous_enum__ errors

Categories

(NSS :: Test, enhancement, P1)

enhancement

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: mt, Assigned: mt)

Details

Attachments

(2 files)

We've seen a couple of recent errors like this:

FAILED: there are new unexpected ABI changes
--- /home/worker/nss/automation/abi-check/expected-report-libnss3.so.txt	2019-06-01 21:13:30.113442000 +0000
+++ /home/worker/nss/automation/abi-check/new-report-libnss3.so.txt	2019-06-01 21:14:56.950898000 +0000
@@ -7,15 +7,15 @@
 
   [C]'function SECStatus CERT_AddOCSPAcceptableResponses(CERTOCSPRequest*, SECOidTag, ...)' at ocsp.c:2203:1 has some indirect sub-type changes:
     parameter 2 of type 'typedef SECOidTag' has sub-type changes:
-      underlying type 'enum __anonymous_enum__' at secoidt.h:34:1 changed:
+      underlying type 'enum __anonymous_enum__3' at secoidt.h:34:1 changed:
         type size hasn't changed
         3 enumerator insertions:
-          '__anonymous_enum__::SEC_OID_EXT_KEY_USAGE_IPSEC_END' value '361'
-          '__anonymous_enum__::SEC_OID_EXT_KEY_USAGE_IPSEC_TUNNEL' value '362'
-          '__anonymous_enum__::SEC_OID_EXT_KEY_USAGE_IPSEC_USER' value '363'
+          '__anonymous_enum__3::SEC_OID_EXT_KEY_USAGE_IPSEC_END' value '361'
+          '__anonymous_enum__3::SEC_OID_EXT_KEY_USAGE_IPSEC_TUNNEL' value '362'
+          '__anonymous_enum__3::SEC_OID_EXT_KEY_USAGE_IPSEC_USER' value '363'
 
         1 enumerator change:
-          '__anonymous_enum__::SEC_OID_TOTAL' from value '361' to '364' at secoidt.h:34:1
+          '__anonymous_enum__3::SEC_OID_TOTAL' from value '361' to '364' at secoidt.h:34:1

I don't really know whether this is a change in libabigail, the compiler, or our code, but there is no sense in being too pedantic here. As long as the names of the fields are the same, the name of an anonymous enum is irrelevant. We can (and should) scrub the checks for these. I plan to use sed -e 's/__anonymous_enum__[0-9]*::/__anonymous_enum__::/g'.

I am also tempted to scrub all instances of line numbers, but I'm not confident that these are always irrelevant.

This probably isn't ideal, but it should avoid problems with numbering of
anonymous enumerations.

Status: NEW → ASSIGNED
Priority: -- → P1
Status: ASSIGNED → RESOLVED
Closed: 5 years ago
Resolution: --- → FIXED
Target Milestone: --- → 3.44
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: