diff options
author | midipix <writeonce@midipix.org> | 2020-08-16 08:27:18 +0000 |
---|---|---|
committer | midipix <writeonce@midipix.org> | 2020-08-16 18:04:04 +0000 |
commit | 1a35f5b602cae2a74297c789c33f765335cd643e (patch) | |
tree | 661ffafdcd83d86aad611f660141a98d38a1af17 /sofort/ccenv/ccenv.sh | |
parent | 1a0605ddb253f36bbf7de8138d228c3a6d10d8c8 (diff) | |
download | sbpython2-1a35f5b602cae2a74297c789c33f765335cd643e.tar.bz2 sbpython2-1a35f5b602cae2a74297c789c33f765335cd643e.tar.xz |
build system: ccenv: ccenv_set_primary_tools(): added archive format support.
Diffstat (limited to 'sofort/ccenv/ccenv.sh')
-rw-r--r-- | sofort/ccenv/ccenv.sh | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/sofort/ccenv/ccenv.sh b/sofort/ccenv/ccenv.sh index c026030..52ad423 100644 --- a/sofort/ccenv/ccenv.sh +++ b/sofort/ccenv/ccenv.sh @@ -226,6 +226,48 @@ ccenv_set_primary_tools() # windrc ccenv_windrc="$ccenv_windres" + + # archive format preamble + ccenv_libgcc_a_header=$(od -b -N8 $($ccenv_cc -print-file-name=libgcc.a) | head -n1) + ccenv_cc_arfmt='common' + + # ar (big) + ccenv_bigaf_header=$(printf '%s\n' '<bigaf>' | od -b | head -n1) + + if [ "$ccenv_libgcc_a_header" = "$ccenv_bigaf_header" ]; then + ccenv_cc_arfmt='bigaf' + + for __tool in $(printf '%s' "$ccenv_core_tools"); do + ccenv_var_name=ccenv_$__tool + ccenv_var_expr='${'$ccenv_var_name':-}' + eval ccenv_var_val="$ccenv_var_expr" + + if [ "$ccenv_var_val" != false ]; then + ccenv_var_val="$ccenv_var_val -X64" + ccenv_var_expr='${ccenv_var_val:-}' + eval ccenv_$__tool="$ccenv_var_expr" + fi + done + fi + + # ar (small) + ccenv_aiaff_header=$(printf '%s\n' '<aiaff>' | od -b | head -n1) + + if [ "$ccenv_libgcc_a_header" = "$ccenv_aiaff_header" ]; then + ccenv_cc_arfmt='aiaff' + + for __tool in $(printf '%s' "$ccenv_core_tools"); do + ccenv_var_name=ccenv_$__tool + ccenv_var_expr='${'$ccenv_var_name':-}' + eval ccenv_var_val="$ccenv_var_expr" + + if [ "$ccenv_var_val" != false ]; then + ccenv_var_val="$ccenv_var_val -X32" + ccenv_var_expr='${ccenv_var_val:-}' + eval ccenv_$__tool="$ccenv_var_expr" + fi + done + fi } ccenv_set_tool_variants() |