commit: a4a4ce9142aa60e252c1e1827fe2518000ab6bf9
parent 49146e3bdf0114f844e4a65cf40a792aaa56eaf2
Author: Michael Forney <mforney@mforney.org>
Date: Mon, 7 Sep 2020 19:29:01 -0700
binutils: Fix disassembler
Diffstat:
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)