Bug 1574478

Summary: gcc is unable to create any executables due to mis-matched annobin build
Product: [Fedora] Fedora Reporter: Daniel BerrangĂ© <berrange>
Component: annobinAssignee: Nick Clifton <nickc>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: urgent Docs Contact:
Priority: unspecified    
Version: rawhideCC: abokovoy, chturne, fweimer, nickc, nusiddiq, pyuan
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: annobin-5.6-3.fc29 annobin-5.7-2.fc28 Doc Type: No Doc Update
Doc Text:
undefined
Story Points: ---
Clone Of: Environment:
Last Closed: 2018-05-12 18:21:08 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:

Description Daniel Berrangé 2018-05-03 11:58:31 UTC
Description of problem:
Gcc was just updated to 8.1.1 in rawhide and immediately fails all builds due to mis-matched annobin plugin

configure:6112: gcc -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 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection  -Wl,-z,relro  -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld conftest.c  >&5
annobin: conftest.c: Error: plugin built for compiler version (8.1.1) but run with compiler version (8.0.1)
cc1: error: fail to initialize plugin /usr/lib/gcc/x86_64-redhat-linux/8/plugin/annobin.so

Version-Release number of selected component (if applicable):
gcc-8.1.1-1.fc29          
annobin-5.6-2.fc29     

How reproducible:
Always

Steps to Reproduce:
1. Try to compile anything
2.
3.

Actual results:
annobin: conftest.c: Error: plugin built for compiler version (8.1.1) but run with compiler version (8.0.1)
cc1: error: fail to initialize plugin /usr/lib/gcc/x86_64-redhat-linux/8/plugin/annobin.so


Expected results:


Additional info:

Comment 2 Nick Clifton 2018-05-03 12:55:04 UTC
I have rebuilt annobin with the gcc 8.1.1 compiler, so this should no longer
be a problem for rawhide.

There will probably be a similar issue for Fedora 28, once gcc 8.1.1 is available there, but I have an F28 annobin build read to go...

Fixed in:  annobin-5.6-3.fc29

Comment 3 Numan Siddique 2018-05-10 09:49:34 UTC
I am seeing the same error on Fedora 28 with annobin-5.6-3.fc28.x86_64 installed.

Any idea when the annobin compiled with gcc 8.1.1 will be available ?

Thanks

Comment 4 Fedora Update System 2018-05-10 10:32:10 UTC
annobin-5.7-2.fc28 has been submitted as an update to Fedora 28. https://bodhi.fedoraproject.org/updates/FEDORA-2018-7aff14ecad

Comment 5 Nick Clifton 2018-05-10 10:34:11 UTC
Hi Numan,

  I have rebuilt annobin using gcc 8.1.1 and submitted an update request.
  Ideally the new version should be available to Fedora 28 users within a
  day or so.

Cheers
  Nick

Comment 6 Numan Siddique 2018-05-10 16:58:27 UTC
Thank you

Comment 7 Fedora Update System 2018-05-11 01:59:49 UTC
annobin-5.7-2.fc28 has been pushed to the Fedora 28 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2018-7aff14ecad

Comment 8 Fedora Update System 2018-05-12 18:21:08 UTC
annobin-5.7-2.fc28 has been pushed to the Fedora 28 stable repository. If problems still persist, please make note of it in this bug report.

Comment 9 Henry 2018-10-21 14:25:53 UTC
This is still a problem, just a new version. Absolutely critical blocker, can't compile programs on Fedora!

/usr/bin/g-ir-scanner -I/usr/include/gobject-introspection-1.0 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -pthread --no-libtool --namespace=Gst --nsversion=1.0 --warn-all --output subprojects/gstreamer/gst/Gst-1.0.gir '--add-init-section=extern void gst_init(gint*,gchar**);g_setenv("GST_REGISTRY_DISABLE", "yes", TRUE);g_setenv("GST_REGISTRY_1.0", "/no/way/this/exists.reg", TRUE);g_setenv("GST_PLUGIN_PATH_1_0", "", TRUE);g_setenv("GST_PLUGIN_SYSTEM_PATH_1_0", "", TRUE);gst_init(NULL,NULL);' --c-include=gst/gst.h --cflags-begin -I/home/cturner/gstreamer/gst-build/subprojects/gstreamer/gst/.. -I/home/cturner/gstreamer/gst-build/build/subprojects/gstreamer/gst/.. --cflags-end -I/home/cturner/gstreamer/gst-build/subprojects/gstreamer/gst -I/home/cturner/gstreamer/gst-build/build/subprojects/gstreamer/gst -I./subprojects/gstreamer/. -I../subprojects/gstreamer/. -I./subprojects/gstreamer/gst/parse -I../subprojects/gstreamer/gst/parse --filelist=/home/cturner/gstreamer/gst-build/build/subprojects/gstreamer/gst/subprojects@gstreamer@gst@@gstreamer-1.0@sha/Gst_1.0_gir_filelist --include=GLib-2.0 --include=GObject-2.0 --include=GModule-2.0 --symbol-prefix=gst --identifier-prefix=Gst --pkg-export=gstreamer-1.0 --cflags-begin -fvisibility=hidden -fno-strict-aliasing -DG_DISABLE_DEPRECATED -Wmissing-declarations -Wmissing-prototypes -Wredundant-decls -Wundef -Wwrite-strings -Wformat -Wformat-nonliteral -Wformat-security -Wold-style-definition -Winit-self -Wmissing-include-dirs -Waddress -Waggregate-return -Wno-multichar -Wnested-externs -Wdeclaration-after-statement -Wvla -Wpointer-arith -I./subprojects/gstreamer/. -I../subprojects/gstreamer/. -I./subprojects/gstreamer/gst/parse -I../subprojects/gstreamer/gst/parse -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include --cflags-end -L/home/cturner/gstreamer/gst-build/build/subprojects/gstreamer/gst/printf --library gstreamer-1.0 -L/home/cturner/gstreamer/gst-build/build/subprojects/gstreamer/gst --extra-library=gobject-2.0 --extra-library=glib-2.0 --extra-library=gmodule-2.0 --extra-library=m --extra-library=dl --extra-library=unwind --extra-library=dw --extra-library=elf
annobin: Gst_1.0.c: Error: plugin built for compiler version (8.2.1) but run with compiler version (8.1.1)
cc1: error: fail to initialize plugin /usr/lib/gcc/x86_64-redhat-linux/8/plugin/annobin.so

Comment 10 Henry 2018-10-21 14:27:00 UTC
Is there a workaround for this in the meantime?

Comment 11 Henry 2018-10-21 14:30:55 UTC
This shouldn't be closed until the points mentioned in this mailing list are fixed, https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/KM2AWPOKO4EQ4VF65X7MC27UKU6WJ7PZ/

Can't break compilation each time GCC is upgraded

Comment 12 Henry 2018-10-21 14:32:46 UTC
OK, I found a new version of annobin, phew, that was scary!

Comment 13 Nick Clifton 2018-10-22 08:50:22 UTC
Hi Guys,

  Just to let you know what is going on: The annobin plugin now only checks
  gcc's major version number, and ignores changes in the minor version number.
  So problems like this should now only happen when rebasing gcc to a new
  major release, which I assume will only ever happen in rawhide.

  I am assuming of course that gcc's internals will not change significantly
  between minor version upgrades.  At least not as far as they affect the
  annobin plugin.  Fortunately annobin has a very light touch on gcc, so this
  is unlikely to ever be a problem.

Cheers
  Nick

Comment 14 Alexander Bokovoy 2018-10-23 08:17:49 UTC
Unfortunately, it is still a problem in F28 because nothing requires the upgrade of annobin. We see this issue in failed Travis CI for FreeIPA pull requests. We use Fedora 28 in our container and run

10-23 07:52 ipadocker.command INFO     Executing command: rm -rf /var/cache/dnf/*
10-23 07:52 ipadocker.command INFO     Executing command: dnf makecache || :
Copr repo for freeipa-master owned by @freeipa   63 kB/s |  27 kB     00:00
Fedora 28 - x86_64 - Updates                    4.5 MB/s |  26 MB     00:05
Fedora 28 - x86_64                               53 MB/s |  60 MB     00:01
Failed to synchronize cache for repo 'group_freeipa-freeipa-4-6', disabling.
Last metadata expiration check: 0:00:00 ago on Tue 23 Oct 2018 07:52:40 AM UTC.
Metadata cache created.
10-23 07:53 ipadocker.command INFO     Executing command: dnf builddep -y -D "with_lint 1" -D "with_wheels 1" --spec freeipa.spec.in --best --allowerasing --setopt=install_weak_deps=False

this results in pulling updated gcc packages from Fedora 28 updates repository but no updated annobin package is pulled in. In fact, on Fedora 29 system I can only see annobin required by the redhat-rpm-config package.

As result, we get

"annobin: LDAPObject.c: Error: plugin built for compiler version (8.2.1) but run with compiler version (8.1.1)"

Comment 15 Perry Yuan (Dell) 2018-10-24 06:04:50 UTC
dnf update gcc annobin 
it works for me !