[patch 2/7] Change how we do nosegneg
Mark McLoughlin
markmc at redhat.com
Thu Jul 24 08:26:12 UTC 2008
On Thu, 2008-07-24 at 09:12 +0100, Mark McLoughlin wrote:
> On Wed, 2008-07-23 at 17:41 -0700, Roland McGrath wrote:
> > For simplicity and consistency in the .spec file, we'll install a file for
> > all variants even when it's an empty placeholder. For the magic, the diff
> > below probably covers it (wholly untested). Then it's up to BuildKernel
> > just to add/remove ldconfig-kernelcap.conf as part of the build (perhaps
> > eventually done by the upstream makefiles).
So, for Xen, we'll want something like this until it's done upstream:
> Index: devel/kernel.spec
> ===================================================================
> --- devel.orig/kernel.spec 2008-07-24 08:49:22.000000000 +0100
> +++ devel.orig/kernel.spec 2008-07-24 08:49:22.000000000 +0100
> @@ -1312,6 +1312,13 @@ BuildKernel() {
> make -s ARCH=$Arch INSTALL_MOD_PATH=$RPM_BUILD_ROOT modules_install KERNELRELEASE=$KernelVer mod-fw=
> %ifarch %{vdso_arches}
> make -s ARCH=$Arch INSTALL_MOD_PATH=$RPM_BUILD_ROOT vdso_install KERNELRELEASE=$KernelVer
+ if grep '^CONFIG_XEN=y$' .config >/dev/null; then
+ echo > ldconfig-kernelcap.conf "\
+# This directive teaches ldconfig to search in nosegneg subdirectories
+# and cache the DSOs there with extra bit 0 set in their hwcap match
+# fields. In Xen guest kernels, the vDSO tells the dynamic linker to
+# search in nosegneg subdirectories and to match this extra hwcap bit
+# in the ld.so.cache file.
+hwcap 0 nosegneg"
+ fi
> + if [ ! -s ldconfig-kernelcap.conf ]; then
> + echo > ldconfig-kernelcap.conf "\
> +# Placeholder file, no vDSO hwcap entries used in this kernel."
> + fi
> + %{__install} -D -m 444 ldconfig-kernelcap.conf \
> + $RPM_BUILD_ROOT/etc/ld.so.conf.d/kernel-$KernelVer.conf
> %endif
Cheers,
Mark.
More information about the kernel
mailing list