Compiling hsdis on Windows under MSYS2
Julian Waters
tanksherman27 at gmail.com
Thu Mar 14 09:46:12 UTC 2024
Hi all,
I'm currently working on allowing hsdis to compile under different
Unix environments for Windows with gcc as the compiler, since it's
required for the binutils backend (For good measure I'll throw
capstone support in as well since it's relatively easy to add and it's
also a package under the different MSYS2 subsystems. LLVM is way more
complex and I'll leave it out for the time being). This means that
Cygwin will no longer be the only way to compile hsdis for Windows,
especially for the binutils backend, which I view as a big plus in
terms of ease of setup. However, I have a couple of questions:
1. Right now I see a hack in the Makefiles to replace the Visual C++
compiler entirely with gcc when compiling the binutils. It's slightly
better now after a recent change, but it's still there. Should this be
replaced with proper-but-partial gcc support for Windows in autoconf
and make, and instead require configuring with gcc if hsdis
compilation is requested? If the hard requirement of configuring with
gcc is a no go, is at least adding partial gcc support in configure
and make still ok to add so hsdis can be configured to compile with
gcc directly?
2. Currently there's a SYSTEM_BINUTILS define which gates the
definitions of PACKAGE and PACKAGE_VERSION. It seems that the bfd.h
header requires these to be defined, but strangely these are not
defined if a system binutils is used on Linux. Does the bfd.h header
there not require these to be defined? It causes compilation failures
here on Windows when --with-binutils=system is passed (I am aware that
--with-binutils=system is currently only supported on Linux, but we
should make it supported under MSYS2 and other Windows environments
that support system binutils as well)
best regards,
Julian
More information about the build-dev
mailing list