Bug 1574478 - gcc is unable to create any executables due to mis-matched annobin build
Summary: gcc is unable to create any executables due to mis-matched annobin build
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: annobin
Version: rawhide
Hardware: Unspecified
OS: Unspecified
unspecified
urgent
Target Milestone: ---
Assignee: Nick Clifton
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2018-05-03 11:58 UTC by Daniel Berrangé
Modified: 2018-10-24 06:06 UTC (History)
6 users (show)

Fixed In Version: annobin-5.6-3.fc29 annobin-5.7-2.fc28
Clone Of:
Environment:
Last Closed: 2018-05-12 18:21:08 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)

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 !


Note You need to log in before you can comment on or make changes to this bug.