logo

oasis

Own branch of Oasis Linux (upstream: <https://git.sr.ht/~mcf/oasis/>) git clone https://anongit.hacktivis.me/git/oasis.git
commit: a4a4ce9142aa60e252c1e1827fe2518000ab6bf9
parent 49146e3bdf0114f844e4a65cf40a792aaa56eaf2
Author: Michael Forney <mforney@mforney.org>
Date:   Mon,  7 Sep 2020 19:29:01 -0700

binutils: Fix disassembler

Diffstat:

Mpkg/binutils/arch.lua174++++++++++++++++++++++++++++++++++++++++----------------------------------------
Mpkg/binutils/gen.lua17++++++++++-------
2 files changed, 97 insertions(+), 94 deletions(-)

diff --git a/pkg/binutils/arch.lua b/pkg/binutils/arch.lua @@ -1,90 +1,90 @@ -- src/opcodes/configure.ac:/for arch in/ return { - bfd_aarch64_arch={'aarch64-asm.c', 'aarch64-dis.c', 'aarch64-opc.c', 'aarch64-asm-2.c', 'aarch64-dis-2.c', 'aarch64-opc-2.c'}, - bfd_alpha_arch={'alpha-dis.c', 'alpha-opc.c'}, - bfd_arc_arch={'arc-dis.c', 'arc-opc.c', 'arc-ext.c'}, - bfd_arm_arch={'arm-dis.c'}, - bfd_avr_arch={'avr-dis.c'}, - bfd_bfin_arch={'bfin-dis.c'}, - bfd_cr16_arch={'cr16-dis.c', 'cr16-opc.c'}, - bfd_cris_arch={'cris-dis.c', 'cris-opc.c', 'cgen-bitset.c'}, - bfd_crx_arch={'crx-dis.c', 'crx-opc.c'}, - bfd_csky_arch={'csky-dis.c'}, - bfd_d10v_arch={'d10v-dis.c', 'd10v-opc.c'}, - bfd_d30v_arch={'d30v-dis.c', 'd30v-opc.c'}, - bfd_dlx_arch={'dlx-dis.c'}, - bfd_fr30_arch={'fr30-asm.c', 'fr30-desc.c', 'fr30-dis.c', 'fr30-ibld.c', 'fr30-opc.c'}, - bfd_frv_arch={'frv-asm.c', 'frv-desc.c', 'frv-dis.c', 'frv-ibld.c', 'frv-opc.c'}, - bfd_ft32_arch={'ft32-opc.c', 'ft32-dis.c'}, - bfd_moxie_arch={'moxie-dis.c', 'moxie-opc.c'}, - bfd_h8300_arch={'h8300-dis.c'}, - bfd_hppa_arch={'hppa-dis.c'}, - bfd_i386_arch={'i386-dis.c', 'i386-opc.c'}, - bfd_iamcu_arch={'i386-dis.c', 'i386-opc.c'}, - bfd_l1om_arch={'i386-dis.c', 'i386-opc.c'}, - bfd_k1om_arch={'i386-dis.c', 'i386-opc.c'}, - bfd_ia64_arch={'ia64-dis.c', 'ia64-opc.c'}, - bfd_ip2k_arch={'ip2k-asm.c', 'ip2k-desc.c', 'ip2k-dis.c', 'ip2k-ibld.c', 'ip2k-opc.c'}, - bfd_epiphany_arch={'epiphany-asm.c', 'epiphany-desc.c', 'epiphany-dis.c', 'epiphany-ibld.c', 'epiphany-opc.c'}, - bfd_iq2000_arch={'iq2000-asm.c', 'iq2000-desc.c', 'iq2000-dis.c', 'iq2000-ibld.c', 'iq2000-opc.c'}, - bfd_lm32_arch={'lm32-asm.c', 'lm32-desc.c', 'lm32-dis.c', 'lm32-ibld.c', 'lm32-opc.c', 'lm32-opinst.c'}, - bfd_m32c_arch={'m32c-asm.c', 'm32c-desc.c', 'm32c-dis.c', 'm32c-ibld.c', 'm32c-opc.c'}, - bfd_m32r_arch={'m32r-asm.c', 'm32r-desc.c', 'm32r-dis.c', 'm32r-ibld.c', 'm32r-opc.c', 'm32r-opinst.c'}, - bfd_m68hc11_arch={'m68hc11-dis.c', 'm68hc11-opc.c'}, - bfd_m68hc12_arch={'m68hc11-dis.c', 'm68hc11-opc.c'}, - bfd_m9s12x_arch={'m68hc11-dis.c', 'm68hc11-opc.c'}, - bfd_m9s12xg_arch={'m68hc11-dis.c', 'm68hc11-opc.c'}, - bfd_s12z_arch={'s12z-dis.c', 's12z-opc.c'}, - bfd_m68k_arch={'m68k-dis.c', 'm68k-opc.c'}, - bfd_mcore_arch={'mcore-dis.c'}, - bfd_mep_arch={'mep-asm.c', 'mep-desc.c', 'mep-dis.c', 'mep-ibld.c', 'mep-opc.c'}, - bfd_metag_arch={'metag-dis.c'}, - bfd_microblaze_arch={'microblaze-dis.c'}, - bfd_mips_arch={'mips-dis.c', 'mips-opc.c', 'mips16-opc.c', 'micromips-opc.c'}, - bfd_mmix_arch={'mmix-dis.c', 'mmix-opc.c'}, - bfd_mn10200_arch={'m10200-dis.c', 'm10200-opc.c'}, - bfd_mn10300_arch={'m10300-dis.c', 'm10300-opc.c'}, - bfd_mt_arch={'mt-asm.c', 'mt-desc.c', 'mt-dis.c', 'mt-ibld.c', 'mt-opc.c'}, - bfd_msp430_arch={'msp430-dis.c', 'msp430-decode.c'}, - bfd_nds32_arch={'nds32-asm.c', 'nds32-dis.c'}, - bfd_nfp_arch={'nfp-dis.c'}, - bfd_nios2_arch={'nios2-dis.c', 'nios2-opc.c'}, - bfd_ns32k_arch={'ns32k-dis.c'}, - bfd_or1k_arch={'or1k-asm.c', 'or1k-desc.c', 'or1k-dis.c', 'or1k-ibld.c', 'or1k-opc.c'}, - bfd_pdp11_arch={'pdp11-dis.c', 'pdp11-opc.c'}, - bfd_pj_arch={'pj-dis.c', 'pj-opc.c'}, - bfd_powerpc_arch={'ppc-dis.c', 'ppc-opc.c'}, - bfd_powerpc_64_arch={'ppc-dis.c', 'ppc-opc.c'}, - bfd_pru_arch={'pru-dis.c', 'pru-opc.c'}, - bfd_pyramid_arch={}, - bfd_romp_arch={}, - bfd_riscv_arch={'riscv-dis.c', 'riscv-opc.c'}, - bfd_rs6000_arch={'ppc-dis.c', 'ppc-opc.c'}, - bfd_rl78_arch={'rl78-dis.c', 'rl78-decode.c'}, - bfd_rx_arch={'rx-dis.c', 'rx-decode.c'}, - bfd_s390_arch={'s390-dis.c', 's390-opc.c'}, - bfd_score_arch={'score-dis.c', 'score7-dis.c'}, - bfd_sh_arch={'sh-dis.c', 'cgen-bitset.c'}, - bfd_sparc_arch={'sparc-dis.c', 'sparc-opc.c'}, - bfd_spu_arch={'spu-dis.c', 'spu-opc.c'}, - bfd_tic30_arch={'tic30-dis.c'}, - bfd_tic4x_arch={'tic4x-dis.c'}, - bfd_tic54x_arch={'tic54x-dis.c', 'tic54x-opc.c'}, - bfd_tic6x_arch={'tic6x-dis.c'}, - bfd_tilegx_arch={'tilegx-dis.c', 'tilegx-opc.c'}, - bfd_tilepro_arch={'tilepro-dis.c', 'tilepro-opc.c'}, - bfd_v850_arch={'v850-opc.c', 'v850-dis.c'}, - bfd_v850e_arch={'v850-opc.c', 'v850-dis.c'}, - bfd_v850ea_arch={'v850-opc.c', 'v850-dis.c'}, - bfd_v850_rh850_arch={'v850-opc.c', 'v850-dis.c'}, - bfd_vax_arch={'vax-dis.c'}, - bfd_visium_arch={'visium-dis.c', 'visium-opc.c'}, - bfd_wasm32_arch={'wasm32-dis.c'}, - bfd_xc16x_arch={'xc16x-asm.c', 'xc16x-desc.c', 'xc16x-dis.c', 'xc16x-ibld.c', 'xc16x-opc.c'}, - bfd_xgate_arch={'xgate-dis.c', 'xgate-opc.c'}, - bfd_xstormy16_arch={'xstormy16-asm.c', 'xstormy16-desc.c', 'xstormy16-dis.c', 'xstormy16-ibld.c', 'xstormy16-opc.c'}, - bfd_xtensa_arch={'xtensa-dis.c'}, - bfd_z80_arch={'z80-dis.c'}, - bfd_z8k_arch={'z8k-dis.c'}, - bfd_bpf_arch={'bpf-asm.c', 'bpf-desc.c', 'bpf-dis.c', 'bpf-ibld.c', 'bpf-opc.c'}, + aarch64={'aarch64-asm.c', 'aarch64-dis.c', 'aarch64-opc.c', 'aarch64-asm-2.c', 'aarch64-dis-2.c', 'aarch64-opc-2.c'}, + alpha={'alpha-dis.c', 'alpha-opc.c'}, + arc={'arc-dis.c', 'arc-opc.c', 'arc-ext.c'}, + arm={'arm-dis.c'}, + avr={'avr-dis.c'}, + bfin={'bfin-dis.c'}, + cr16={'cr16-dis.c', 'cr16-opc.c'}, + cris={'cris-dis.c', 'cris-opc.c', 'cgen-bitset.c'}, + crx={'crx-dis.c', 'crx-opc.c'}, + csky={'csky-dis.c'}, + d10v={'d10v-dis.c', 'd10v-opc.c'}, + d30v={'d30v-dis.c', 'd30v-opc.c'}, + dlx={'dlx-dis.c'}, + fr30={'fr30-asm.c', 'fr30-desc.c', 'fr30-dis.c', 'fr30-ibld.c', 'fr30-opc.c'}, + frv={'frv-asm.c', 'frv-desc.c', 'frv-dis.c', 'frv-ibld.c', 'frv-opc.c'}, + ft32={'ft32-opc.c', 'ft32-dis.c'}, + moxie={'moxie-dis.c', 'moxie-opc.c'}, + h8300={'h8300-dis.c'}, + hppa={'hppa-dis.c'}, + i386={'i386-dis.c', 'i386-opc.c'}, + iamcu={'i386-dis.c', 'i386-opc.c'}, + l1om={'i386-dis.c', 'i386-opc.c'}, + k1om={'i386-dis.c', 'i386-opc.c'}, + ia64={'ia64-dis.c', 'ia64-opc.c'}, + ip2k={'ip2k-asm.c', 'ip2k-desc.c', 'ip2k-dis.c', 'ip2k-ibld.c', 'ip2k-opc.c'}, + epiphany={'epiphany-asm.c', 'epiphany-desc.c', 'epiphany-dis.c', 'epiphany-ibld.c', 'epiphany-opc.c'}, + iq2000={'iq2000-asm.c', 'iq2000-desc.c', 'iq2000-dis.c', 'iq2000-ibld.c', 'iq2000-opc.c'}, + lm32={'lm32-asm.c', 'lm32-desc.c', 'lm32-dis.c', 'lm32-ibld.c', 'lm32-opc.c', 'lm32-opinst.c'}, + m32c={'m32c-asm.c', 'm32c-desc.c', 'm32c-dis.c', 'm32c-ibld.c', 'm32c-opc.c'}, + m32r={'m32r-asm.c', 'm32r-desc.c', 'm32r-dis.c', 'm32r-ibld.c', 'm32r-opc.c', 'm32r-opinst.c'}, + m68hc11={'m68hc11-dis.c', 'm68hc11-opc.c'}, + m68hc12={'m68hc11-dis.c', 'm68hc11-opc.c'}, + m9s12x={'m68hc11-dis.c', 'm68hc11-opc.c'}, + m9s12xg={'m68hc11-dis.c', 'm68hc11-opc.c'}, + s12z={'s12z-dis.c', 's12z-opc.c'}, + m68k={'m68k-dis.c', 'm68k-opc.c'}, + mcore={'mcore-dis.c'}, + mep={'mep-asm.c', 'mep-desc.c', 'mep-dis.c', 'mep-ibld.c', 'mep-opc.c'}, + metag={'metag-dis.c'}, + microblaze={'microblaze-dis.c'}, + mips={'mips-dis.c', 'mips-opc.c', 'mips16-opc.c', 'micromips-opc.c'}, + mmix={'mmix-dis.c', 'mmix-opc.c'}, + mn10200={'m10200-dis.c', 'm10200-opc.c'}, + mn10300={'m10300-dis.c', 'm10300-opc.c'}, + mt={'mt-asm.c', 'mt-desc.c', 'mt-dis.c', 'mt-ibld.c', 'mt-opc.c'}, + msp430={'msp430-dis.c', 'msp430-decode.c'}, + nds32={'nds32-asm.c', 'nds32-dis.c'}, + nfp={'nfp-dis.c'}, + nios2={'nios2-dis.c', 'nios2-opc.c'}, + ns32k={'ns32k-dis.c'}, + or1k={'or1k-asm.c', 'or1k-desc.c', 'or1k-dis.c', 'or1k-ibld.c', 'or1k-opc.c'}, + pdp11={'pdp11-dis.c', 'pdp11-opc.c'}, + pj={'pj-dis.c', 'pj-opc.c'}, + powerpc={'ppc-dis.c', 'ppc-opc.c'}, + powerpc_64={'ppc-dis.c', 'ppc-opc.c'}, + pru={'pru-dis.c', 'pru-opc.c'}, + pyramid={}, + romp={}, + riscv={'riscv-dis.c', 'riscv-opc.c'}, + rs6000={'ppc-dis.c', 'ppc-opc.c'}, + rl78={'rl78-dis.c', 'rl78-decode.c'}, + rx={'rx-dis.c', 'rx-decode.c'}, + s390={'s390-dis.c', 's390-opc.c'}, + score={'score-dis.c', 'score7-dis.c'}, + sh={'sh-dis.c', 'cgen-bitset.c'}, + sparc={'sparc-dis.c', 'sparc-opc.c'}, + spu={'spu-dis.c', 'spu-opc.c'}, + tic30={'tic30-dis.c'}, + tic4x={'tic4x-dis.c'}, + tic54x={'tic54x-dis.c', 'tic54x-opc.c'}, + tic6x={'tic6x-dis.c'}, + tilegx={'tilegx-dis.c', 'tilegx-opc.c'}, + tilepro={'tilepro-dis.c', 'tilepro-opc.c'}, + v850={'v850-opc.c', 'v850-dis.c'}, + v850e={'v850-opc.c', 'v850-dis.c'}, + v850ea={'v850-opc.c', 'v850-dis.c'}, + v850_rh850={'v850-opc.c', 'v850-dis.c'}, + vax={'vax-dis.c'}, + visium={'visium-dis.c', 'visium-opc.c'}, + wasm32={'wasm32-dis.c'}, + xc16x={'xc16x-asm.c', 'xc16x-desc.c', 'xc16x-dis.c', 'xc16x-ibld.c', 'xc16x-opc.c'}, + xgate={'xgate-dis.c', 'xgate-opc.c'}, + xstormy16={'xstormy16-asm.c', 'xstormy16-desc.c', 'xstormy16-dis.c', 'xstormy16-ibld.c', 'xstormy16-opc.c'}, + xtensa={'xtensa-dis.c'}, + z80={'z80-dis.c'}, + z8k={'z8k-dis.c'}, + bpf={'bpf-asm.c', 'bpf-desc.c', 'bpf-dis.c', 'bpf-ibld.c', 'bpf-opc.c'}, } diff --git a/pkg/binutils/gen.lua b/pkg/binutils/gen.lua @@ -1,7 +1,7 @@ local version = setmetatable({2, 35}, {__index=function() return 0 end}) local defvec = 'x86_64_elf64_vec' local selvecs = {[defvec]=true, i386_elf32_vec=true} -local selarchs = {bfd_i386_arch=true} +local selarchs = {i386=true} local emuls = { 'elf_x86_64', 'elf_i386', @@ -102,13 +102,13 @@ sub('bfd.ninja', function() selvecs.elf32_be_vec = true end if vec:find('iamcu_elf32') then - selarchs.bfd_iamcu_arch = true + selarchs.iamcu = true end if vec:find('l1om_elf64') then - selarchs.bfd_l1om_arch = true + selarchs.l1om = true end if vec:find('k1om_elf64') then - selarchs.bfd_k1om_arch = true + selarchs.k1om = true end end local srcs = {} @@ -125,7 +125,7 @@ sub('bfd.ninja', function() end end for arch in pairs(selarchs) do - srcs['bfd/cpu-'..arch:match('bfd_([%w_]+)_arch')..'.c'] = true + srcs['bfd/cpu-'..arch..'.c'] = true end local deps = { '$gendir/deps', @@ -142,7 +142,7 @@ sub('bfd.ninja', function() }}) cc('bfd/archures.c', nil, {cflags={ '$cflags', - string.format([[-D 'SELECT_ARCHITECTURES=&%s']], table.concat(table.keys(selarchs), ',&')), + string.format([[-D 'SELECT_ARCHITECTURES=&bfd_%s_arch']], table.concat(table.keys(selarchs), '_arch,&bfd_')), }}) cc('bfd/dwarf2.c', nil, {cflags={'$cflags', string.format([[-D 'DEBUGDIR="%s/lib/debug"']], config.prefix)}}) lib('libbfd.a', { @@ -173,8 +173,11 @@ sub('opcodes.ninja', function() end end end + cc('opcodes/disassemble.c', nil, {cflags={ + '$cflags', '-D ARCH_'..table.concat(table.keys(selarchs), ' -D ARCH_'), + }}) lib('libopcodes.a', { - paths[[opcodes/(dis-buf.c disassemble.c dis-init.c)]], + paths[[opcodes/(dis-buf.c disassemble.c.o dis-init.c)]], table.keys(srcs), }) end)