1 |
commit: 97f8b65255f856e69caceb7bd40ccaa3a5e7c98b |
2 |
Author: Mike Frysinger <vapier <AT> gentoo <DOT> org> |
3 |
AuthorDate: Wed Feb 29 23:03:47 2012 +0000 |
4 |
Commit: Mike Frysinger <vapier <AT> gentoo <DOT> org> |
5 |
CommitDate: Thu Mar 1 05:28:07 2012 +0000 |
6 |
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/crossdev.git;a=commit;h=97f8b652 |
7 |
|
8 |
crossdev: ignore collisions in build-id paths |
9 |
|
10 |
Signed-off-by: Mike Frysinger <vapier <AT> gentoo.org> |
11 |
|
12 |
--- |
13 |
crossdev | 10 ++++++++++ |
14 |
1 files changed, 10 insertions(+), 0 deletions(-) |
15 |
|
16 |
diff --git a/crossdev b/crossdev |
17 |
index 8979ca3..cc505bb 100755 |
18 |
--- a/crossdev |
19 |
+++ b/crossdev |
20 |
@@ -794,9 +794,19 @@ set_env() { |
21 |
local pkg=$1 env=$2 output |
22 |
shift ; shift |
23 |
|
24 |
+ # We have to ignore collisions in the build-id tree because it's |
25 |
+ # easy to create a cross-program that is the same. For example, |
26 |
+ # if we try to build gdb for both arm-eabi and cross-arm-linux-gnueabi, |
27 |
+ # then these gdb's might have the same build-id and try to install |
28 |
+ # into the same paths. Ignoring the collisions isn't great since |
29 |
+ # updating one can drop the symlink for another, but for now, it's |
30 |
+ # the best we've got without implementing reference counting on |
31 |
+ # installed paths in the PM. |
32 |
+ |
33 |
output="env/cross-${CTARGET}/${pkg}.conf" |
34 |
cat <<-EOF > "${output}" |
35 |
SYMLINK_LIB=no |
36 |
+ COLLISION_IGNORE="\${COLLISION_IGNORE} /usr/lib/debug/.build-id" |
37 |
$(printf '%b' "${env}") |
38 |
EOF |