Bug 1748529

Summary: aarch64 regression: ICE: Should be 64-bit target
Product: [Fedora] Fedora Reporter: Rex Dieter <rdieter>
Component: annobinAssignee: Nick Clifton <nickc>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 32CC: fweimer, jakub, mike, nickc, pwhalen
Target Milestone: ---   
Target Release: ---   
Hardware: aarch64   
OS: Unspecified   
Whiteboard:
Fixed In Version: annobin-8.79-2.fc32 Doc Type: No Doc Update
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2021-04-29 16:56:18 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: 245418, 1748181    

Description Rex Dieter 2019-09-03 19:16:31 UTC
works:
annobin                          aarch64 8.78-1.fc31 

fails:
annobin                          aarch64 8.79-1.fc32

pulseaudio builds started to fail recently on rawhide with error:

libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -I../src -I../src/modules -I../src/modules -DPA_ALSA_PATHS_DIR=\"/usr/share/pulseaudio/alsa-mixer/paths\" -DPA_ALSA_PROFILE_SETS_DIR=\"/usr/share/pulseaudio/alsa-mixer/profile-sets\" -DPA_SRCDIR=\"/builddir/build/BUILD/pulseaudio-12.99.3/src\" -DPA_BUILDDIR=\"/builddir/build/BUILD/pulseaudio-12.99.3/src\" -DPULSE_LOCALEDIR=\"/usr/share/locale\" -DFASTPATH -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -std=gnu11 -DPA_MODULE_NAME=module_loopback -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fstack-clash-protection -W -Wextra -Wno-long-long -Wno-overlength-strings -Wunsafe-loop-optimizations -Wundef -Wformat=2 -Wlogical-op -Wsign-compare -Wformat-security -Wmissing-include-dirs -Wformat-nonliteral -Wpointer-arith -Winit-self -Wdeclaration-after-statement -Wfloat-equal -Wmissing-prototypes -Wredundant-decls -Wmissing-declarations -Wmissing-noreturn -Wshadow -Wendif-labels -Wcast-align -Wstrict-aliasing -Wwrite-strings -Wno-unused-parameter -fno-common -fdiagnostics-show-option -fdiagnostics-color=auto -c modules/module-loopback.c  -fPIC -DPIC
libtool: compile: mv -f "module-loopback.o" "modules/.libs/module_loopback_la-module-loopback.o"
make[3]: Leaving directory '/builddir/build/BUILD/pulseaudio-12.99.3/src'
BUILDSTDERR: annobin: modules/module-loopback.c: ICE: Should be 64-bit target

Same code built fine previously,
https://koji.fedoraproject.org/koji/buildinfo?buildID=1348793

Comment 1 Philip Kovacs 2019-09-03 21:27:01 UTC
Same on openmpi, F32 only and only aarch64.  See builds such as

https://koji.fedoraproject.org/koji/taskinfo?taskID=37332928

Lots of these messages in the build.log

BUILDSTDERR: annobin: patterns/net/netpatterns_knomial_tree.c: ICE: Should be 64-bit target
BUILDSTDERR: annobin: patterns/net/netpatterns_knomial_tree.c: ICE: Should be 64-bit target
BUILDSTDERR: annobin: patterns/net/netpatterns_knomial_tree.c: ICE: Should be 64-bit target
BUILDSTDERR: annobin: patterns/net/netpatterns_knomial_tree.c: ICE: Should be 64-bit target
BUILDSTDERR: annobin: patterns/net/netpatterns_knomial_tree.c: ICE: Should be 64-bit target

and, though mostly c code, there are c++ units and those get hit with PIC errors such as:

BUILDSTDERR: .libs/file.o: in function `MPI::Errhandler::Errhandler(ompi_errhandler_t*)':
BUILDSTDERR: /builddir/build/BUILD/openmpi-4.0.1/ompi/mpi/cxx/../../../ompi/mpi/cxx/errhandler.h:30:(.text+0x158): dangerous relocation: unsupported relocation
BUILDSTDERR: /usr/bin/ld: .libs/win.o: relocation R_AARCH64_ADR_PREL_PG_HI21 against symbol `_ZTVN3MPI10ErrhandlerE' which may bind externally can not be used when making a shared object; recompile with -fPIC
BUILDSTDERR: .libs/win.o: in function `MPI::Errhandler::Errhandler(ompi_errhandler_t*)':
BUILDSTDERR: /builddir/build/BUILD/openmpi-4.0.1/ompi/mpi/cxx/../../../ompi/mpi/cxx/errhandler.h:30:(.text+0x20): dangerous relocation: unsupported relocation
BUILDSTDERR: collect2: error: ld returned 1 exit status

Note this message in the configure output:

Checking for g++ option to produce PIC... -fPIC -DPIC
checking if g++ PIC flag -fPIC -DPIC works... no            <=== What !!!! ????

I added a hack for aarch64 that adds -fPIC to the cxx flags only on that arch and
that way I am able to build openmpi on aarch64 rawhide.  No problems observed in 
F31, F30 or F29, so it's some sort of regression for F32.

Comment 2 Nick Clifton 2019-09-04 07:51:52 UTC
Hi Guys,

  Sorry - this is a known problem.  Updates to gcc can sometimes move around
  fields inside its internal structures, especially those to do with architecture
  specific command line options.  The annobin plugin examines these structures
  and if the fields have moved, then it looks in the wrong places and generates
  bogus results.

  The simplest solution is to rebuild annobin with the latest version of gcc,
  which I have now done with annobin-8.79-2.fc32.

  We are working on better fixes to this problem.  Such as detecting when
  the structures have changed using libabigail, and finding a way to have
  rebuilds of gcc automatically trigger a rebuild of annobin.

Cheers
  Nick

Comment 3 Michael Cronenworth 2019-09-14 02:06:24 UTC
Rawhide is now fixed, but it looks like F31 needs the fix, too.

https://koji.fedoraproject.org/koji/taskinfo?taskID=37655496

Comment 4 Nick Clifton 2019-09-14 21:52:16 UTC
(In reply to Michael Cronenworth from comment #3)
> Rawhide is now fixed, but it looks like F31 needs the fix, too.
 
I think that F31 has now been updated as well:

  https://bodhi.fedoraproject.org/updates/FEDORA-2019-4deb54f42a

Comment 5 Michael Cronenworth 2019-09-15 15:44:54 UTC
Yes, I've pushed out the pending updates to stable. Builds are working now. This bug should be safe to close.

Comment 6 Ben Cotton 2020-02-11 17:55:59 UTC
This bug appears to have been reported against 'rawhide' during the Fedora 32 development cycle.
Changing version to 32.

Comment 7 Fedora Program Management 2021-04-29 15:57:20 UTC
This message is a reminder that Fedora 32 is nearing its end of life.
Fedora will stop maintaining and issuing updates for Fedora 32 on 2021-05-25.
It is Fedora's policy to close all bug reports from releases that are no longer
maintained. At that time this bug will be closed as EOL if it remains open with a
Fedora 'version' of '32'.

Package Maintainer: If you wish for this bug to remain open because you
plan to fix it in a currently maintained version, simply change the 'version' 
to a later Fedora version.

Thank you for reporting this issue and we are sorry that we were not 
able to fix it before Fedora 32 is end of life. If you would still like 
to see this bug fixed and are able to reproduce it against a later version 
of Fedora, you are encouraged  change the 'version' to a later Fedora 
version prior this bug is closed as described in the policy above.

Although we aim to fix as many bugs as possible during every release's 
lifetime, sometimes those efforts are overtaken by events. Often a 
more recent Fedora release includes newer upstream software that fixes 
bugs or makes them obsolete.

Comment 8 Rex Dieter 2021-04-29 16:56:18 UTC
marking closed->errata