unicorn-engine / unicorn

Unicorn CPU emulator framework (ARM, AArch64, M68K, Mips, Sparc, PowerPC, RiscV, S390x, TriCore, X86)
http://www.unicorn-engine.org
GNU General Public License v2.0
7.53k stars 1.33k forks source link

Clang/MinGW getpagesize #1816

Closed kassane closed 1 year ago

kassane commented 1 year ago

Reference: https://github.com/msys2/MINGW-packages/pull/10543

kassane commented 1 year ago

Same referencing msys2/packages PR using unicorn 2 RC. Error persists with upstream dev when using msys2/clang64 or zig cc or llvm-mingw.

2 warnings generated.
[634/662] Linking C shared library libunicorn.dll
FAILED: libunicorn.dll libunicorn.dll.a
cmd.exe /C "cd . && C:\msys64\clang64\bin\cc.exe -static -O3 -DNDEBUG  -m64 -shared -o libunicorn.dll -Wl,--out-implib,libunicorn.dll.a -Wl,--major-image-version,2,--minor-image-version,0 CMakeFiles/unicorn.dir/uc.c.obj CMakeFiles/unicorn.dir/qemu/softmmu/vl.c.obj CMakeFiles/unicorn.dir/qemu/hw/core/cpu.c.obj  libunicorn-common.a  libx86_64-softmmu.a  libarm-softmmu.a  libaarch64-softmmu.a  libm68k-softmmu.a  libmips-softmmu.a  libmipsel-softmmu.a  libmips64-softmmu.a  libmips64el-softmmu.a  libsparc-softmmu.a  libsparc64-softmmu.a  libppc-softmmu.a  libppc64-softmmu.a  libriscv32-softmmu.a  libriscv64-softmmu.a  libs390x-softmmu.a  libtricore-softmmu.a  -lpthread  -lm  -lm  libunicorn-common.a  -lpthread  -lkernel32 -luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32 && cd ."
ld.lld: error: undefined symbol: getpagesize
>>> referenced by libunicorn-common.a(pagesize.c.obj):(init_real_host_page_size)
>>> referenced by libunicorn-common.a(oslib-posix.c.obj):(qemu_anon_ram_alloc)
>>> referenced by libunicorn-common.a(oslib-posix.c.obj):(qemu_anon_ram_alloc)
cc: error: linker command failed with exit code 1 (use -v to see invocation)
ninja: build stopped: subcommand failed.

This patch fixes the issue.

wtdcode commented 1 year ago

LGTM, thanks!