F17: gcc not usable without glibc-devel.x86_64 -- %{?_isa}, again?

Jim Meyering jim at meyering.net
Thu Apr 12 12:02:31 UTC 2012


I built another x86_64 rawhide VM yesterday and was surprised
to find that its gcc was unusable:

    $ printf 'int main(){return 0;}' > k.c; gcc k.c
    /usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-redhat-linux/4.7.0/../../../libc.so when searching for -lc
    /usr/bin/ld: skipping incompatible /lib/libc.so when searching for -lc
    /usr/bin/ld: skipping incompatible /usr/lib/libc.so when searching for -lc
    /usr/bin/ld: cannot find -lc
    collect2: error: ld returned 1 exit status
    [Exit 1]

How strange.
strace (after enabling that) showed that since there was no
/lib64/libc.{so,a}, it was finding/rejecting the i686 libraries.

That led me to the realization that gcc is usable only
after you've also installed the glibc-devel package, since
that's the one that provides /lib64/libc.so.

Yet there is a dependency problem, because I'd managed to install
gcc without its dependent, glibc-devel.  Oddly, this shows no deps:

    $ repoquery whatrequires glibc-devel
    glibc-devel-0:2.15-32.fc17.i686
    glibc-devel-0:2.15-32.fc17.x86_64

(hmm... but using s/whatrequires/--whatrequires/ does show the gcc connection)

The same thing happens on F17.
To demonstrate, I manually removed the x86_64 version of glibc-devel,
(remember, nothing depends on it, so this should be safe)

    yum remove glibc-devel.x86_64

And then reran the above test:

    printf 'int main(){return 0;}' > k.c; gcc k.c

It failed just as on rawhide, which means
gcc on F17/x86_64 is useless, too.

Is this simply a missing dependency?
No.  gcc.spec does list the dependency:

    $ grep 'Req.*bc-d' gcc.spec
    BuildRequires: glibc-devel >= 2.4.90-13
    Requires: glibc-devel >= 2.2.90-12

Then how did I manage to install gcc without also installing glibc-devel?

For the record, I installed F17-beta-RC3 (or maybe it was 4),
installed a bunch of essential-to-me packages, and then upgraded
to rawhide.

I guess this comes down to %{?_isa}, again?

-Requires: glibc-devel >= 2.2.90-12
+Requires: glibc-devel%{?_isa} >= 2.2.90-12

It would sure save trouble to fix this once and for all.


More information about the devel mailing list