SCIENTIFIC-LINUX-USERS Archives

July 2012

SCIENTIFIC-LINUX-USERS@LISTSERV.FNAL.GOV

Options: Use Monospaced Font
Show Text Part by Default
Show All Mail Headers

Message: [<< First] [< Prev] [Next >] [Last >>]
Topic: [<< First] [< Prev] [Next >] [Last >>]
Author: [<< First] [< Prev] [Next >] [Last >>]

Print Reply
Subject:
From:
Nico Kadel-Garcia <[log in to unmask]>
Reply To:
Nico Kadel-Garcia <[log in to unmask]>
Date:
Sat, 7 Jul 2012 14:27:59 -0400
Content-Type:
text/plain
Parts/Attachments:
text/plain (44 lines)
This is a bug that has been repeatedly reported, and patches submitted
by others, for our favorite upstream vendor, but they've closed all
the bug reports and never actually applied the fix. I noticed it when
trying to check out new enterprise linux 6.3 packages on my favorite
Scientific Linux box and "mock" build environment. (Check out Bug
#641411 on our favorite upstream vendor's bugilla for more history.)

Basically, the grub build environment on x86_64 is doing a static,
32-bit build of the binaries, for a whole set of reasons. That's fine,
but there are symlinks in the 32-bit, static, cross-compilation
toolchain that are not provided on x86_64 environments unless you
install "glibc-static.i686", and grub has no dependency on that, so
it's only there by happnstance when you're building grub.

My patch is below, and will hopefully be useful to the SL 6.3 release.

To actuall install it, I'd also suggest incrementing whatever your
"Release:" field is by adding ".1" to it, just to avoid version
confusion. grub-0.97-77.el6 would then become grub-0.97-77.1.el6.

Also note that, unlike most patch authors, I *only apply the new
dependency if you need it*.  That prevents adventures if you're
building on an ARM or other architecture that doesn't have the weird
split between "/lib" and "/lib64" for both 32-bit and 64-bit
environments on the same host..

And note that the structure of this patch applies to other components
with the "c compiler cannot create executables" error.

$ diff -u grub*
--- grub-broken-glibc-static.spec       2012-02-29 11:07:21.000000000 -0500
+++ grub.spec   2012-07-07 13:42:26.215803712 -0400
@@ -11,6 +11,10 @@
 BuildRequires: autoconf /usr/lib/crt1.o automake
 BuildRequires: gnu-efi >= 3.0e-9
 BuildRequires: glibc-static
+# Added for 32 bit libc_s.so 32 bit dependency on x86_64
+%if %{_arch} == x86_64
+BuildRequires: glibc-static.i686
+%endif
 Requires(post): /sbin/install-info
 Requires(preun): /sbin/install-info
 Requires: mktemp

ATOM RSS1 RSS2