diff options
author | Khem Raj <raj.khem@gmail.com> | 2012-04-30 21:59:39 -0700 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2012-05-24 08:51:35 +0100 |
commit | 0fdd04febe83d77ecf431443f4736dbe1220ad8d (patch) | |
tree | 96757582c5d88b648a5620bba193a4cf2288fa80 /meta/recipes-core | |
parent | e108db7acc6382a51fa80f9346beacfa6e844b46 (diff) | |
download | poky-0fdd04febe83d77ecf431443f4736dbe1220ad8d.tar.gz |
eglibc: Add ARM hf dynamic linker support
The work is done in glibc upstream we backport
the relevant patches
(From OE-Core rev: 8df03a0b8bd92cf7b73b816dacf3e362cfce557a)
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-core')
3 files changed, 369 insertions, 1 deletions
diff --git a/meta/recipes-core/eglibc/eglibc-2.15/add_HAVE_ARM_PCS_VFP.patch b/meta/recipes-core/eglibc/eglibc-2.15/add_HAVE_ARM_PCS_VFP.patch new file mode 100644 index 0000000000..0f95c2fb96 --- /dev/null +++ b/meta/recipes-core/eglibc/eglibc-2.15/add_HAVE_ARM_PCS_VFP.patch | |||
@@ -0,0 +1,28 @@ | |||
1 | From: Carlos O'Donell <carlos_odonell@mentor.com> | ||
2 | Date: Mon, 7 May 2012 20:04:41 +0000 (-0400) | ||
3 | Subject: ARM: Define HAVE_ARM_PCS_VFP in config.h. | ||
4 | X-Git-Url: http://sourceware.org/git/?p=glibc.git;a=commitdiff_plain;h=6a43ec980c5a0500149ef37d4854eac0e270da6f;hp=05c2c9618f583ea4acd69b3fe5ae2a2922dd2ddc | ||
5 | |||
6 | ARM: Define HAVE_ARM_PCS_VFP in config.h. | ||
7 | |||
8 | If the compiler and flags would select the hard-float ABI | ||
9 | then the ARM configure fragment will set HAVE_ARM_PCS_VFP. | ||
10 | This is later used by the ARM shlib-versions to select | ||
11 | the appropriately named dynamic linker. | ||
12 | --- | ||
13 | |||
14 | Upstream-Status: Backport | ||
15 | -Khem | ||
16 | |||
17 | Index: libc/config.h.in | ||
18 | =================================================================== | ||
19 | --- libc.orig/config.h.in 2012-01-04 22:06:28.000000000 -0800 | ||
20 | +++ libc/config.h.in 2012-05-08 11:25:56.581079069 -0700 | ||
21 | @@ -233,4 +233,7 @@ | ||
22 | |||
23 | #define HAVE_REGEX 1 | ||
24 | |||
25 | +/* The ARM hard-float ABI is being used. */ | ||
26 | +#undef HAVE_ARM_PCS_VFP | ||
27 | + | ||
28 | #endif | ||
diff --git a/meta/recipes-core/eglibc/eglibc-2.15/ldso_arm_hf_support.patch b/meta/recipes-core/eglibc/eglibc-2.15/ldso_arm_hf_support.patch new file mode 100644 index 0000000000..7a53da6ccb --- /dev/null +++ b/meta/recipes-core/eglibc/eglibc-2.15/ldso_arm_hf_support.patch | |||
@@ -0,0 +1,338 @@ | |||
1 | From d3b36017d43af570ca7f79e711749dd4ade76979 Mon Sep 17 00:00:00 2001 | ||
2 | From: Carlos O'Donell <carlos_odonell@mentor.com> | ||
3 | Date: Mon, 7 May 2012 22:14:44 -0400 | ||
4 | Subject: [PATCH] ARM: Use /lib/ld-linux-armhf.so.3 for the hard-float ABI. | ||
5 | |||
6 | The hard-float ABI will now use /lib/ld-linux-armhf.so.3. | ||
7 | We detect the use of the hard-float ABI and select the | ||
8 | appropriate dynamic linker name. You must have a new or | ||
9 | patched compiler which also uses the new dynamic loader | ||
10 | name when the hard-float ABI is selected. | ||
11 | --- | ||
12 | ChangeLog.arm | 8 ++ | ||
13 | sysdeps/arm/configure | 184 ++++++++++++++++++++++++++++++++++++++++++++ | ||
14 | sysdeps/arm/configure.in | 17 ++++ | ||
15 | sysdeps/arm/shlib-versions | 8 ++- | ||
16 | 4 files changed, 216 insertions(+), 1 deletions(-) | ||
17 | mode change 100644 => 100755 sysdeps/arm/configure | ||
18 | |||
19 | Upstream-Status: Backport | ||
20 | -Khem | ||
21 | |||
22 | Index: libc/ports/sysdeps/arm/configure.in | ||
23 | =================================================================== | ||
24 | --- libc.orig/ports/sysdeps/arm/configure.in 2012-05-08 11:42:59.161128560 -0700 | ||
25 | +++ libc/ports/sysdeps/arm/configure.in 2012-05-08 11:43:29.373130066 -0700 | ||
26 | @@ -18,3 +18,20 @@ | ||
27 | if test $libc_cv_asm_cfi_directive_sections != yes; then | ||
28 | AC_MSG_ERROR([need .cfi_sections in this configuration]) | ||
29 | fi | ||
30 | + | ||
31 | +# We check to see if the compiler and flags are | ||
32 | +# selecting the hard-float ABI and if they are then | ||
33 | +# we set libc_cv_arm_pcs_vfp to yes which causes | ||
34 | +# HAVE_ARM_PCS_VFP to be defined in config.h and | ||
35 | +# in include/libc-symbols.h and thus available to | ||
36 | +# shlib-versions to select the appropriate name for | ||
37 | +# the dynamic linker via %ifdef. | ||
38 | +AC_CACHE_CHECK([whether the compiler is using the ARM hard-float ABI], | ||
39 | + [libc_cv_arm_pcs_vfp], | ||
40 | + [AC_EGREP_CPP(yes,[#ifdef __ARM_PCS_VFP | ||
41 | + yes | ||
42 | + #endif | ||
43 | + ], libc_cv_arm_pcs_vfp=yes, libc_cv_arm_pcs_vfp=no)]) | ||
44 | +if test $libc_cv_arm_pcs_vfp = yes; then | ||
45 | + AC_DEFINE(HAVE_ARM_PCS_VFP) | ||
46 | +fi | ||
47 | Index: libc/ports/sysdeps/arm/shlib-versions | ||
48 | =================================================================== | ||
49 | --- libc.orig/ports/sysdeps/arm/shlib-versions 2012-05-08 11:42:59.145128546 -0700 | ||
50 | +++ libc/ports/sysdeps/arm/shlib-versions 2012-05-08 11:43:29.409130022 -0700 | ||
51 | @@ -1,4 +1,10 @@ | ||
52 | arm.*-.*-linux-gnueabi.* DEFAULT GLIBC_2.4 | ||
53 | |||
54 | -arm.*-.*-linux-gnueabi.* ld=ld-linux.so.3 | ||
55 | +%ifdef HAVE_ARM_PCS_VFP | ||
56 | +# The EABI-derived hard-float ABI uses a new dynamic linker. | ||
57 | +arm.*-.*-linux-gnueabi.* ld=ld-linux-armhf.so.3 | ||
58 | +%else | ||
59 | +# The EABI-derived soft-float ABI continues to use ld-linux.so.3. | ||
60 | +arm.*-.*-linux-gnueabi.* ld=ld-linux.so.3 | ||
61 | +%endif | ||
62 | arm.*-.*-linux.* ld=ld-linux.so.2 | ||
63 | Index: libc/ports/sysdeps/arm/configure | ||
64 | =================================================================== | ||
65 | --- libc.orig/ports/sysdeps/arm/configure 2012-05-08 11:43:46.437130836 -0700 | ||
66 | +++ libc/ports/sysdeps/arm/configure 2012-05-08 11:49:10.393145653 -0700 | ||
67 | @@ -1,3 +1,100 @@ | ||
68 | +# as_fn_set_status STATUS | ||
69 | +# ----------------------- | ||
70 | +# Set $? to STATUS, without forking. | ||
71 | +as_fn_set_status () | ||
72 | +{ | ||
73 | + return $1 | ||
74 | +} # as_fn_set_status | ||
75 | + | ||
76 | +# as_fn_exit STATUS | ||
77 | +# ----------------- | ||
78 | +# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. | ||
79 | +as_fn_exit () | ||
80 | +{ | ||
81 | + set +e | ||
82 | + as_fn_set_status $1 | ||
83 | + exit $1 | ||
84 | +} # as_fn_exit | ||
85 | +# as_fn_arith ARG... | ||
86 | +# ------------------ | ||
87 | +# Perform arithmetic evaluation on the ARGs, and store the result in the | ||
88 | +# global $as_val. Take advantage of shells that can avoid forks. The arguments | ||
89 | +# must be portable across $(()) and expr. | ||
90 | +if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : | ||
91 | + eval 'as_fn_arith () | ||
92 | + { | ||
93 | + as_val=$(( $* )) | ||
94 | + }' | ||
95 | +else | ||
96 | + as_fn_arith () | ||
97 | + { | ||
98 | + as_val=`expr "$@" || test $? -eq 1` | ||
99 | + } | ||
100 | +fi # as_fn_arith | ||
101 | + | ||
102 | +if expr a : '\(a\)' >/dev/null 2>&1 && | ||
103 | + test "X`expr 00001 : '.*\(...\)'`" = X001; then | ||
104 | + as_expr=expr | ||
105 | +else | ||
106 | + as_expr=false | ||
107 | +fi | ||
108 | + | ||
109 | +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then | ||
110 | + as_basename=basename | ||
111 | +else | ||
112 | + as_basename=false | ||
113 | +fi | ||
114 | + | ||
115 | +as_me=`$as_basename -- "$0" || | ||
116 | +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ | ||
117 | + X"$0" : 'X\(//\)$' \| \ | ||
118 | + X"$0" : 'X\(/\)' \| . 2>/dev/null || | ||
119 | +$as_echo X/"$0" | | ||
120 | + sed '/^.*\/\([^/][^/]*\)\/*$/{ | ||
121 | + s//\1/ | ||
122 | + q | ||
123 | + } | ||
124 | + /^X\/\(\/\/\)$/{ | ||
125 | + s//\1/ | ||
126 | + q | ||
127 | + } | ||
128 | + /^X\/\(\/\).*/{ | ||
129 | + s//\1/ | ||
130 | + q | ||
131 | + } | ||
132 | + s/.*/./; q'` | ||
133 | + | ||
134 | + | ||
135 | + as_lineno_1=$LINENO as_lineno_1a=$LINENO | ||
136 | + as_lineno_2=$LINENO as_lineno_2a=$LINENO | ||
137 | + eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && | ||
138 | + test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { | ||
139 | + # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) | ||
140 | + sed -n ' | ||
141 | + p | ||
142 | + /[$]LINENO/= | ||
143 | + ' <$as_myself | | ||
144 | + sed ' | ||
145 | + s/[$]LINENO.*/&-/ | ||
146 | + t lineno | ||
147 | + b | ||
148 | + :lineno | ||
149 | + N | ||
150 | + :loop | ||
151 | + s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ | ||
152 | + t loop | ||
153 | + s/-\n.*// | ||
154 | + ' >$as_me.lineno && | ||
155 | + chmod +x "$as_me.lineno" || | ||
156 | + { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } | ||
157 | + | ||
158 | + # Don't try to exec as it changes $[0], causing all sort of problems | ||
159 | + # (the dirname of $[0] is not the place where we might find the | ||
160 | + # original and so on. Autoconf is especially sensitive to this). | ||
161 | + . "./$as_me.lineno" | ||
162 | + # Exit status is that of the last command. | ||
163 | + exit | ||
164 | +} | ||
165 | # This file is generated from configure.in by Autoconf. DO NOT EDIT! | ||
166 | # Local configure fragment for sysdeps/arm. | ||
167 | |||
168 | @@ -31,3 +128,170 @@ | ||
169 | $as_echo "$as_me: error: need .cfi_sections in this configuration" >&2;} | ||
170 | { (exit 1); exit 1; }; } | ||
171 | fi | ||
172 | + | ||
173 | +# We check to see if the compiler and flags are | ||
174 | +# selecting the hard-float ABI and if they are then | ||
175 | +# we set libc_cv_arm_pcs_vfp to yes which causes | ||
176 | +# HAVE_ARM_PCS_VFP to be defined in config.h and | ||
177 | +# in include/libc-symbols.h and thus available to | ||
178 | +# shlib-versions to select the appropriate name for | ||
179 | +# the dynamic linker via %ifdef. | ||
180 | + | ||
181 | + | ||
182 | +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 | ||
183 | +$as_echo_n "checking for grep that handles long lines and -e... " >&6; } | ||
184 | +if ${ac_cv_path_GREP+:} false; then : | ||
185 | + $as_echo_n "(cached) " >&6 | ||
186 | +else | ||
187 | + if test -z "$GREP"; then | ||
188 | + ac_path_GREP_found=false | ||
189 | + # Loop through the user's path and test for each of PROGNAME-LIST | ||
190 | + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR | ||
191 | +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin | ||
192 | +do | ||
193 | + IFS=$as_save_IFS | ||
194 | + test -z "$as_dir" && as_dir=. | ||
195 | + for ac_prog in grep ggrep; do | ||
196 | + for ac_exec_ext in '' $ac_executable_extensions; do | ||
197 | + ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" | ||
198 | + { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue | ||
199 | +# Check for GNU ac_path_GREP and select it if it is found. | ||
200 | + # Check for GNU $ac_path_GREP | ||
201 | +case `"$ac_path_GREP" --version 2>&1` in | ||
202 | +*GNU*) | ||
203 | + ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; | ||
204 | +*) | ||
205 | + ac_count=0 | ||
206 | + $as_echo_n 0123456789 >"conftest.in" | ||
207 | + while : | ||
208 | + do | ||
209 | + cat "conftest.in" "conftest.in" >"conftest.tmp" | ||
210 | + mv "conftest.tmp" "conftest.in" | ||
211 | + cp "conftest.in" "conftest.nl" | ||
212 | + $as_echo 'GREP' >> "conftest.nl" | ||
213 | + "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break | ||
214 | + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break | ||
215 | + as_fn_arith $ac_count + 1 && ac_count=$as_val | ||
216 | + if test $ac_count -gt ${ac_path_GREP_max-0}; then | ||
217 | + # Best one so far, save it but keep looking for a better one | ||
218 | + ac_cv_path_GREP="$ac_path_GREP" | ||
219 | + ac_path_GREP_max=$ac_count | ||
220 | + fi | ||
221 | + # 10*(2^10) chars as input seems more than enough | ||
222 | + test $ac_count -gt 10 && break | ||
223 | + done | ||
224 | + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; | ||
225 | +esac | ||
226 | + | ||
227 | + $ac_path_GREP_found && break 3 | ||
228 | + done | ||
229 | + done | ||
230 | + done | ||
231 | +IFS=$as_save_IFS | ||
232 | + if test -z "$ac_cv_path_GREP"; then | ||
233 | + as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 | ||
234 | + fi | ||
235 | +else | ||
236 | + ac_cv_path_GREP=$GREP | ||
237 | +fi | ||
238 | + | ||
239 | +fi | ||
240 | +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 | ||
241 | +$as_echo "$ac_cv_path_GREP" >&6; } | ||
242 | + GREP="$ac_cv_path_GREP" | ||
243 | + | ||
244 | + | ||
245 | +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 | ||
246 | +$as_echo_n "checking for egrep... " >&6; } | ||
247 | +if ${ac_cv_path_EGREP+:} false; then : | ||
248 | + $as_echo_n "(cached) " >&6 | ||
249 | +else | ||
250 | + if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 | ||
251 | + then ac_cv_path_EGREP="$GREP -E" | ||
252 | + else | ||
253 | + if test -z "$EGREP"; then | ||
254 | + ac_path_EGREP_found=false | ||
255 | + # Loop through the user's path and test for each of PROGNAME-LIST | ||
256 | + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR | ||
257 | +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin | ||
258 | +do | ||
259 | + IFS=$as_save_IFS | ||
260 | + test -z "$as_dir" && as_dir=. | ||
261 | + for ac_prog in egrep; do | ||
262 | + for ac_exec_ext in '' $ac_executable_extensions; do | ||
263 | + ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" | ||
264 | + { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue | ||
265 | +# Check for GNU ac_path_EGREP and select it if it is found. | ||
266 | + # Check for GNU $ac_path_EGREP | ||
267 | +case `"$ac_path_EGREP" --version 2>&1` in | ||
268 | +*GNU*) | ||
269 | + ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; | ||
270 | +*) | ||
271 | + ac_count=0 | ||
272 | + $as_echo_n 0123456789 >"conftest.in" | ||
273 | + while : | ||
274 | + do | ||
275 | + cat "conftest.in" "conftest.in" >"conftest.tmp" | ||
276 | + mv "conftest.tmp" "conftest.in" | ||
277 | + cp "conftest.in" "conftest.nl" | ||
278 | + $as_echo 'EGREP' >> "conftest.nl" | ||
279 | + "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break | ||
280 | + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break | ||
281 | + as_fn_arith $ac_count + 1 && ac_count=$as_val | ||
282 | + if test $ac_count -gt ${ac_path_EGREP_max-0}; then | ||
283 | + # Best one so far, save it but keep looking for a better one | ||
284 | + ac_cv_path_EGREP="$ac_path_EGREP" | ||
285 | + ac_path_EGREP_max=$ac_count | ||
286 | + fi | ||
287 | + # 10*(2^10) chars as input seems more than enough | ||
288 | + test $ac_count -gt 10 && break | ||
289 | + done | ||
290 | + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; | ||
291 | +esac | ||
292 | + | ||
293 | + $ac_path_EGREP_found && break 3 | ||
294 | + done | ||
295 | + done | ||
296 | + done | ||
297 | +IFS=$as_save_IFS | ||
298 | + if test -z "$ac_cv_path_EGREP"; then | ||
299 | + as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 | ||
300 | + fi | ||
301 | +else | ||
302 | + ac_cv_path_EGREP=$EGREP | ||
303 | +fi | ||
304 | + | ||
305 | + fi | ||
306 | +fi | ||
307 | +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 | ||
308 | +$as_echo "$ac_cv_path_EGREP" >&6; } | ||
309 | + EGREP="$ac_cv_path_EGREP" | ||
310 | + | ||
311 | + | ||
312 | +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler is using the ARM hard-float ABI" >&5 | ||
313 | +$as_echo_n "checking whether the compiler is using the ARM hard-float ABI... " >&6; } | ||
314 | +if ${libc_cv_arm_pcs_vfp+:} false; then : | ||
315 | + $as_echo_n "(cached) " >&6 | ||
316 | +else | ||
317 | + cat confdefs.h - <<_ACEOF >conftest.$ac_ext | ||
318 | +/* end confdefs.h. */ | ||
319 | +#ifdef __ARM_PCS_VFP | ||
320 | + yes | ||
321 | + #endif | ||
322 | + | ||
323 | +_ACEOF | ||
324 | +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | | ||
325 | + $EGREP "yes" >/dev/null 2>&1; then : | ||
326 | + libc_cv_arm_pcs_vfp=yes | ||
327 | +else | ||
328 | + libc_cv_arm_pcs_vfp=no | ||
329 | +fi | ||
330 | +rm -f conftest* | ||
331 | + | ||
332 | +fi | ||
333 | +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_arm_pcs_vfp" >&5 | ||
334 | +$as_echo "$libc_cv_arm_pcs_vfp" >&6; } | ||
335 | +if test $libc_cv_arm_pcs_vfp = yes; then | ||
336 | + $as_echo "#define HAVE_ARM_PCS_VFP 1" >>confdefs.h | ||
337 | + | ||
338 | +fi | ||
diff --git a/meta/recipes-core/eglibc/eglibc_2.15.bb b/meta/recipes-core/eglibc/eglibc_2.15.bb index fa92670e6a..6dd846f7f7 100644 --- a/meta/recipes-core/eglibc/eglibc_2.15.bb +++ b/meta/recipes-core/eglibc/eglibc_2.15.bb | |||
@@ -3,7 +3,7 @@ require eglibc.inc | |||
3 | SRCREV = "17386" | 3 | SRCREV = "17386" |
4 | 4 | ||
5 | DEPENDS += "gperf-native" | 5 | DEPENDS += "gperf-native" |
6 | PR = "r10" | 6 | PR = "r11" |
7 | PR_append = "+svnr${SRCPV}" | 7 | PR_append = "+svnr${SRCPV}" |
8 | 8 | ||
9 | EGLIBC_BRANCH="eglibc-2_15" | 9 | EGLIBC_BRANCH="eglibc-2_15" |
@@ -25,6 +25,8 @@ SRC_URI = "svn://www.eglibc.org/svn/branches/;module=${EGLIBC_BRANCH};proto=http | |||
25 | file://initgroups_keys.patch \ | 25 | file://initgroups_keys.patch \ |
26 | file://use-localstatedir-for-vardbdir.patch \ | 26 | file://use-localstatedir-for-vardbdir.patch \ |
27 | file://eglibc_fix_findidx_parameters.patch \ | 27 | file://eglibc_fix_findidx_parameters.patch \ |
28 | file://add_HAVE_ARM_PCS_VFP.patch \ | ||
29 | file://ldso_arm_hf_support.patch \ | ||
28 | " | 30 | " |
29 | LIC_FILES_CHKSUM = "file://LICENSES;md5=98a1128c4b58120182cbea3b1752d8b9 \ | 31 | LIC_FILES_CHKSUM = "file://LICENSES;md5=98a1128c4b58120182cbea3b1752d8b9 \ |
30 | file://COPYING;md5=393a5ca445f6965873eca0259a17f833 \ | 32 | file://COPYING;md5=393a5ca445f6965873eca0259a17f833 \ |