Bug 1928936
Summary: | RPMDiff failing on annocheck with glibc-2.28-148.el8.ppc64le | ||
---|---|---|---|
Product: | Red Hat Enterprise Linux 8 | Reporter: | Than Ngo <than> |
Component: | binutils | Assignee: | Nick Clifton <nickc> |
binutils sub component: | system-version | QA Contact: | Miloš Prchlík <mprchlik> |
Status: | CLOSED ERRATA | Docs Contact: | |
Severity: | high | ||
Priority: | high | CC: | ashankar, codonell, dj, fweimer, jnovy, lmiksik, mcermak, mdomonko, mnewsome, mpitt, mprchlik, nickc, ohudlick, pfrankli, sipoyare |
Version: | 8.4 | Keywords: | Bugfix, Regression, Triaged |
Target Milestone: | rc | ||
Target Release: | --- | ||
Hardware: | ppc64le | ||
OS: | Unspecified | ||
Whiteboard: | |||
Fixed In Version: | binutils-2.30-93.el8 | Doc Type: | No Doc Update |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2021-05-18 13:28:07 UTC | Type: | Bug |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: | |||
Bug Depends On: | |||
Bug Blocks: | 1931305 | ||
Attachments: |
Description
Than Ngo
2021-02-15 20:07:43 UTC
Created attachment 1757206 [details]
crt1.o from glibc-devel-2.28-140.el8.ppc64le
Created attachment 1757207 [details]
crt1.o from glibc-devel-2.28-148.el8.ppc64le
The old file had these notes (ignoring sections with only annobin version information): Displaying notes found in: .gnu.build.attributes Owner Data size Description GA$<version>3p935 0x00000010 OPEN Applies to region from 0x48 to 0x44 GA$<tool>running gcc 8.4.1 20200928 0x00000000 OPEN Applies to region from 0x48 GA$<tool>annobin gcc 8.4.1 20200928 0x00000000 OPEN Applies to region from 0x48 GA*GOW:0x452a 0x00000000 OPEN Applies to region from 0x48 GA*<stack prot>off 0x00000000 OPEN Applies to region from 0x48 GA+stack_clash:true 0x00000000 OPEN Applies to region from 0x48 GA*cf_protection:0x1 0x00000000 OPEN Applies to region from 0x48 GA*FORTIFY:0xff 0x00000000 OPEN Applies to region from 0x48 GA+GLIBCXX_ASSERTIONS:true 0x00000000 OPEN Applies to region from 0x48 GA*<PIC>static 0x00000000 OPEN Applies to region from 0x48 GA!<short enum>false 0x00000000 OPEN Applies to region from 0x48 GA+omit_frame_pointer:true 0x00000000 OPEN Applies to region from 0x48 GA*<ABI>0x20 0x00000000 OPEN Applies to region from 0x48 Displaying notes found in: .gnu.build.attributes Owner Data size Description GA$<version>3p935 0x00000010 OPEN Applies to region from 0x48 to 0x44 GA$<tool>running gcc 8.4.1 20200928 0x00000000 OPEN Applies to region from 0x48 GA$<tool>annobin gcc 8.4.1 20200928 0x00000000 OPEN Applies to region from 0x48 GA*GOW:0x452a 0x00000000 OPEN Applies to region from 0x48 GA*<stack prot>off 0x00000000 OPEN Applies to region from 0x48 GA+stack_clash:true 0x00000000 OPEN Applies to region from 0x48 GA*cf_protection:0x1 0x00000000 OPEN Applies to region from 0x48 GA*FORTIFY:0xff 0x00000000 OPEN Applies to region from 0x48 GA+GLIBCXX_ASSERTIONS:true 0x00000000 OPEN Applies to region from 0x48 GA*<PIC>static 0x00000000 OPEN Applies to region from 0x48 GA!<short enum>false 0x00000000 OPEN Applies to region from 0x48 GA+omit_frame_pointer:true 0x00000000 OPEN Applies to region from 0x48 GA*<ABI>0x20 0x00000000 OPEN Applies to region from 0x48 The new file has more section annotations: Displaying notes found in: .gnu.build.attributes Owner Data size Description GA$<version>3p950 0x00000010 OPEN Applies to region from 0x48 to 0x44 GA$<tool>running gcc 8.4.1 20200928 0x00000000 OPEN Applies to region from 0x48 GA$<tool>annobin gcc 8.4.1 20200928 0x00000000 OPEN Applies to region from 0x48 GA*GOW:0x2452a 0x00000000 OPEN Applies to region from 0x48 GA*<stack prot>off 0x00000000 OPEN Applies to region from 0x48 GA+stack_clash:true 0x00000000 OPEN Applies to region from 0x48 GA*cf_protection:0x1 0x00000000 OPEN Applies to region from 0x48 GA*FORTIFY:0xff 0x00000000 OPEN Applies to region from 0x48 GA+GLIBCXX_ASSERTIONS:true 0x00000000 OPEN Applies to region from 0x48 GA*<PIC>static 0x00000000 OPEN Applies to region from 0x48 GA!<short enum>false 0x00000000 OPEN Applies to region from 0x48 GA+omit_frame_pointer:true 0x00000000 OPEN Applies to region from 0x48 GA*<ABI>0x20 0x00000000 OPEN Applies to region from 0x48 Displaying notes found in: .gnu.build.attributes.hot Owner Data size Description GA$<version>3h950 0x00000010 OPEN Applies to region from 0x4 GA$<tool>running gcc 8.4.1 20200928 0x00000000 OPEN Applies to region from 0x4 to 0x44 GA$<tool>annobin gcc 8.4.1 20200928 0x00000000 OPEN Applies to region from 0x4 to 0x44 GA*GOW:0x2452a 0x00000000 OPEN Applies to region from 0x4 to 0x44 GA*<stack prot>off 0x00000000 OPEN Applies to region from 0x4 to 0x44 GA+stack_clash:true 0x00000000 OPEN Applies to region from 0x4 to 0x44 GA*cf_protection:0x1 0x00000000 OPEN Applies to region from 0x4 to 0x44 GA*FORTIFY:0xff 0x00000000 OPEN Applies to region from 0x4 to 0x44 GA+GLIBCXX_ASSERTIONS:true 0x00000000 OPEN Applies to region from 0x4 to 0x44 GA*<PIC>static 0x00000000 OPEN Applies to region from 0x4 to 0x44 GA!<short enum>false 0x00000000 OPEN Applies to region from 0x4 to 0x44 GA+omit_frame_pointer:true 0x00000000 OPEN Applies to region from 0x4 to 0x44 GA*<ABI>0x20 0x00000000 OPEN Applies to region from 0x4 to 0x44 Displaying notes found in: .gnu.build.attributes.unlikely Owner Data size Description GA$<version>3c950 0x00000010 OPEN Applies to region from 0x4 GA$<tool>running gcc 8.4.1 20200928 0x00000000 OPEN Applies to region from 0x4 to 0x44 GA$<tool>annobin gcc 8.4.1 20200928 0x00000000 OPEN Applies to region from 0x4 to 0x44 GA*GOW:0x2452a 0x00000000 OPEN Applies to region from 0x4 to 0x44 GA*<stack prot>off 0x00000000 OPEN Applies to region from 0x4 to 0x44 GA+stack_clash:true 0x00000000 OPEN Applies to region from 0x4 to 0x44 GA*cf_protection:0x1 0x00000000 OPEN Applies to region from 0x4 to 0x44 GA*FORTIFY:0xff 0x00000000 OPEN Applies to region from 0x4 to 0x44 GA+GLIBCXX_ASSERTIONS:true 0x00000000 OPEN Applies to region from 0x4 to 0x44 GA*<PIC>static 0x00000000 OPEN Applies to region from 0x4 to 0x44 GA!<short enum>false 0x00000000 OPEN Applies to region from 0x4 to 0x44 GA+omit_frame_pointer:true 0x00000000 OPEN Applies to region from 0x4 to 0x44 GA*<ABI>0x20 0x00000000 OPEN Applies to region from 0x4 to 0x44 Displaying notes found in: .gnu.build.attributes.startup Owner Data size Description GA$<version>3s950 0x00000010 OPEN Applies to region from 0x4 GA$<tool>running gcc 8.4.1 20200928 0x00000000 OPEN Applies to region from 0x4 to 0x44 GA$<tool>annobin gcc 8.4.1 20200928 0x00000000 OPEN Applies to region from 0x4 to 0x44 GA*GOW:0x2452a 0x00000000 OPEN Applies to region from 0x4 to 0x44 GA*<stack prot>off 0x00000000 OPEN Applies to region from 0x4 to 0x44 GA+stack_clash:true 0x00000000 OPEN Applies to region from 0x4 to 0x44 GA*cf_protection:0x1 0x00000000 OPEN Applies to region from 0x4 to 0x44 GA*FORTIFY:0xff 0x00000000 OPEN Applies to region from 0x4 to 0x44 GA+GLIBCXX_ASSERTIONS:true 0x00000000 OPEN Applies to region from 0x4 to 0x44 GA*<PIC>static 0x00000000 OPEN Applies to region from 0x4 to 0x44 GA!<short enum>false 0x00000000 OPEN Applies to region from 0x4 to 0x44 GA+omit_frame_pointer:true 0x00000000 OPEN Applies to region from 0x4 to 0x44 GA*<ABI>0x20 0x00000000 OPEN Applies to region from 0x4 to 0x44 Displaying notes found in: .gnu.build.attributes.exit Owner Data size Description GA$<version>3e950 0x00000010 OPEN Applies to region from 0x4 GA$<tool>running gcc 8.4.1 20200928 0x00000000 OPEN Applies to region from 0x4 to 0x44 GA$<tool>annobin gcc 8.4.1 20200928 0x00000000 OPEN Applies to region from 0x4 to 0x44 GA*GOW:0x2452a 0x00000000 OPEN Applies to region from 0x4 to 0x44 GA*<stack prot>off 0x00000000 OPEN Applies to region from 0x4 to 0x44 GA+stack_clash:true 0x00000000 OPEN Applies to region from 0x4 to 0x44 GA*cf_protection:0x1 0x00000000 OPEN Applies to region from 0x4 to 0x44 GA*FORTIFY:0xff 0x00000000 OPEN Applies to region from 0x4 to 0x44 GA+GLIBCXX_ASSERTIONS:true 0x00000000 OPEN Applies to region from 0x4 to 0x44 GA*<PIC>static 0x00000000 OPEN Applies to region from 0x4 to 0x44 GA!<short enum>false 0x00000000 OPEN Applies to region from 0x4 to 0x44 GA+omit_frame_pointer:true 0x00000000 OPEN Applies to region from 0x4 to 0x44 GA*<ABI>0x20 0x00000000 OPEN Applies to region from 0x4 to 0x44 This seems to cause an open-ended GA*FORTIFY:0xff note in opencryptoki. Created attachment 1757208 [details]
Unstripped /usr/sbin/p11sak (from opencryptoki-3.15.1-5.el8.ppc64le rebuild)
Created attachment 1757209 [details]
Stripped /usr/sbin/p11sak (from opencryptoki-3.15.1-5.el8.ppc64le rebuild)
This is after the RPM build process (after note merging etc.). These notes are left:
Displaying notes found in: .gnu.build.attributes
Owner Data size Description
GA$<version>3a1 0x00000010 OPEN Applies to region from 0xd40 to 0x489c
GA*<stack prot>strong 0x00000010 OPEN Applies to region from 0x1144 to 0x93c4
GA$<tool>annobin gcc 8.4.1 20200928 0x00000000 OPEN Applies to region from 0x1144 to 0x93c4
GA$<tool>running gcc 8.4.1 20200928 0x00000000 OPEN Applies to region from 0x1144 to 0x93c4
GA*<ABI>0x20 0x00000000 OPEN Applies to region from 0x1144 to 0x93c4
GA*<PIC>PIC 0x00000000 OPEN Applies to region from 0x1144 to 0x93c4
GA!<short enum>false 0x00000000 OPEN Applies to region from 0x1144 to 0x93c4
GA*FORTIFY:0x2 0x00000000 OPEN Applies to region from 0x1144 to 0x93c4
GA+GLIBCXX_ASSERTIONS:true 0x00000000 OPEN Applies to region from 0x1144 to 0x93c4
GA*GOW:0x2452a 0x00000000 OPEN Applies to region from 0x1144 to 0x93c4
GA*cf_protection:0x1 0x00000000 OPEN Applies to region from 0x1144 to 0x93c4
GA+omit_frame_pointer:true 0x00000000 OPEN Applies to region from 0x1144 to 0x93c4
GA+stack_clash:true 0x00000000 OPEN Applies to region from 0x1144 to 0x93c4
GA*<PIC>PIE 0x00000010 OPEN Applies to region from 0x1144 to 0x929c
GA*GOW:0x2c52a 0x00000000 OPEN Applies to region from 0x1144 to 0x929c
GA*<stack prot>off 0x00000010 OPEN Applies to region from 0x1144 to 0x489c
GA*<PIC>static 0x00000000 OPEN Applies to region from 0x1144 to 0x489c
GA*FORTIFY:0xff 0x00000000 OPEN Applies to region from 0x1144 to 0x489c
GA$<version>3s950 0x00000010 OPEN Applies to region from 0x1144 to 0x4858
GA$<version>3c950 0x00000010 OPEN Applies to region from 0x1144 to 0x1140
GA$<version>3e950 0x00000000 OPEN Applies to region from 0x1144
GA$<version>3h950 0x00000010 OPEN Applies to region from 0x485c to 0x4858
GA$<version>3a1 0x00000010 OPEN Applies to region from 0x48a0 to 0x94a8
GA$<version>3p950 0x00000010 OPEN Applies to region from 0x48a0 to 0x93c4
GA*FORTIFY:0x2 0x00000010 func Applies to region from 0x1140 to 0x929c
GA+GLIBCXX_ASSERTIONS:true 0x00000000 func Applies to region from 0x1140 to 0x929c
GA*GOW:0x2c52a 0x00000010 func Applies to region from 0x1140 to 0x4858
GA*cf_protection:0x1 0x00000000 func Applies to region from 0x1140 to 0x4858
GA+omit_frame_pointer:true 0x00000000 func Applies to region from 0x1140 to 0x4858
GA+stack_clash:true 0x00000000 func Applies to region from 0x1140 to 0x4858
GA*<stack prot>strong 0x00000000 func Applies to region from 0x1140 to 0x4858
GA*<ABI>0x20 0x00000000 func Applies to region from 0x1140 to 0x4858
GA*<PIC>PIE 0x00000000 func Applies to region from 0x1140 to 0x4858
GA!<short enum>false 0x00000000 func Applies to region from 0x1140 to 0x4858
GA*FORTIFY:0x2 0x00000010 func Applies to region from 0x92a0 to 0x93c4
GA+GLIBCXX_ASSERTIONS:true 0x00000000 func Applies to region from 0x92a0 to 0x93c4
Created attachment 1757224 [details]
Scrt1.o from glibc-devel-2.28-140.el8.ppc64le
Created attachment 1757226 [details]
Scrt1.o from glibc-devel-2.28-148.el8.ppc64le
I forgot that Scrt1.o is actually used during linking due to PIE. Copying Scrt1.o from -140 glibc to /usr/lib64 makes the annocheck result for p11sak pass even if the rest of glibc is the -148 version. And rebuild -140 with the current toolchain (annobin-9.50-1.el8.ppc64le, binutils-2.30-90.el8.ppc64le, gcc-8.4.1-1.el8.ppc64le) produces exactly the same Scrt1.o file as we in the -148 version of glibc. It's not a glibc source change that is causing this. Darn - this is another bug in objcopy's note merging code. In this case the problem is that ppc64le binaries can have empty note ranges that are actually encoded with a start address that is higher than the end address. The merge algorithm was not expecting this and goes a little bit haywire when it happens. I have a local patch which I am testing now... (In reply to RHEL Program Management from comment #15) > ======= Impact Statement ======= > > What is the benefit of making this change after the deadline? What is the > impact on customer satisfaction, and on the business? The fix will prevent spurious failure results in the RPMDiff process run by QE when builds are submitted for attachment to an errata. This will reduce the load on package maintainers, and QE, thus helping to streamline the delivery of RHEL-8.4.0 to customers. > a. For bugfixes, there must be support from someone in Customer Support, a > Partner Manager, Product Manager, and/or a Business Unit rep. (e.g., > potentially from a layered product BU). Brian Gollaher supports this request. > What is the risk to the release schedule, quality, and the impact of > diverting resources from other efforts? There should be negligible impact to the release schedule since the fix is already developed and testing by QE should be simple. Accepting the change however is likely to have a positive impact on the quality and timeliness of the release as it will avoid wasting developer and QE time. > Will there be enough time to do the > necessary large-scale, cross-function, regression, stress, or > fault-insertion testing that may be required to verify this change? None of that kind of testing will be necessary fir this particular change. Simply verifying that opencryptoki package builds and passes the rpmdiff tests will be sufficient. > 4. Prepare a RHEL rpm scratch build and have this change validated on the > latest RHEL milestone compose by someone other than the developer. A comment > must be added to the Bugzilla indicating the validation is successful and > there were no observed regressions. See comment #18. *** Bug 1929635 has been marked as a duplicate of this bug. *** Verified with binutils-2.30-93.el8. Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory (binutils bug fix and enhancement update), and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHBA-2021:1572 |