20c5c2
build system: ccenv: ccenv_set_primary_tools(): added archive format support.
@@ -24,6 +24,7 @@ OS_LIB_SUFFIXED_SUFFIX = @ccenv_os_lib_suffixed_suffix@
|
|
24
24
|
CC_HOST = @ccenv_cc_host@
|
25
25
|
CC_BITS = @ccenv_cc_bits@
|
26
26
|
|
27
|
+
CC_ARFMT = @ccenv_cc_arfmt@
|
27
28
|
CC_BINFMT = @ccenv_cc_binfmt@
|
28
29
|
CC_UNDERSCORE = @ccenv_cc_underscore@
|
29
30
|
|
@@ -226,6 +226,48 @@ ccenv_set_primary_tools()
|
|
226
226
|
|
227
227
|
# windrc
|
228
228
|
ccenv_windrc="$ccenv_windres"
|
229
|
+
|
230
|
+
# archive format preamble
|
231
|
+
ccenv_libgcc_a_header=$(od -b -N8 $($ccenv_cc -print-file-name=libgcc.a) | head -n1)
|
232
|
+
ccenv_cc_arfmt='common'
|
233
|
+
|
234
|
+
# ar (big)
|
235
|
+
ccenv_bigaf_header=$(printf '%s\n' '<bigaf>' | od -b | head -n1)
|
236
|
+
|
237
|
+
if [ "$ccenv_libgcc_a_header" = "$ccenv_bigaf_header" ]; then
|
238
|
+
ccenv_cc_arfmt='bigaf'
|
239
|
+
|
240
|
+
for __tool in $(printf '%s' "$ccenv_core_tools"); do
|
241
|
+
ccenv_var_name=ccenv_$__tool
|
242
|
+
ccenv_var_expr='${'$ccenv_var_name':-}'
|
243
|
+
eval ccenv_var_val="$ccenv_var_expr"
|
244
|
+
|
245
|
+
if [ "$ccenv_var_val" != false ]; then
|
246
|
+
ccenv_var_val="$ccenv_var_val -X64"
|
247
|
+
ccenv_var_expr='${ccenv_var_val:-}'
|
248
|
+
eval ccenv_$__tool="$ccenv_var_expr"
|
249
|
+
fi
|
250
|
+
done
|
251
|
+
fi
|
252
|
+
|
253
|
+
# ar (small)
|
254
|
+
ccenv_aiaff_header=$(printf '%s\n' '<aiaff>' | od -b | head -n1)
|
255
|
+
|
256
|
+
if [ "$ccenv_libgcc_a_header" = "$ccenv_aiaff_header" ]; then
|
257
|
+
ccenv_cc_arfmt='aiaff'
|
258
|
+
|
259
|
+
for __tool in $(printf '%s' "$ccenv_core_tools"); do
|
260
|
+
ccenv_var_name=ccenv_$__tool
|
261
|
+
ccenv_var_expr='${'$ccenv_var_name':-}'
|
262
|
+
eval ccenv_var_val="$ccenv_var_expr"
|
263
|
+
|
264
|
+
if [ "$ccenv_var_val" != false ]; then
|
265
|
+
ccenv_var_val="$ccenv_var_val -X32"
|
266
|
+
ccenv_var_expr='${ccenv_var_val:-}'
|
267
|
+
eval ccenv_$__tool="$ccenv_var_expr"
|
268
|
+
fi
|
269
|
+
done
|
270
|
+
fi
|
229
271
|
}
|
230
272
|
|
231
273
|
ccenv_set_tool_variants()
|
@@ -24,6 +24,7 @@ ccenv_os_lib_suffixed_suffix=
|
|
24
24
|
ccenv_cc_host=
|
25
25
|
ccenv_cc_bits=
|
26
26
|
|
27
|
+
ccenv_cc_arfmt=
|
27
28
|
ccenv_cc_binfmt=
|
28
29
|
ccenv_cc_underscore=
|
29
30
|
|