thixotropist / ghidra_import_tests

Experimental framework for testing Ghidra binary import support
1 stars 0 forks source link

Add a reference x86_64 or ARM set of exemplars #12

Closed thixotropist closed 8 months ago

thixotropist commented 9 months ago

Ghidra functionality is likely driven by x86_64 or ARM test cases far more than the RISCV-64 test cases here. For complex topics like gcc autovectorization imports, we probably want to track how the larger community handles things.

Start by adding an x86_64 directory parallel to the existing riscv64 directory, perhaps with a gcc-14 tracking toolchain tuned for some recent Intel machine architecture.

Nominal toolchain goals and exemplar sets:

thixotropist commented 9 months ago

An experimental x86_64 toolchain is now available, based on binutils-2.41 and a December snapshot of both gcc-14 and glibc. Generated exemplars can be quite different with -O3 optimization and -march variously set to alderlake, raptorlake, rocketlake, and sapphirerapids.

The gcc-14 build included the gccrs rust compiler, but this is unable to handle macro calls or use the std library, so we will defer any rust-related work.

Scope is an issue - the point of an x86_64 developmental toolchain is to explore the generality of issues surfaced in RISCV import testing. Implementing x86_64 vector extensions is not in scope, but exploring the diversity of vector optimizations of loops and inlined calls to memcpy or strlen might be.