Hi everyone, I have the following interim fix for prelink, until we get upstream prelink to recognize that there might be two different possible linker paths on the same architecture. It's trivially correct, and described within the patch below. Tested. Jon.
commit f03d58359deab8fa90ec914f13da25d4965e7661 Author: Jon Masters <jcm@xxxxxxxxxxxxxx> Date: Thu Nov 29 00:06:57 2012 -0500 arm: Specifically switch the dynamic linker on hard float ABI ARM systems The prelink utility currently has the notion that a given architecture will have only one possible dynamic_linker path. Unfortunately, on ARM, we have two ABIs that might be in use, depending upon hard or soft float ABI use. Fortunately, prelink is aware of the linker possibilities so will not fall over like on SPARC, since it will match on either of the linker paths when matching the linker, but when examining ELF headers, it throws a (harmless-ish) warning on ARMv7 that this patch removes. Signed-off-by: Jon Masters <jcm@xxxxxxxxxxxxxx> diff --git a/prelink-armhf-dynamic-linker.patch b/prelink-armhf-dynamic-linker.patch new file mode 100644 index 0000000..8961010 --- /dev/null +++ b/prelink-armhf-dynamic-linker.patch @@ -0,0 +1,12 @@ +diff -urNp prelink_orig/src/arch-arm.c prelink/src/arch-arm.c +--- prelink_orig/src/arch-arm.c 2011-08-26 03:20:49.000000000 -0400 ++++ prelink/src/arch-arm.c 2012-11-28 23:59:28.030164736 -0500 +@@ -832,7 +832,7 @@ PL_ARCH = { + .R_COPY = R_ARM_COPY, + .R_RELATIVE = R_ARM_RELATIVE, + .rtype_class_valid = RTYPE_CLASS_VALID, +- .dynamic_linker = "/lib/ld-linux.so.3", ++ .dynamic_linker = "/lib/ld-linux-armhf.so.3", + .adjust_dyn = arm_adjust_dyn, + .adjust_rel = arm_adjust_rel, + .adjust_rela = arm_adjust_rela, diff --git a/prelink.spec b/prelink.spec index 49264e8..48df41d 100644 --- a/prelink.spec +++ b/prelink.spec @@ -1,7 +1,7 @@ Summary: An ELF prelinking utility Name: prelink Version: 0.4.6 -Release: 7%{?dist} +Release: 7%{?dist}.jcm1 %global svnver 200 License: GPLv2+ Group: System Environment/Base @@ -12,6 +12,7 @@ Source: http://people.redhat.com/jakub/prelink/prelink-%{date}.tar.bz2 Source2: prelink.conf Source3: prelink.cron Source4: prelink.sysconfig +Patch0: prelink-armhf-dynamic-linker.patch BuildRequires: elfutils-libelf-devel-static BuildRequires: libselinux-static, libselinux-utils @@ -29,6 +30,12 @@ and thus programs come up faster. %prep %setup -q -n prelink +# We have two possible dynamic linkers on ARM (soft/hard float ABI). For now, +# specifically patch the name of the linker on hard float systems. FIXME. +%ifarch armv7hl +%patch0 -p1 -b .armhfp-dynamic-linker +%endif + %build sed -i -e '/^prelink_LDADD/s/$/ -lpthread/' src/Makefile.{am,in} %configure --disable-shared @@ -99,6 +106,9 @@ touch /var/lib/prelink/force %attr(0644,root,root) %verify(not md5 size mtime) %ghost %config(missingok,noreplace) /var/log/prelink/prelink.log %changelog +* Thu Nov 29 2012 Jon Masters <jcm@xxxxxxxxxxxxxx> - 0.4.6-7.jcm1 +- Specifically switch the dynamic linker on ARM hard float (longterm fix req.) + * Sat Jul 21 2012 Fedora Release Engineering <rel-eng@xxxxxxxxxxxxxxxxxxxxxxx> - 0.4.6-7 - Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
_______________________________________________ arm mailing list arm@xxxxxxxxxxxxxxxxxxxxxxx https://admin.fedoraproject.org/mailman/listinfo/arm