This commit should probably be merged into the trunk.
Fix a bug in preserve libs backtracing.
Issue: copy2 raised an error because the destination path didn't exist
Cause: os.path.join was used with absolute paths on the 2nd arguments,
which results in not a join, but the 2nd argument only.
Result: the os.path.exists/makedirs was only called based on the
existing installation (x), causing no directory ever to be made in the
image dir. Because x is absolute the join always returned x, hence when
preserve libs was run for a lib in a dir not yet existing in the image
it bailed out.
I caught this issue on FreeBSD when upgrading binutils from
18.whatever.2 to 18.whatever.3, when preserve libs tried to preserve
libopcodes.18.whatever.2.so which is in a directory 18.whatever.2,
whereas only 18.whatever.3 existed.
svn path=/main/branches/prefix/; revision=9228