prelink spits out lots of: --- prelink: Could not rename temporary to /opt/intel/composerxe-2013.0.079/bin/ia32/libintelremotemon.so: Invalid cross-device link prelink: Could not rename temporary to /opt/intel/composerxe-2013.0.079/compiler/lib/intel64/libcomposerxe_libxml_2.7.so: Invalid cross-device link prelink: Could not rename temporary to /opt/intel/composerxe-2013.0.079/compiler/lib/intel64/libcomposerxe_boost_system_1.34.so: Invalid cross-device link prelink: Could not rename temporary to /opt/intel/composerxe-2013.0.079/compiler/lib/intel64/libcomposerxe_boost_regex_1.34.so: Invalid cross-device link prelink: Could not rename temporary to /opt/intel/composerxe-2013.0.079/compiler/lib/intel64/libcomposerxe_cpil_2.10.so: Invalid cross-device link prelink: Could not rename temporary to /opt/intel/composerxe-2013.0.079/bin/intel64/libintelremotemon.so: Invalid cross-device link --- I assume that is because /opt is on another partition compared to whereever it tries to create the temporaries. prelink should probably be fixed to create the temporaries on the same partition. Reproducible: Always
It appears that prelink tries to prelink on r/o partitions. When I remount /usr and /opt r/w, the "could not rename temporary — invalid cross-device link" errors are gone. So prelink or the cronjob-script should probably warn in such case, and skip all binaries on r/o partitions?
This issue was also reported for Fedora a while ago. They implemented a fix, that does not mess up completely, but did not address the issue of the target file being read-only. If detecting read-only partitions is too complex, maybe it would be easier to detect whether the target file is read-only, and skip it (in an early phase) in that case.
> read-only files (mounts) trigger lots of warnings: Invalid cross-device link They do not only trigger a warning, but apparently also SIGABRT (quoting an email from cron): /etc/cron.daily/prelink: line 57: 5723 Aborted /usr/sbin/prelink -av $PRELINK_OPTS >> ${log} 2>&1
please retest with prelink-20151030