home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / boot / i386 / rescue / usr / lib / rpm / brp-lib64-linux < prev    next >
Text File  |  2006-11-29  |  1KB  |  43 lines

  1. #!/bin/bash   
  2. # script checks wether package is 64-bit clean
  3. # and also for a linker bug. (linker allows 64bit libs to link 32bit libs)
  4. echo "sf@suse.de: if you find problems with this script, drop me a note"
  5. # If using normal root, avoid changing anything:
  6. if [ -z "$RPM_BUILD_ROOT" -o "$RPM_BUILD_ROOT" = "/" ]; then
  7.        exit 0
  8. fi
  9. files=
  10. tfiles=
  11. LC_ALL=
  12. LANG=
  13. # check for 64-bit libs in */lib
  14. for p in `grep -v 'lib64' /etc/ld.so.conf`
  15. do
  16.   if test  -d $RPM_BUILD_ROOT$p ; then
  17.     for f in `find $RPM_BUILD_ROOT$p \
  18.       -maxdepth 1 -type f -name \*.so\* -o -name \*.a -follow 2>/dev/null`
  19.     do
  20.     [ $HOSTTYPE = s390x ] && case $f in */lib/ld64.so.1) continue; esac
  21.        objdump -f $f 2>/dev/null | grep 'format elf64' \
  22.                      && { echo "$f: should be in */lib64"; exit 1; }
  23.  
  24.     done
  25.   fi
  26. done
  27.  
  28. # check for 64 bit libs that have an rpath to a 32 bit Library
  29.  
  30. for p in `grep 'lib64' /etc/ld.so.conf`
  31. do
  32.   if test -d $RPM_BUILD_ROOT$p ; then
  33.     for f in `find $RPM_BUILD_ROOT$p \
  34.     -maxdepth 1 -type f -name \*.so\* -o -name \*.a -follow 2>/dev/null`
  35.     do
  36.      # check for rpath to 32bit libs
  37.        objdump -x $f  2>/dev/null | grep -v "lib64" | grep -i 'rpath.*lib$' \
  38.                      && { echo "$f: rpath to 32bit lib"; exit 1; }
  39.     done
  40.   fi
  41. done
  42. exit 0
  43.