20c5c2 build system: ccenv: ccenv_set_primary_tools(): added archive format support.

Authored and Committed by midipix 4 years ago
    build system: ccenv: ccenv_set_primary_tools(): added archive format support.
    
        
file modified
+1 -0
sofort/ccenv/ccenv.in CHANGED
@@ -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
file modified
+42 -0
sofort/ccenv/ccenv.sh CHANGED
@@ -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()
file modified
+1 -0
sofort/ccenv/ccenv.vars CHANGED
@@ -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