diff options
author | Marc Kleine-Budde <mkl@pengutronix.de> | 2010-03-19 16:11:40 +0100 |
---|---|---|
committer | Marc Kleine-Budde <mkl@pengutronix.de> | 2010-03-19 16:11:40 +0100 |
commit | f2cfc7abde87062da376e030069e2665a9bba6e7 (patch) | |
tree | 88988ae7abf2ee3024bd61fbb5b11ea840697e13 /rules/libjpeg.make | |
parent | 0e1c59dfe2fdd1cfb7d00848ceb753cfc1c9929f (diff) | |
download | ptxdist-f2cfc7abde87062da376e030069e2665a9bba6e7.tar.gz ptxdist-f2cfc7abde87062da376e030069e2665a9bba6e7.tar.xz |
[ptxd_make_xpkg_pkg] fix 32 bit strip on 64 bit host issue
The strip command we're calling may be a 32 bit executable which runs on
a 64 bit distribution. It used inside a fakeroot environment.
Fakeroot works with the LD_PRELOAD trick, but the fakeroot shared lib is
usually only available in 64 bits. Because the 32 bit strip cannot use
the 64 bit fakeroot.so it runs ouside of the fakeroot environment.
Fakeroot uses a device:inode key to track the files fakerooted.
The strip utility creates a temporary file (which gets a new inode) and
writes the stripped binary into it. Then if calls rename() to atomically
switch the temporary file to the original one. The inode of the original
file gets freed. Fakeroot doesn't notice that.
If a link for a library is created later on, in the same fakeroot
environemnt, it may get the inode of the deleted file. Fakeroot doesn't
like that.
So we create a hard link of the the original file, so that the inode
stays the same and fakeroot is happy :)
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
Diffstat (limited to 'rules/libjpeg.make')
0 files changed, 0 insertions, 0 deletions