1 |
There it can be reused by eclasses & ebuilds. |
2 |
--- |
3 |
gx86/eclass/autotools-multilib.eclass | 29 +------------------------- |
4 |
gx86/eclass/multilib-build.eclass | 38 +++++++++++++++++++++++++++++++++++ |
5 |
2 files changed, 39 insertions(+), 28 deletions(-) |
6 |
|
7 |
diff --git a/gx86/eclass/autotools-multilib.eclass b/gx86/eclass/autotools-multilib.eclass |
8 |
index 97abfe6..ff7e8b8 100644 |
9 |
--- a/gx86/eclass/autotools-multilib.eclass |
10 |
+++ b/gx86/eclass/autotools-multilib.eclass |
11 |
@@ -50,34 +50,7 @@ autotools-multilib_src_install() { |
12 |
autotools-utils_src_install |
13 |
|
14 |
# Make sure all headers are the same for each ABI. |
15 |
- autotools-multilib_cksum() { |
16 |
- find "${ED}"usr/include -type f \ |
17 |
- -exec cksum {} + | sort -k2 |
18 |
- } |
19 |
- |
20 |
- local cksum=$(autotools-multilib_cksum) |
21 |
- local cksum_file=${T}/.autotools-multilib_cksum |
22 |
- |
23 |
- if [[ -f ${cksum_file} ]]; then |
24 |
- local cksum_prev=$(< "${cksum_file}") |
25 |
- |
26 |
- if [[ ${cksum} != ${cksum_prev} ]]; then |
27 |
- echo "${cksum}" > "${cksum_file}.new" |
28 |
- |
29 |
- eerror "Header files have changed between ABIs." |
30 |
- |
31 |
- if type -p diff &>/dev/null; then |
32 |
- eerror "$(diff -du "${cksum_file}" "${cksum_file}.new")" |
33 |
- else |
34 |
- eerror "Old checksums in: ${cksum_file}" |
35 |
- eerror "New checksums in: ${cksum_file}.new" |
36 |
- fi |
37 |
- |
38 |
- die "Header checksum mismatch, aborting." |
39 |
- fi |
40 |
- else |
41 |
- echo "${cksum}" > "${cksum_file}" |
42 |
- fi |
43 |
+ multilib_check_headers |
44 |
} |
45 |
|
46 |
multilib_foreach_abi autotools-multilib_secure_install |
47 |
diff --git a/gx86/eclass/multilib-build.eclass b/gx86/eclass/multilib-build.eclass |
48 |
index 4298a54..2b6c8b5 100644 |
49 |
--- a/gx86/eclass/multilib-build.eclass |
50 |
+++ b/gx86/eclass/multilib-build.eclass |
51 |
@@ -137,5 +137,43 @@ multilib_parallel_foreach_abi() { |
52 |
multijob_finish |
53 |
} |
54 |
|
55 |
+# @FUNCTION: multilib_check_headers |
56 |
+# @DESCRIPTION: |
57 |
+# Check whether the header files are consistent between ABIs. |
58 |
+# |
59 |
+# This function needs to be called after each ABI's installation phase. |
60 |
+# It obtains the header file checksums and compares them with previous |
61 |
+# runs (if any). Dies if header files differ. |
62 |
+multilib_check_headers() { |
63 |
+ _multilib_header_cksum() { |
64 |
+ find "${ED}"usr/include -type f \ |
65 |
+ -exec cksum {} + | sort -k2 |
66 |
+ } |
67 |
+ |
68 |
+ local cksum=$(_multilib_header_cksum) |
69 |
+ local cksum_file=${T}/.multilib_header_cksum |
70 |
+ |
71 |
+ if [[ -f ${cksum_file} ]]; then |
72 |
+ local cksum_prev=$(< "${cksum_file}") |
73 |
+ |
74 |
+ if [[ ${cksum} != ${cksum_prev} ]]; then |
75 |
+ echo "${cksum}" > "${cksum_file}.new" |
76 |
+ |
77 |
+ eerror "Header files have changed between ABIs." |
78 |
+ |
79 |
+ if type -p diff &>/dev/null; then |
80 |
+ eerror "$(diff -du "${cksum_file}" "${cksum_file}.new")" |
81 |
+ else |
82 |
+ eerror "Old checksums in: ${cksum_file}" |
83 |
+ eerror "New checksums in: ${cksum_file}.new" |
84 |
+ fi |
85 |
+ |
86 |
+ die "Header checksum mismatch, aborting." |
87 |
+ fi |
88 |
+ else |
89 |
+ echo "${cksum}" > "${cksum_file}" |
90 |
+ fi |
91 |
+} |
92 |
+ |
93 |
_MULTILIB_BUILD=1 |
94 |
fi |
95 |
-- |
96 |
1.8.1.2 |