Bug 733089 - Enhance prelink to build and work on arm
Summary: Enhance prelink to build and work on arm
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: prelink
Version: rawhide
Hardware: arm7
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Jakub Jelinek
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2011-08-24 17:52 UTC by William Cohen
Modified: 2011-08-26 16:23 UTC (History)
1 user (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2011-08-26 16:23:50 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)
Use '%' instead of '@" to eliminate errors on arm (1.70 KB, patch)
2011-08-24 17:52 UTC, William Cohen
no flags Details | Diff

Description William Cohen 2011-08-24 17:52:17 UTC
Created attachment 519680 [details]
Use '%' instead of '@" to eliminate errors on arm

Description of problem:

The prelink rpm does not build on the arm architecture


Version-Release number of selected component (if applicable):

prelink-0.4.5-3

How reproducible:

Always


Steps to Reproduce:
1. Get the prelink-0.4.5-3.fc16.src.rpm from http://koji.fedoraproject.org/koji/buildinfo?buildID=249869
2. Add %{arm} to "ExclusiveArch:" in prelink.spec
3. generate new srpm
4. Attempt to build on koji for arm:

 arm-koji build dist-f14 --arch-override=armv5tel --scratch prelink-0.4.5-3.fc14.src.rpm 
  
Actual results:

The tests in the build fail and a result the build fails.

Expected results:

Able to build prelink for arm and use the resulting prelink rpm

Additional info:

Found that '@' is comment on arm gas assembler. Should use '%' instead. As mentioned in:

http://www.cygwin.com/ml/binutils/2004-12/msg00240.html

Fixing those in the testsuite will reduce the number of failure in the testing:

FAIL: cxx1.sh
FAIL: cxx2.sh
FAIL: quick2.sh

Comment 1 William Cohen 2011-08-24 20:51:48 UTC
For cxx1.sh and cxx2.sh show that 'Removing C++ conflict' are not being found in the cxx[12].log files.

For quick2.sh quick2.tree/etc/prelink.cache doesn't have information about quick2.tree/usr/bin/bin12 and that is causing the test to fail.

Comment 2 Jakub Jelinek 2011-08-25 11:29:42 UTC
Your #c0 patch is now in svn, thanks.
As for the rest, I'd have to have access to some arm box with f16 mock chroot to debug it...

Comment 3 William Cohen 2011-08-25 21:33:14 UTC
Tried the additional patches that have been checked into the prelink svn and able to build test prelink rpm for arm:

http://arm.koji.fedoraproject.org/koji/taskinfo?taskID=157675

Comment 4 William Cohen 2011-08-26 04:15:07 UTC
Tried running prelink on fc13 machine with glibc-2.12-4.armv5tel installed.

# /usr/sbin/prelink -avmR

Produced a lot of message of the form:

/usr/sbin/prelink: /bin/true: Using /lib/ld-linux.so.3, not /lib/ld-linux.so.2 a
s dynamic linker
/usr/sbin/prelink: /bin/nice: Using /lib/ld-linux.so.3, not /lib/ld-linux.so.2 a
s dynamic linker
/usr/sbin/prelink: /bin/more: Using /lib/ld-linux.so.3, not /lib/ld-linux.so.2 a
s dynamic linker
/usr/sbin/prelink: /bin/taskset: Using /lib/ld-linux.so.3, not /lib/ld-linux.so.
2 as dynamic linker

$ ls -al /lib/ld*
-rwxr-xr-x. 1 root root 140972 Nov  8  2010 /lib/ld-2.12.so
lrwxrwxrwx. 1 root root     10 Aug  2 07:54 /lib/ld-linux.so.3 -> ld-2.12.so

These files are from the official glibc
$ rpm -qf /lib/ld*
glibc-2.12-4.armv5tel
glibc-2.12-4.armv5tel


Shouldn't that be /lib/ld-linux.so.2?

Comment 5 Jakub Jelinek 2011-08-26 09:49:36 UTC
Please try http://arm.koji.fedoraproject.org/koji/taskinfo?taskID=157878

Comment 6 William Cohen 2011-08-26 15:54:49 UTC
The scratch build arm rpm seems to work. Found a thread with earlier attempt to prelink on arm:

http://lists.fedoraproject.org/pipermail/arm/2010-March/000509.html

Things in the current that cannot prelink in the current one looks pretty similar. Below is the list from the prelink done today:


$ grep "Cannot" /tmp/prelink.log 
/usr/sbin/prelink: /usr/bin/ospam: Cannot prelink against non-PIC shared library /usr/lib/libosp.so.5
/usr/sbin/prelink: /usr/bin/rarian-sk-preinstall: Cannot prelink against non-PIC shared library /usr/lib/librarian.so.0
/usr/sbin/prelink: /usr/bin/rarian-sk-get-cl: Cannot prelink against non-PIC shared library /usr/lib/librarian.so.0
/usr/sbin/prelink: /usr/bin/ospcat: Cannot prelink against non-PIC shared library /usr/lib/libosp.so.5
/usr/sbin/prelink: /usr/bin/osgmlnorm: Cannot prelink against non-PIC shared library /usr/lib/libosp.so.5
/usr/sbin/prelink: /usr/bin/onsgmls: Cannot prelink against non-PIC shared library /usr/lib/libosp.so.5
/usr/sbin/prelink: /usr/bin/rarian-sk-migrate: Cannot prelink against non-PIC shared library /usr/lib/librarian.so.0
/usr/sbin/prelink: /usr/bin/openjade: Cannot prelink against non-PIC shared library /usr/lib/libosp.so.5
/usr/sbin/prelink: /usr/bin/osx: Cannot prelink against non-PIC shared library /usr/lib/libosp.so.5
/usr/sbin/prelink: /usr/bin/ospent: Cannot prelink against non-PIC shared library /usr/lib/libosp.so.5


Also noticed some non-weak symbols:

$ grep "non-weak" /tmp/prelink.log 
/usr/sbin/prelink: Warning: /usr/lib/libgdmsimplegreeter.so.1 has undefined non-weak symbols
/usr/sbin/prelink: Warning: /usr/lib/libpulsecommon-0.9.21.so has undefined non-weak symbols
/usr/sbin/prelink: Warning: /usr/lib/libfftw3_threads.so.3 has undefined non-weak symbols
/usr/sbin/prelink: Warning: /usr/lib/libmathview_backend_ps.so.0 has undefined non-weak symbols
/usr/sbin/prelink: Warning: /lib/libmultipath.so has undefined non-weak symbols
/usr/sbin/prelink: Warning: /usr/lib/libmathview_backend_svg.so.0 has undefined non-weak symbols
/usr/sbin/prelink: Warning: /usr/lib/libpaps.so.0 has undefined non-weak symbols
/usr/sbin/prelink: Warning: /usr/lib/libgle.so.3 has undefined non-weak symbols
/usr/sbin/prelink: Warning: /usr/lib/libABRTdUtils.so.0 has undefined non-weak symbols
/usr/sbin/prelink: Warning: /usr/lib/libfftw3f_threads.so.3 has undefined non-weak symbols
/usr/sbin/prelink: Warning: /usr/lib/libfftw3l_threads.so.3 has undefined non-weak symbols
/usr/sbin/prelink: Warning: /usr/lib/xfce4/modules/libxfce4sensors.so.1 has undefined non-weak symbols

Comment 7 Jakub Jelinek 2011-08-26 16:23:50 UTC
Fixed then.


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