Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Windows: incorrect detection of core count on NUMA hardware. #3286

Open
GermanAizek opened this issue Jan 26, 2024 · 32 comments
Open

Windows: incorrect detection of core count on NUMA hardware. #3286

GermanAizek opened this issue Jan 26, 2024 · 32 comments
Assignees

Comments

@GermanAizek
Copy link
Contributor

image

image

Windows 10

similar issues im with mrexodia fixes here: x64dbg/x64dbg#3272

modern C++ variant here: GermanAizek/llvm-project@d1fa25f

C variant detection is not done here: git-for-windows/git#4766

@GermanAizek
Copy link
Contributor Author

@XVilka,
You take count cores in one processor group, although it is more correct to use GetLogicalProcessorInformationEx then
giampaolo/psutil#771

My fixes correctly detect single-cpu logical cores and multi-cpu, im written above.

@XVilka
Copy link
Member

XVilka commented Jan 29, 2024

@wargio take a look at this one please

@wargio
Copy link
Member

wargio commented Jan 29, 2024

Since this is not something i can easily test, can you confirm that this happens only on windows?

@wargio
Copy link
Member

wargio commented Jan 29, 2024

@GermanAizek can you test cutter with this rizin patch? rizinorg/rizin#4167

@GermanAizek
Copy link
Contributor Author

@wargio, I tried building on Windows

C:\GIT\rizin>ninja -C build
ninja: Entering directory `build'
[62/2075] Compiling C object subprojects/libdemangle/libdemangle.a.p/src_cxx_cp-demangle.c.obj
FAILED: subprojects/libdemangle/libdemangle.a.p/src_cxx_cp-demangle.c.obj
"ccache" "gcc" "-Isubprojects\libdemangle\libdemangle.a.p" "-I..\subprojects\libdemangle\include" "-I..\subprojects\libdemangle\src" "-fdiagnostics-color=always" "-D_FILE_OFFSET_BITS=64" "-Wall" "-Winvalid-pch" "-O3" "--std=gnu99" "--std=gnu99" "-Werror=sizeof-pointer-memaccess" "-fvisibility=hidden" "-DWITH_GPL=1" "-DWITH_SWIFT_DEMANGLER=1" -MD -MQ subprojects/libdemangle/libdemangle.a.p/src_cxx_cp-demangle.c.obj -MF "subprojects\libdemangle\libdemangle.a.p\src_cxx_cp-demangle.c.obj.d" -o subprojects/libdemangle/libdemangle.a.p/src_cxx_cp-demangle.c.obj "-c" ../subprojects/libdemangle/src/cxx/cp-demangle.c
In file included from C:/Strawberry/c/x86_64-w64-mingw32/include/stdlib.h:770,
                 from ../subprojects/libdemangle/src/cxx/cp-demangle.c:114:
../subprojects/libdemangle/src/cxx/libiberty.h:660:14: error: expected declaration specifiers or '...' before '(' token
  660 | extern void *_alloca(size_t) ATTRIBUTE_MALLOC;
      |              ^~~~~~~
[135/2075] Compiling C object subprojects/capstone-next/libcapstone.a.p/arch_ARM_ARMDisassembler.c.obj
ninja: build stopped: subcommand failed.

@wargio
Copy link
Member

wargio commented Jan 29, 2024

interesting error. which version of windows is this? also delete that line, is not really needed so you can continue to compile

@wargio
Copy link
Member

wargio commented Jan 29, 2024

also what you can do is build cutter using the bundled rizin and before building it, just apply the patch to the file.
This will help you avoiding issues when building stuff with rizin dev.

@XVilka
Copy link
Member

XVilka commented Jan 29, 2024

@GermanAizek I think the MinGW32 is the problem - we either support GCC or Clang for *nix systems, or MSVC and clang-cl on Windows. MinGW and MSYS2 aren't supported: rizinorg/rizin#337

Most Windows developers use MSVC so we decided to stick to it.

@wargio
Copy link
Member

wargio commented Jan 29, 2024

i strongly suggest to install windows sdk and then follow the one of the build scripts

Also if you want to build only rizin and test this, you can also do this and run the B command with extended logs e log.level=3

@GermanAizek
Copy link
Contributor Author

@GermanAizek I think the MinGW32 is the problem - we either support GCC or Clang for *nix systems, or MSVC and clang-cl on Windows. MinGW and MSYS2 aren't supported: rizinorg/rizin#337

Most Windows developers use MSVC so we decided to stick to it.

@XVilka, I tried to find solution and came across ur same topic 😆

image

@GermanAizek
Copy link
Contributor Author

@wargio,
I accidentally tried to run cmake configuration in rizinorg/rizin repository, I got it mixed up, I'm going to build Cutter now.

@wargio wargio changed the title Incorrect detection count threads Windows: incorrect detection of core count on NUMA hardware. Feb 13, 2024
@GermanAizek
Copy link
Contributor Author

@wargio, I can't install Qt 5 dependency for Windows, they apparently blocked access for VPN and Tor. On linux, build is successful.
Are there Qt release mirrors with offline installers instead online?

@wargio
Copy link
Member

wargio commented Feb 17, 2024

just build rizin (not in release mode) and run basefind like this

rizin -e log.level=2 -qc "B" firmware.bin

@wargio
Copy link
Member

wargio commented Feb 17, 2024

use a small file just to see how many threads spawns

$ rizin -e log.level=2 -qc "B"  rizin/test/bins/firmware/stm32f103-dapboot-v1.20-bluepill.bin
INFO: Cannot open directory '/usr/lib/rizin/plugins'
INFO: Loading /home/deroad/.local/lib/rizin/plugins/libcore_pdd.so
INFO: Loading /home/deroad/.local/lib/rizin/plugins/core_ghidra.so
INFO: Cannot open /home/deroad/.local/lib/rizin/plugins/jsdec
INFO: Loading /home/deroad/.local/lib/rizin/plugins/asm_ghidra.so
INFO: Cannot open /home/deroad/.local/lib/rizin/plugins/rz_ghidra_sleigh
INFO: Loading /home/deroad/.local/lib/rizin/plugins/analysis_ghidra.so
INFO: Loading /home/deroad/.local/lib/rizin/plugins/libswift.so
INFO: Loading /home/deroad/.local/lib/rizin/plugins/libmc7_analysis.so
INFO: Cannot open directory '/usr/lib/rizin/plugins'
VERBOSE: bin_file_strings: using 16 threads
INFO: goinfo: unsupported bin format 'any'
VERBOSE: bin_file_strings: using 16 threads
VERBOSE: basefind: 0x0000000000000873 'ãÑhqå¼â7JRX'
VERBOSE: basefind: 0x0000000000001920 '0123456789ABCDEF'
VERBOSE: basefind: 0x0000000000001931 'Devanarchy'
VERBOSE: basefind: 0x000000000000193c 'DAPBoot DFU Bootloader'
VERBOSE: basefind: 0x0000000000001953 'DAPBoot DFU'
VERBOSE: basefind: 0x000000000000198b 'devanlai.github.io/webdfu/dfu-util/'
INFO: basefind: located 6 strings
INFO: basefind: located 1459 pointers
VERBOSE: basefind: using 16 threads
score candidate  
-----------------
4     0x08000000
1     0x79ca6000

@GermanAizek
Copy link
Contributor Author

just build rizin (not in release mode) and run basefind like this

rizin -e log.level=2 -qc "B" firmware.bin

@wargio, im trying building on MinGW

PS C:\GIT\rizin> meson compile -C build
INFO: autodetecting backend as ninja
INFO: calculating backend command to run: C:\Strawberry\c\bin\ninja.EXE -C C:/GIT/rizin/build
ninja: Entering directory `C:/GIT/rizin/build'
[8/1942] Compiling C object subprojects/libdemangle/libdemangle.a.p/src_cxx_cp-demangle.c.obj
FAILED: subprojects/libdemangle/libdemangle.a.p/src_cxx_cp-demangle.c.obj
"ccache" "gcc" "-Isubprojects\libdemangle\libdemangle.a.p" "-I..\subprojects\libdemangle\include" "-I..\subprojects\libdemangle\src" "-fdiagnostics-color=always" "-D_FILE_OFFSET_BITS=64" "-Wall" "-Winvalid-pch" "-O3" "--std=gnu99" "--std=gnu99" "-Werror=sizeof-pointer-memaccess" "-fvisibility=hidden" "-DWITH_GPL=1" "-DWITH_SWIFT_DEMANGLER=1" -MD -MQ subprojects/libdemangle/libdemangle.a.p/src_cxx_cp-demangle.c.obj -MF "subprojects\libdemangle\libdemangle.a.p\src_cxx_cp-demangle.c.obj.d" -o subprojects/libdemangle/libdemangle.a.p/src_cxx_cp-demangle.c.obj "-c" ../subprojects/libdemangle/src/cxx/cp-demangle.c
In file included from C:/Strawberry/c/x86_64-w64-mingw32/include/stdlib.h:770,
                 from ../subprojects/libdemangle/src/cxx/cp-demangle.c:114:
../subprojects/libdemangle/src/cxx/libiberty.h:660:14: error: expected declaration specifiers or '...' before '(' token
  660 | extern void *_alloca(size_t) ATTRIBUTE_MALLOC;
      |              ^~~~~~~
[81/1942] Compiling C object subprojects/xz-5.4.3/src/liblzma/liblzma.a.p/lzma_lzma_encoder_optimum_normal.c.obj
ninja: build stopped: subcommand failed.

and switched to Embarcadero Clang 64 compiler

PS C:\GIT\rizin> meson --native-file=meson-native.txt compile
The Meson build system
Version: 1.3.1
Source dir: C:\GIT\rizin
Build dir: C:\GIT\rizin\compile
Build type: native build
Project name: rizin
Project version: v0.7.0

meson.build:1:0: ERROR: Unknown compiler(s): [['C:\\Program Files (x86)\\Embarcadero\\Studio\\21.0\\bin\\bcc64.exe']]

where file content meson-native.txt

[binaries]
c = 'C:\Program Files (x86)\Embarcadero\Studio\21.0\bin\bcc64.exe'
cpp = 'C:\Program Files (x86)\Embarcadero\Studio\21.0\bin\bcc64.exe'

I do not understand this Meson, it is very complex compared to CMake, which has a lot examples and simple documentation on official website.

@GermanAizek
Copy link
Contributor Author

GermanAizek commented Feb 28, 2024

@wargio, I managed to configure with MSVC Clang, but something is not going to.

[binaries]
c = 'C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\Llvm\bin\clang.exe'
cpp = 'C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\Llvm\bin\clang64.exe'
PS C:\GIT\rizin> ninja -C build install
ninja: Entering directory `build'
[1/1802] Compiling Windows resource subprojects/zlib-1.3/win32_zlib1.rc
FAILED: subprojects/zlib-1.3/subprojects_zlib-1.3_win32_zlib1.rc_zlib1.res
"C:\Program Files (x86)\Embarcadero\Studio\21.0\bin\rc.EXE" "-DGCC_WINDRES" "/nologo" "/fosubprojects/zlib-1.3/subprojects_zlib-1.3_win32_zlib1.rc_zlib1.res" "../subprojects/zlib-1.3/win32/zlib1.rc"
fatal error RC1106: invalid option: -ologo

I don't understand why path suddenly became Embarcadero from another compiler, how is this even possible?

@wargio
Copy link
Member

wargio commented Feb 29, 2024

set an environment variable like CC=clang

@GermanAizek
Copy link
Contributor Author

GermanAizek commented Feb 29, 2024

set an environment variable like CC=clang

im on windows its not work, incorrect detection core counts in Windows only.

CC=clang CXX=clang++ meson --native-file=meson-native.txt build

@GermanAizek
Copy link
Contributor Author

GermanAizek commented Mar 1, 2024

@wargio, not builded with Clang MSVC

  1. configure
PS C:\GIT\rizin>  meson --native-file=meson-native.txt build
The Meson build system
Version: 1.3.1
Source dir: C:\GIT\rizin
Build dir: C:\GIT\rizin\build
Build type: native build
Project name: rizin
Project version: v0.7.0
C compiler for the host machine: C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\Llvm\x64\bin\clang-cl.exe (clang-cl 16.0.5)
C linker for the host machine: lld-link lld-link 17.0.1
Host machine cpu family: x86_64
Host machine cpu: x86_64
Program python3 found: YES (C:\Program Files\Meson\meson.exe runpython)
Program git found: YES (C:\Program Files\Git\cmd\git.EXE)
Message: rizin lib version: 0.7
Library ws2_32 found: YES
Library wininet found: YES
Library psapi found: YES
Compiler for C supports arguments --std=gnu99: NO
Compiler for C supports arguments --std=c99: NO
Compiler for C supports arguments -Werror=sizeof-pointer-memaccess: YES
Compiler for C supports arguments -Wimplicit-fallthrough=3: NO
Compiler for C supports arguments -fcommon: YES
Compiler for C supports arguments -fvisibility=hidden: NO
meson.build:131: WARNING: Project targets '>=0.55.0' but uses feature introduced in '0.58.0': str.replace.
meson.build:132: WARNING: Project targets '>=0.55.0' but uses feature introduced in '0.58.0': str.replace.
meson.build:133: WARNING: Project targets '>=0.55.0' but uses feature introduced in '0.58.0': str.replace.
meson.build:134: WARNING: Project targets '>=0.55.0' but uses feature introduced in '0.58.0': str.replace.
meson.build:135: WARNING: Project targets '>=0.55.0' but uses feature introduced in '0.58.0': str.replace.
meson.build:136: WARNING: Project targets '>=0.55.0' but uses feature introduced in '0.58.0': str.replace.
meson.build:137: WARNING: Project targets '>=0.55.0' but uses feature introduced in '0.58.0': str.replace.
meson.build:167: WARNING: Project targets '>=0.55.0' but uses feature introduced in '0.58.0': str.replace.
Dependency capstone skipped: feature use_sys_capstone disabled

Executing subproject capstone-next

capstone-next| Project name: capstone
capstone-next| Project version: next
capstone-next| C compiler for the host machine: C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\Llvm\x64\bin\clang-cl.exe (clang-cl 16.0.5)
capstone-next| C linker for the host machine: lld-link lld-link 17.0.1
capstone-next| Compiler for C supports arguments -Wmaybe-uninitialized: NO
capstone-next| Build targets in project: 1
capstone-next| Subproject capstone-next finished.


Executing subproject libmspack

libmspack| Project name: libmspack
libmspack| Project version: 0.10.1alpha
libmspack| C compiler for the host machine: C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\Llvm\x64\bin\clang-cl.exe (clang-cl 16.0.5)
libmspack| C linker for the host machine: lld-link lld-link 17.0.1
libmspack| Has header "dlfcn.h" : NO
libmspack| Has header "inttypes.h" : YES
libmspack| Has header "stdint.h" : YES
libmspack| Has header "stdio.h" : YES
libmspack| Has header "stdlib.h" : YES
libmspack| Has header "strings.h" : NO
libmspack| Has header "string.h" : YES
libmspack| Has header "sys/stat.h" : YES
libmspack| Has header "sys/types.h" : YES
libmspack| Has header "unistd.h" : NO
libmspack| Checking for function "fseeko" : NO
libmspack| Checking for function "mkdir" : NO
libmspack| Checking for function "_mkdir" : YES
libmspack| Checking for function "towlower" : YES
libmspack| Checking if "mkdir has one argument" : links: NO
libmspack| Checking for size of "mode_t" : -1
libmspack| Checking for size of "off_t" : 4
libmspack| Checking for size of "size_t" : 8
libmspack| Checking for size of "long int" : 4
libmspack| Configuring config.h using configuration
libmspack| Build targets in project: 2
libmspack| Subproject libmspack finished.


Executing subproject xxhash

xxhash| Project name: xxhash
xxhash| Project version: 0.6.5
xxhash| C compiler for the host machine: C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\Llvm\x64\bin\clang-cl.exe (clang-cl 16.0.5)
xxhash| C linker for the host machine: lld-link lld-link 17.0.1
xxhash| Build targets in project: 3
xxhash| Subproject xxhash finished.


Executing subproject libdemangle

libdemangle| Project name: libdemangle
libdemangle| Project version: undefined
libdemangle| C compiler for the host machine: C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\Llvm\x64\bin\clang-cl.exe (clang-cl 16.0.5)
libdemangle| C linker for the host machine: lld-link lld-link 17.0.1
libdemangle| Compiler for C supports arguments --std=gnu99: NO (cached)
libdemangle| Compiler for C supports arguments --std=c99: NO (cached)
libdemangle| Build targets in project: 4
libdemangle| Subproject libdemangle finished.


Executing subproject blake3

blake3| Project name: blake3
blake3| Project version: 1.3.1
blake3| C compiler for the host machine: C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\Llvm\x64\bin\clang-cl.exe (clang-cl 16.0.5)
blake3| C linker for the host machine: lld-link lld-link 17.0.1
blake3| Has header "immintrin.h" : YES
blake3| Checking if "avx2" compiles: YES
blake3| Checking if "avx512vl" compiles: YES
blake3| Checking if "sse2" compiles: YES
blake3| Checking if "sse41" compiles: YES
blake3| Build targets in project: 9
blake3| Subproject blake3 finished.

Dependency openssl skipped: feature use_sys_openssl disabled
Dependency tree-sitter skipped: feature use_sys_tree_sitter disabled

Executing subproject tree-sitter

tree-sitter| Project name: tree-sitter
tree-sitter| Project version: undefined
tree-sitter| C compiler for the host machine: C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\Llvm\x64\bin\clang-cl.exe (clang-cl 16.0.5)
tree-sitter| C linker for the host machine: lld-link lld-link 17.0.1
tree-sitter| Build targets in project: 10
tree-sitter| Subproject tree-sitter finished.

Message: HAVE_PTRACE: false
Message: USE_PTRACE_WRAP: false
Message: RZ_CHECKS_LEVEL: 2
Library util found: NO
Library dl found: NO
Run-time dependency threads found: YES
Library m found: NO
Checking for function "clock_gettime" : NO
Header "features.h" has symbol "__GLIBC__" : NO
Library execinfo found: NO
Header "sys/personality.h" has symbol "ADDR_NO_RANDOMIZE" : NO
Header "sys/procctl.h" has symbol "PROC_ASLR_CTL" : NO
Checking if "have environ" : links: YES
Message: HAVE_ENVIRON: true
Checking if "target is ios" : links: NO
Message: IS_IOS: false
Checking for function "arc4random" : NO
Checking for function "arc4random_uniform" : NO
Checking for function "explicit_bzero" : NO
Checking for function "explicit_memset" : NO
Checking for function "clock_nanosleep" : NO
Checking for function "clock_gettime" with dependency : NO (cached)
Checking for function "sigaction" : NO
Checking for function "pipe" : NO
Checking for function "execv" : NO
Checking for function "execve" : NO
Checking for function "execvp" : NO
Checking for function "execl" : NO
Checking for function "system" : YES
Checking for function "realpath" : NO
Checking for function "fork" : NO
Checking for function "nice" : NO
Checking for function "copyfile" : NO
Checking for function "strlcpy" : NO
Checking for function "strnlen" : YES
Checking for function "shm_open" with dependency : NO
Checking for function "openpty" with dependency -lutil: NO
Checking for function "forkpty" with dependency -lutil: NO
Checking for function "login_tty" with dependency -lutil: NO
Checking for function "pipe2" : NO
Checking for function "copy_file_range" : NO
Checking for function "backtrace" with dependency -lexecinfo: NO
Checking for function "__builtin_bswap16" : YES
Checking for function "__builtin_bswap32" : YES
Checking for function "__builtin_bswap64" : YES
Checking for function "__builtin_clzll" : YES
Checking for function "posix_memalign" : NO
Checking for function "_aligned_malloc" : YES
Has header "linux/ashmem.h" : NO
Has header "sys/shm.h" : NO
Has header "sys/ipc.h" : NO
Has header "sys/mman.h" : NO
Has header "inttypes.h" : YES (cached)
Configuring rz_userconf.h using configuration
Message: Version Major: 00
Message: Version Minor: 70
Message: Version Patch: 00
Configuring rz_build_version.h using configuration
Dependency zlib skipped: feature use_sys_zlib disabled

Executing subproject zlib

zlib| Project name: zlib
zlib| Project version: 1.3
zlib| C compiler for the host machine: C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\Llvm\x64\bin\clang-cl.exe (clang-cl 16.0.5)
zlib| C linker for the host machine: lld-link lld-link 17.0.1
zlib| Has header "unistd.h" : NO (cached)
zlib| Has header "stdarg.h" : YES
zlib| Windows resource compiler: Microsoft (R) Windows (R) Resource Compiler Version 6.0.5724.0
zlib| Build targets in project: 13
zlib| Subproject zlib finished.

Dependency liblz4 skipped: feature use_sys_lz4 disabled

Executing subproject lz4

lz4| Project name: lz4
lz4| Project version: 1.9.4
lz4| C compiler for the host machine: C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\Llvm\x64\bin\clang-cl.exe (clang-cl 16.0.5)
lz4| C linker for the host machine: lld-link lld-link 17.0.1
lz4| Build targets in project: 14
lz4| Subproject lz4 finished.

Dependency liblzma skipped: feature use_sys_lzma disabled

Executing subproject liblzma

liblzma| Project name: liblzma
liblzma| Project version: 5.4.3
liblzma| C compiler for the host machine: C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\Llvm\x64\bin\clang-cl.exe (clang-cl 16.0.5)
liblzma| C linker for the host machine: lld-link lld-link 17.0.1
liblzma| Has header "byteswap.h" : NO
liblzma| Has header "CommonCrypto/CommonDigest.h" : NO
liblzma| Has header "dlfcn.h" : NO (cached)
liblzma| Has header "fcntl.h" : YES
liblzma| Has header "getopt.h" : NO
liblzma| Has header "inttypes.h" : YES (cached)
liblzma| Has header "limits.h" : YES
liblzma| Has header "memory.h" : YES
liblzma| Has header "minix/sha2.h" : NO
liblzma| Has header "sha256.h" : NO
liblzma| Has header "sha2.h" : NO
liblzma| Has header "stdbool.h" : YES
liblzma| Has header "stdint.h" : YES (cached)
liblzma| Has header "stdlib.h" : YES (cached)
liblzma| Has header "string.h" : YES (cached)
liblzma| Has header "strings.h" : NO (cached)
liblzma| Has header "sys/byteorder.h" : NO
liblzma| Has header "sys/endian.h" : NO
liblzma| Has header "sys/param.h" : NO
liblzma| Has header "sys/stat.h" : YES (cached)
liblzma| Has header "sys/time.h" : NO
liblzma| Has header "sys/types.h" : YES (cached)
liblzma| Has header "unistd.h" : NO (cached)
liblzma| Has header "immintrin.h" : YES (cached)
liblzma| Checking for function "wcwidth" : NO
liblzma| Checking for function "_futime" : YES
liblzma| Checking for function "futimens" : NO
liblzma| Checking for function "getopt_long" : NO
liblzma| Checking for function "mbrtowc" : YES
liblzma| Checking for function "posix_fadvise" : NO
liblzma| Checking whether type "struct stat" has member "st_atim.tv_nsec" : NO
liblzma| Checking whether type "struct stat" has member "st_atimespec.tv_nsec" : NO
liblzma| Checking whether type "struct stat" has member "st_atimensec" : NO
liblzma| Checking whether type "struct stat" has member "st_uatime" : NO
liblzma| Checking whether type "struct stat" has member "st_atim.st__tim.tv_nsec" : NO
liblzma| Checking for type "_Bool" : YES
liblzma| Checking for type "mbstate_t" : YES
liblzma| Checking for type "uintptr_t" : YES
liblzma| Checking for size of "size_t" : 8
liblzma| Configuring config.h using configuration
liblzma| Build targets in project: 15
liblzma| Subproject liblzma finished.

Dependency libzip skipped: feature use_sys_libzip disabled

Executing subproject libzip

libzip| Project name: libzip
libzip| Project version: 1.9.2
libzip| C compiler for the host machine: C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\Llvm\x64\bin\clang-cl.exe (clang-cl 16.0.5)
libzip| C linker for the host machine: lld-link lld-link 17.0.1
libzip| Program python3 found: YES (C:\Program Files\Meson\meson.exe runpython)
libzip| Dependency zlib found: YES 1.3 (overridden)
libzip| Checking for function "arc4random_buf" : NO
libzip| Checking for function "clonefile" : NO
libzip| Checking for function "clonefile" : NO
libzip| Checking for function "explicit_bzero" : NO
libzip| Checking for function "explicit_bzero" : NO
libzip| Checking for function "explicit_memset" : NO
libzip| Checking for function "explicit_memset" : NO
libzip| Checking for function "fileno" : YES
libzip| Checking for function "fseeko" : NO
libzip| Checking for function "fseeko" : NO (cached)
libzip| Checking for function "ftello" : NO
libzip| Checking for function "ftello" : NO
libzip| Checking for function "getprogname" : NO
libzip| Checking for function "getprogname" : NO
libzip| Checking for function "localtime_r" : NO
libzip| Checking for function "localtime_r" : NO
libzip| Checking for function "mkstemp" : NO
libzip| Checking for function "mkstemp" : NO
libzip| Checking for function "setmode" : YES
libzip| Checking for function "snprintf" : YES
libzip| Checking for function "strdup" : YES
libzip| Checking for function "stricmp" : YES
libzip| Checking for function "strtoll" : YES
libzip| Checking for function "strtoull" : YES
libzip| Checking for function "_close" : YES
libzip| Checking for function "_dup" : YES
libzip| Checking for function "_fdopen" : YES
libzip| Checking for function "_fileno" : YES
libzip| Checking for function "_setmode" : YES
libzip| Checking for function "_snprintf" : NO
libzip| Checking for function "_snprintf" : YES
libzip| Checking for function "_strdup" : YES
libzip| Checking for function "_stricmp" : YES
libzip| Checking for function "_strtoi64" : YES
libzip| Checking for function "_strtoui64" : YES
libzip| Checking for function "_umask" : YES
libzip| Checking for function "_unlink" : YES
libzip| Has header "stdbool.h" : YES (cached)
libzip| Has header "strings.h" : NO (cached)
libzip| Has header "unistd.h" : NO (cached)
libzip| Has header "dirent.h" : NO
libzip| Has header "fts.h" : NO
libzip| Has header "ndir.h" : NO
libzip| Has header "sys/dir.h" : NO
libzip| Has header "sys/ndir.h" : NO
libzip| Has header "sys/attr.h" : NO
libzip| Checking for size of "off_t" : -1
libzip| Checking for size of "off_t" : 4 (cached)
libzip| Checking for size of "size_t" : 8 (cached)
libzip| Configuring config.h using configuration
libzip| Has header "limits.h" : YES (cached)
libzip| Has header "inttypes.h" : YES (cached)
libzip| Checking for type "int8_t" : YES
libzip| Checking for type "uint8_t" : YES
libzip| Checking for type "int16_t" : YES
libzip| Checking for type "uint16_t" : YES
libzip| Checking for type "int32_t" : YES
libzip| Checking for type "uint32_t" : YES
libzip| Checking for type "int64_t" : YES
libzip| Checking for type "uint64_t" : YES
libzip| Checking for type "__int8" : YES
libzip| Checking for type "__int16" : YES
libzip| Checking for type "__int32" : YES
libzip| Checking for type "__int64" : YES
libzip| Configuring zipconf.h using configuration
libzip| Library advapi32 found: YES
libzip| Library bcrypt found: YES
libzip| Build targets in project: 17
libzip| Subproject libzip finished.

Dependency libzstd skipped: feature use_sys_libzstd disabled

Executing subproject zstd

zstd| Project name: zstd
zstd| Project version: 1.5.5
zstd| C compiler for the host machine: C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\Llvm\x64\bin\clang-cl.exe (clang-cl 16.0.5)
zstd| C linker for the host machine: lld-link lld-link 17.0.1
zstd| Library m found: NO
zstd| Run-time dependency threads found: YES
zstd| Dependency zlib found: YES 1.3 (overridden)
zstd| Dependency liblzma found: YES 5.4.3 (overridden)
zstd| Dependency lz4 from subproject subprojects/lz4-1.9.4 found: YES 1.9.4
zstd| Message: Enable legacy support back to version 0.5
zstd| Message: Enable multi-threading support
zstd| Did not find pkg-config by name 'pkg-config'
zstd| Found pkg-config: NO
zstd| Build targets in project: 18
zstd| Subproject zstd finished.


Executing subproject mpc

mpc| Project name: mpc
mpc| Project version: d59264ae27228176f5b731871df1a87d7abbb5c8
mpc| C compiler for the host machine: C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\Llvm\x64\bin\clang-cl.exe (clang-cl 16.0.5)
mpc| C linker for the host machine: lld-link lld-link 17.0.1
mpc| Build targets in project: 19
mpc| Subproject mpc finished.


Executing subproject yxml

yxml| Project name: yxml
yxml| Project version: 66507906673bc6159d5d620414479954c9c21c24
yxml| C compiler for the host machine: C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\Llvm\x64\bin\clang-cl.exe (clang-cl 16.0.5)
yxml| C linker for the host machine: lld-link lld-link 17.0.1
yxml| Build targets in project: 20
yxml| Subproject yxml finished.

WARNING: Tried to mix libraries for machines build machine and host machine in target 'sdb_native' This will fail in cross build.

Executing subproject nettle

nettle| Project name: nettle
nettle| Project version: 3.7.3
nettle| C compiler for the host machine: C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\Llvm\x64\bin\clang-cl.exe (clang-cl 16.0.5)
nettle| C linker for the host machine: lld-link lld-link 17.0.1
nettle| Build targets in project: 26
nettle| Subproject nettle finished.

Found CMake: C:\Program Files\CMake\bin\cmake.EXE (3.27.3)
WARNING: CMake Toolchain: Failed to determine CMake compilers state
Run-time dependency rzgdb found: NO (tried pkgconfig and cmake)
Looking for a fallback subproject for the dependency rzgdb

Executing subproject rzgdb

rzgdb| Project name: rzw32dbg_wrap
rzgdb| Project version: undefined
rzgdb| C compiler for the host machine: C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\Llvm\x64\bin\clang-cl.exe (clang-cl 16.0.5)
rzgdb| C linker for the host machine: lld-link lld-link 17.0.1
rzgdb| Dependency rz_util found: YES v0.7.0 (overridden)
rzgdb| Dependency rz_cons found: YES v0.7.0 (overridden)
rzgdb| Dependency rz_socket found: YES v0.7.0 (overridden)
rzgdb| Build targets in project: 30
rzgdb| Subproject rzgdb finished.

Dependency rzgdb found: YES undefined (overridden)
Run-time dependency rzwinkd found: NO (tried pkgconfig and cmake)
Looking for a fallback subproject for the dependency rzwinkd

Executing subproject rzwinkd

rzwinkd| Project name: rzwinkd
rzwinkd| Project version: undefined
rzwinkd| C compiler for the host machine: C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\Llvm\x64\bin\clang-cl.exe (clang-cl 16.0.5)
rzwinkd| C linker for the host machine: lld-link lld-link 17.0.1
rzwinkd| Dependency rz_util found: YES v0.7.0 (overridden)
rzwinkd| Dependency rz_socket found: YES v0.7.0 (overridden)
rzwinkd| Dependency rz_hash found: YES v0.7.0 (overridden)
rzwinkd| Dependency rz_crypto found: YES v0.7.0 (overridden)
rzwinkd| Build targets in project: 31
rzwinkd| Subproject rzwinkd finished.

Dependency rzwinkd found: YES undefined (overridden)
Run-time dependency rzar found: NO (tried pkgconfig and cmake)
Looking for a fallback subproject for the dependency rzar

Executing subproject rzar

rzar| Project name: rzar
rzar| Project version: undefined
rzar| C compiler for the host machine: C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\Llvm\x64\bin\clang-cl.exe (clang-cl 16.0.5)
rzar| C linker for the host machine: lld-link lld-link 17.0.1
rzar| Dependency rz_util found: YES v0.7.0 (overridden)
rzar| Build targets in project: 32
rzar| Subproject rzar finished.

Dependency rzar found: YES undefined (overridden)
Run-time dependency rzqnx found: NO (tried pkgconfig and cmake)
Looking for a fallback subproject for the dependency rzqnx

Executing subproject rzqnx

rzqnx| Project name: rzqnx
rzqnx| Project version: undefined
rzqnx| C compiler for the host machine: C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\Llvm\x64\bin\clang-cl.exe (clang-cl 16.0.5)
rzqnx| C linker for the host machine: lld-link lld-link 17.0.1
rzqnx| Dependency rz_util found: YES v0.7.0 (overridden)
rzqnx| Dependency rz_socket found: YES v0.7.0 (overridden)
rzqnx| Build targets in project: 33
rzqnx| Subproject rzqnx finished.

Dependency rzqnx found: YES undefined (overridden)
Run-time dependency rzw32dbg_wrap found: NO (tried pkgconfig and cmake)
Looking for a fallback subproject for the dependency rzw32dbg_wrap

Executing subproject rzw32dbg_wrap

rzw32dbg_wrap| Project name: rzw32dbg_wrap
rzw32dbg_wrap| Project version: undefined
rzw32dbg_wrap| C compiler for the host machine: C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\Llvm\x64\bin\clang-cl.exe (clang-cl 16.0.5)
rzw32dbg_wrap| C linker for the host machine: lld-link lld-link 17.0.1
rzw32dbg_wrap| Build targets in project: 34
rzw32dbg_wrap| Subproject rzw32dbg_wrap finished.

Dependency rzw32dbg_wrap found: YES undefined (overridden)
Message: Use bundled magic library
Run-time dependency tree-sitter-c found: NO (tried pkgconfig and cmake)
Looking for a fallback subproject for the dependency tree-sitter-c

Executing subproject tree-sitter-c

tree-sitter-c| Project name: tree-sitter-c
tree-sitter-c| Project version: undefined
tree-sitter-c| C compiler for the host machine: C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\Llvm\x64\bin\clang-cl.exe (clang-cl 16.0.5)
tree-sitter-c| C linker for the host machine: lld-link lld-link 17.0.1
tree-sitter-c| Dependency tree-sitter found: YES undefined (overridden)
tree-sitter-c| Build targets in project: 86
tree-sitter-c| Subproject tree-sitter-c finished.

Dependency tree-sitter-c found: YES undefined (overridden)
Run-time dependency rzspp found: NO (tried pkgconfig and cmake)
Looking for a fallback subproject for the dependency rzspp

Executing subproject rzspp

rzspp| Project name: rzspp
rzspp| Project version: undefined
rzspp| C compiler for the host machine: C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\Llvm\x64\bin\clang-cl.exe (clang-cl 16.0.5)
rzspp| C linker for the host machine: lld-link lld-link 17.0.1
rzspp| Dependency rz_util found: YES v0.7.0 (overridden)
rzspp| Build targets in project: 242
rzspp| Subproject rzspp finished.

Dependency rzspp found: YES undefined (overridden)
Dependency rzgdb found: YES undefined (overridden)
Dependency rzwinkd found: YES undefined (overridden)
Dependency rzqnx found: YES undefined (overridden)
Dependency rzw32dbg_wrap found: YES undefined (overridden)
librz\core\cmd_descs\meson.build:49: WARNING: PyYAML python module was not found, using cmd_descs.c/cmd_descs.h from source directory. Install PyYAML (either from your package manager or through pip) if you need to modify cmd_descs files.
Run-time dependency rizin-shell-parser found: NO (tried pkgconfig and cmake)
Looking for a fallback subproject for the dependency rizin-shell-parser

Executing subproject rizin-shell-parser

rizin-shell-parser| Project name: rizin-shell-parser
rizin-shell-parser| Project version: undefined
rizin-shell-parser| C compiler for the host machine: C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\Llvm\x64\bin\clang-cl.exe (clang-cl 16.0.5)
rizin-shell-parser| C linker for the host machine: lld-link lld-link 17.0.1
rizin-shell-parser| Dependency tree-sitter found: YES undefined (overridden)
rizin-shell-parser| Program tree-sitter found: NO
rizin-shell-parser| Program node found: YES (C:\Program Files\nodejs\node.EXE)
rizin-shell-parser| Build targets in project: 334
rizin-shell-parser| Subproject rizin-shell-parser finished.

Dependency rizin-shell-parser found: YES undefined (overridden)
Dependency rzgdb found: YES undefined (overridden)
Run-time dependency rzheap found: NO (tried pkgconfig and cmake)
Looking for a fallback subproject for the dependency rzheap

Executing subproject rzheap

rzheap| Project name: rzheap
rzheap| Project version: undefined
rzheap| C compiler for the host machine: C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\Llvm\x64\bin\clang-cl.exe (clang-cl 16.0.5)
rzheap| C linker for the host machine: lld-link lld-link 17.0.1
rzheap| Build targets in project: 334
rzheap| Subproject rzheap finished.

Dependency rzheap found: YES undefined (overridden)
Configuring rz_utilConfig.cmake using configuration
Configuring rz_demanglerConfig.cmake using configuration
Configuring rz_socketConfig.cmake using configuration
Configuring rz_hashConfig.cmake using configuration
Configuring rz_cryptoConfig.cmake using configuration
Configuring rz_consConfig.cmake using configuration
Configuring rz_diffConfig.cmake using configuration
Configuring rz_ioConfig.cmake using configuration
Configuring rz_bpConfig.cmake using configuration
Configuring rz_syscallConfig.cmake using configuration
Configuring rz_searchConfig.cmake using configuration
Configuring rz_magicConfig.cmake using configuration
Configuring rz_flagConfig.cmake using configuration
Configuring rz_regConfig.cmake using configuration
Configuring rz_typeConfig.cmake using configuration
Configuring rz_binConfig.cmake using configuration
Configuring rz_configConfig.cmake using configuration
Configuring rz_parseConfig.cmake using configuration
Configuring rz_langConfig.cmake using configuration
Configuring rz_asmConfig.cmake using configuration
Configuring rz_ilConfig.cmake using configuration
Configuring rz_analysisConfig.cmake using configuration
Configuring rz_signConfig.cmake using configuration
Configuring rz_eggConfig.cmake using configuration
Configuring rz_debugConfig.cmake using configuration
Configuring rz_coreConfig.cmake using configuration
Configuring rz_mainConfig.cmake using configuration
Configuring config.h using configuration
Configuring RizinConfig.cmake using configuration
Configuring test_config.h using configuration
Compiler for C supports arguments -Wno-unused-result: YES
Compiler for C supports arguments -Wno-unused-result: YES (cached)
Compiler for C supports arguments -Wno-unused-result: YES (cached)
Compiler for C supports arguments -Wno-unused-result: YES (cached)
Configuring test_config.h using configuration
meson.build:726: WARNING: Project targets '>=0.55.0' but uses feature introduced in '0.57.0': Passing file object to script parameter of add_dist_script.
Build targets in project: 470
WARNING: Project specifies a minimum meson_version '>=0.55.0' but uses features which were added in newer versions:
 * 0.57.0: {'Passing file object to script parameter of add_dist_script'}
 * 0.58.0: {'str.replace'}

rizin v0.7.0

  Directories
    prefix                    : c:\\
    bindir                    : bin
    libdir                    : lib
    includedir                : include\\librz
    datadir                   : share
    wwwroot                   : share\\www
    sdb                       : share
    sigdb                     : share\\sigdb
    themes                    : share\\cons
    fortunes                  : share\\fortunes
    flags                     : share\\flag
    hud                       : share\\hud
    plugins                   : lib\\rizin\\plugins
    bindings                  : lib\\rizin-bindings

  Configuration
    GPL code                  : YES
    Install sigdb             : NO
    Swift demangler           : YES
    Debugger enabled          : YES
    Capstone version          : next
    System magic library      : NO
    System xxhash library     : NO
    System libmspack library  : NO
    System openssl library    : NO
    System capstone library   : NO
    System tree-sitter library: NO
    System lz4 library        : NO
    System lzma library       : NO
    System zlib library       : NO
    System zstd library       : NO
    System zip library        : NO
    Use ptrace-wrap           : NO
    Use RPATH                 : disabled

  Plugins
    Analysis Plugins          : 6502, 8051, amd29k, arm_cs, avr, bf, chip8, cil, cr16, dalvik, ebc, gb, h8300, hexagon,
                                i4004, i8080, java, luac, m68k_cs, m680x_cs, malbolge, mcore, mips_cs, msp430, null,
                                or1k, pic, ppc_cs, propeller, pyc, rl78, rsp, snes, sparc_cs, spc700, sysz, tms320,
                                v810, v850, wasm, x86_cs, xap, xcore_cs, riscv_cs, tricore_cs, arc, cris, mips_gnu,
                                nios2, riscv, sh, sparc_gnu, vax, xtensa, z80
    Assembler Plugins         : 6502, 8051, amd29k, arm_as, arm_cs, avr, bf, chip8, cil, cr16, dalvik, dcpu16, ebc, gb,
                                h8300, hexagon, i4004, i8080, java, lh5801, lm32, luac, m68k_cs, m680x_cs, malbolge,
                                mcore, mcs96, mips_cs, msp430, null, or1k, pic, ppc_as, ppc_cs, propeller, pyc, rl78,
                                rsp, sh, snes, sparc_cs, spc700, sysz, tms320, tms320c64x, v810, v850, wasm, x86_as,
                                x86_cs, x86_nasm, x86_nz, xap, xcore_cs, riscv_cs, tricore, arc, cris_gnu, hppa_gnu,
                                lanai_gnu, mips_gnu, nios2, riscv, sparc_gnu, vax, xtensa, z80
    Binary Plugins            : any, art, avr, bf, bflt, bios, bootimg, cgc, coff, dex, dmp64, dol, dyldcache, elf,
                                elf64, java, le, luac, mach0, mach064, mbn, mdmp, menuet, mz, ne, nes, nin3ds, ninds,
                                ningb, ningba, nro, nso, omf, qnx, p9, pe, pe64, pebble, prg, psxexe, pyc, sfc, smd,
                                sms, spc700, symbols, te, vsf, wasm, xbe, xnu_kernelcache, z64, zimg
    BinXtr Plugins            : xtr_fatmach0, xtr_sep64
    Breakpoint Plugins        : arm, bf, mips, ppc, sh, x86
    Core Plugins              : java, dex
    Crypto Plugins            : aes, aes_cbc, base64, base91, blowfish, cps2, des, punycode, rc2, rc4, rc6, rol, ror,
                                rot, serpent, xor, sm4_ecb
    Debug Plugins             : bf, bochs, dmp, gdb, io, null, rap, winkd, qnx, native, windbg
    Egg Plugins               : exec, xor
    IO Plugins                : ar, fd, bfdbg, bochs, debug, default, dmp, gdb, gzip, http, ihex, srec, mach, malloc,
                                null, procpid, ptrace, rzpipe, rzweb, rap, self, shm, sparse, tcp, winkd, winedbg, zip,
                                qnx, windbg, w32dbg, w32
    Lang Plugins              : lib, pipe
    Hash Plugins              : md2, md4, md5, sha1, sha256, sha384, sha512, sm3, blake3, fletcher8, fletcher16,
                                fletcher32, fletcher64, adler32, crca_crc(8smbus, 8cdma2000, 8darc, 8dvbs2, 8ebu,
                                8icode, 8itu, 8maxim, 8rohc, 8wcdma, 15can, 16, 16citt, 16usb, 16hdlc, 16augccitt,
                                16buypass, 16cdma2000, 16dds110, 16dectr, 16dectx, 16dnp, 16en13757, 16genibus,
                                16maxim, 16mcrf4xx, 16riello, 16t10dif, 16teledisk, 16tms37157, a, 16kermit, 16modbus,
                                16x25, 16xmodem, 24, 32, 32ecma267, 32c, 32bzip2, 32d, 32mpeg2, 32posix, 32q, 32jam,
                                32xfer, 64, 64ecma182, 64we, 64xz, 64iso), xor8, xor16, xxhash32, ssdeep, parity,
                                entropy, entropy_fract
    Parse Plugins             : 6502_pseudo, arm_pseudo, att2intel, avr_pseudo, chip8_pseudo, tms320_pseudo,
                                dalvik_pseudo, m68k_pseudo, mips_pseudo, ppc_pseudo, v850_pseudo, wasm_pseudo,
                                x86_pseudo, sh_pseudo, riscv_pseudo, z80_pseudo
    Demangler Plugins         : java, msvc, objc, pascal, cpp, rust, swift

  Subprojects
    blake3                    : YES
    capstone-next             : YES
    libdemangle               : YES
    liblzma                   : YES
    libmspack                 : YES
    libzip                    : YES
    lz4                       : YES
    mpc                       : YES
    nettle                    : YES
    rizin-shell-parser        : YES
    rzar                      : YES
    rzgdb                     : YES
    rzheap                    : YES
    rzqnx                     : YES
    rzspp                     : YES
    rzw32dbg_wrap             : YES
    rzwinkd                   : YES
    tree-sitter               : YES
    tree-sitter-c             : YES
    xxhash                    : YES
    yxml                      : YES
    zlib                      : YES
    zstd                      : YES

  User defined options
    Native files              : meson-native.txt

Found ninja-1.11.1 at "C:\Program Files\Meson\ninja.EXE"
WARNING: Running the setup command as `meson [options]` instead of `meson setup [options]` is ambiguous and deprecated.
PS C:\GIT\rizin>
  1. building log

https://ctxt.io/2/AAAIfSHFEg

Selected compiler MSVC Clang-cl

@wargio
Copy link
Member

wargio commented Mar 1, 2024

did you run ninja -C build ?

@GermanAizek
Copy link
Contributor Author

did you run ninja -C build ?

PS C:\GIT\rizin> ninja -C build
ninja: Entering directory `build'
[7/1960] Compiling Windows resource subprojects/zlib-1.3/win32_zlib1.rc
FAILED: subprojects/zlib-1.3/subprojects_zlib-1.3_win32_zlib1.rc_zlib1.res
"C:\Program Files (x86)\Embarcadero\Studio\21.0\bin\rc.EXE" "-DGCC_WINDRES" "/nologo" "/fosubprojects/zlib-1.3/subprojects_zlib-1.3_win32_zlib1.rc_zlib1.res" "../subprojects/zlib-1.3/win32/zlib1.rc"
fatal error RC1106: invalid option: -ologo
[79/1960] Compiling C object subprojects/xz-5.4.3/src/liblzma/liblzma.a.p/.._common_tuklib_physmem.c.obj
../subprojects/xz-5.4.3/src/common/tuklib_physmem.c(93,7): warning: 'GetVersion' is deprecated [-Wdeprecated-declarations]
        if ((GetVersion() & 0xFF) >= 5) {
             ^
C:\Program Files (x86)\Windows Kits\10\Include\10.0.22621.0\um\sysinfoapi.h(153,1): note: 'GetVersion' has been explicitly marked deprecated here
NOT_BUILD_WINDOWS_DEPRECATE
^
C:\Program Files (x86)\Windows Kits\10\Include\10.0.22621.0\um\sysinfoapi.h(37,49): note: expanded from macro 'NOT_BUILD_WINDOWS_DEPRECATE'
# define NOT_BUILD_WINDOWS_DEPRECATE __declspec(deprecated)
                                                ^
1 warning generated.
[80/1960] Compiling C object subprojects/lz4-1.9.4/liblz4.a.p/lib_lz4.c.obj
ninja: build stopped: subcommand failed.
PS C:\GIT\rizin>

@wargio
Copy link
Member

wargio commented Mar 1, 2024

this is how i build it on windows from cmd.exe (ensure you have the python apps, meson & ninja in the PATH env)

"C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x64
mkdir build
cd build
set PACKAGE_NAME=Cutter-Windows-x86_64
        cmake ^
          -DCMAKE_BUILD_TYPE=Release ^
          -DCUTTER_USE_BUNDLED_RIZIN=ON ^
          -DCUTTER_ENABLE_PYTHON=OFF ^
          -DCUTTER_ENABLE_PYTHON_BINDINGS=OFF ^
          -DCUTTER_ENABLE_PACKAGING=ON ^
          -DCUTTER_ENABLE_SIGDB=OFF ^
          -DCUTTER_PACKAGE_DEPENDENCIES=ON ^
          -DCUTTER_PACKAGE_RZ_GHIDRA=ON ^
          -DCUTTER_PACKAGE_RZ_LIBSWIFT=OFF ^
          -DCUTTER_PACKAGE_RZ_LIBYARA=OFF ^
          -DCUTTER_PACKAGE_RZ_SILHOUETTE=OFF ^
          -DCUTTER_PACKAGE_JSDEC=ON ^
          -DCUTTER_ENABLE_DEPENDENCY_DOWNLOADS=ON ^
          -DCPACK_PACKAGE_FILE_NAME=%PACKAGE_NAME% ^
          -G Ninja ^
          ..
        cmake --build . --config Release
        cmake --build . --config Release --target package

for rizin:

"C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x64
meson setup build
ninja -C build

@wargio
Copy link
Member

wargio commented Mar 1, 2024

change the path of C:\Program Files (x86)\Microsoft Visual Studio\2019 with whatever version of visual studio you have.

@GermanAizek
Copy link
Contributor Author

GermanAizek commented Mar 1, 2024

for rizin:

"C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x64
meson setup build
ninja -C build

it worked! but not runs from binrz
image
image

@GermanAizek
Copy link
Contributor Author

Im copy all .dll to build/rzbin/rizin and run this command

use a small file just to see how many threads spawns

$ rizin -e log.level=2 -qc "B"  rizin/test/bins/firmware/stm32f103-dapboot-v1.20-bluepill.bin
INFO: Cannot open directory '/usr/lib/rizin/plugins'
INFO: Loading /home/deroad/.local/lib/rizin/plugins/libcore_pdd.so
INFO: Loading /home/deroad/.local/lib/rizin/plugins/core_ghidra.so
INFO: Cannot open /home/deroad/.local/lib/rizin/plugins/jsdec
INFO: Loading /home/deroad/.local/lib/rizin/plugins/asm_ghidra.so
INFO: Cannot open /home/deroad/.local/lib/rizin/plugins/rz_ghidra_sleigh
INFO: Loading /home/deroad/.local/lib/rizin/plugins/analysis_ghidra.so
INFO: Loading /home/deroad/.local/lib/rizin/plugins/libswift.so
INFO: Loading /home/deroad/.local/lib/rizin/plugins/libmc7_analysis.so
INFO: Cannot open directory '/usr/lib/rizin/plugins'
VERBOSE: bin_file_strings: using 16 threads
INFO: goinfo: unsupported bin format 'any'
VERBOSE: bin_file_strings: using 16 threads
VERBOSE: basefind: 0x0000000000000873 'ãÑhqå¼â7JRX'
VERBOSE: basefind: 0x0000000000001920 '0123456789ABCDEF'
VERBOSE: basefind: 0x0000000000001931 'Devanarchy'
VERBOSE: basefind: 0x000000000000193c 'DAPBoot DFU Bootloader'
VERBOSE: basefind: 0x0000000000001953 'DAPBoot DFU'
VERBOSE: basefind: 0x000000000000198b 'devanlai.github.io/webdfu/dfu-util/'
INFO: basefind: located 6 strings
INFO: basefind: located 1459 pointers
VERBOSE: basefind: using 16 threads
score candidate  
-----------------
4     0x08000000
1     0x79ca6000
C:\GIT\rizin\build\binrz\rizin>rizin.exe -e log.level=2 -qc "B" dapboot-v1.20-bluepillplusstm32.bin
INFO: Cannot open directory c:\lib\rizin\plugins
INFO: Cannot open directory C:\Users\semenov\.local\lib\rizin\plugins
INFO: Cannot open directory c:\lib\rizin\plugins
VERBOSE: bin_file_strings: using 72 threads
INFO: goinfo: unsupported bin format 'any'
VERBOSE: bin_file_strings: using 72 threads
VERBOSE: basefind: 0x0000000000000873 'ãÑhqå¼â7JRX'
VERBOSE: basefind: 0x0000000000001920 '0123456789ABCDEF'
VERBOSE: basefind: 0x0000000000001931 'Devanarchy'
VERBOSE: basefind: 0x000000000000193c 'DAPBoot DFU Bootloader'
VERBOSE: basefind: 0x0000000000001953 'DAPBoot DFU'
VERBOSE: basefind: 0x000000000000198b 'devanlai.github.io/webdfu/dfu-util/'
INFO: basefind: located 6 strings
INFO: basefind: located 1461 pointers
VERBOSE: basefind: using 72 threads
score candidate
-----------------
1     0x4300dab8

C:\GIT\rizin\build\binrz\rizin>

@XVilka, I confirm that it is now using all possible logical cpu threads.

@GermanAizek
Copy link
Contributor Author

@wargio, now it remains to build Cutter, it's good that I was able to download Qt on Windows. There should be no problems with CMake.

@GermanAizek
Copy link
Contributor Author

@wargio, damn, I won't be able to check right away, I have Qt 6.6.2, let me help you port Cutter to Qt6, I just rewrote AQemu Qt5 from Linux to Qt6 Windows on this week. https://github.com/AQEMU/aqemu

@wargio
Copy link
Member

wargio commented Mar 1, 2024

ah, i forgot. to build the windows cutter, you will need the cutter dependencies.
you need to download them using the script

C:\msys64\usr\bin\bash -lc "cd cutter && scripts/fetch_deps.sh"
set "CUTTER_DEPS=cutter\cutter-deps"
set "PATH=%CUTTER_DEPS%\qt\bin;%PATH%"

@GermanAizek
Copy link
Contributor Author

@wargio, I dont see in CMakeLists.txt XD

OPTION(CUTTER_QT6 "Use QT6" OFF)

@wargio
Copy link
Member

wargio commented Mar 1, 2024

CUTTER_QT6

For that just add -DCUTTER_QT6=ON

@GermanAizek
Copy link
Contributor Author

@wargio,

-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - not found
-- Found Threads: TRUE
-- Performing Test HAVE_STDATOMIC
-- Performing Test HAVE_STDATOMIC - Success
-- Found WrapAtomic: TRUE
CMake Warning at C:/Program Files/CMake/share/cmake-3.27/Modules/CMakeFindDependencyMacro.cmake:76 (find_package):
  By not providing "FindQt6GuiTools.cmake" in CMAKE_MODULE_PATH this project
  has asked CMake to find a package configuration file provided by
  "Qt6GuiTools", but CMake did not find one.

  Could not find a package configuration file provided by "Qt6GuiTools"
  (requested version 6.6.2) with any of the following names:

    Qt6GuiToolsConfig.cmake
    qt6guitools-config.cmake

  Add the installation prefix of "Qt6GuiTools" to CMAKE_PREFIX_PATH or set
  "Qt6GuiTools_DIR" to a directory containing one of the above files.  If
  "Qt6GuiTools" provides a separate development package or SDK, be sure it
  has been installed.
Call Stack (most recent call first):
  C:/Qt/6.6.2/msvc2019_64/lib/cmake/Qt6WidgetsTools/Qt6WidgetsToolsDependencies.cmake:9 (find_dependency)
  C:/Qt/6.6.2/msvc2019_64/lib/cmake/Qt6WidgetsTools/Qt6WidgetsToolsConfig.cmake:33 (include)
  C:/Qt/6.6.2/msvc2019_64/lib/cmake/Qt6/QtPublicDependencyHelpers.cmake:65 (find_package)
  C:/Qt/6.6.2/msvc2019_64/lib/cmake/Qt6Widgets/Qt6WidgetsDependencies.cmake:34 (_qt_internal_find_tool_dependencies)
  C:/Qt/6.6.2/msvc2019_64/lib/cmake/Qt6Widgets/Qt6WidgetsConfig.cmake:40 (include)
  C:/Qt/6.6.2/msvc2019_64/lib/cmake/Qt6/Qt6Config.cmake:164 (find_package)
  CMakeLists.txt:93 (find_package)


CMake Warning at C:/Qt/6.6.2/msvc2019_64/lib/cmake/Qt6/QtPublicDependencyHelpers.cmake:65 (find_package):
  Found package configuration file:

    C:/Qt/6.6.2/msvc2019_64/lib/cmake/Qt6WidgetsTools/Qt6WidgetsToolsConfig.cmake

  but it set Qt6WidgetsTools_FOUND to FALSE so package "Qt6WidgetsTools" is
  considered to be NOT FOUND.  Reason given by package:

  Qt6WidgetsTools could not be found because dependency Qt6GuiTools could not
  be found.

Call Stack (most recent call first):
  C:/Qt/6.6.2/msvc2019_64/lib/cmake/Qt6Widgets/Qt6WidgetsDependencies.cmake:34 (_qt_internal_find_tool_dependencies)
  C:/Qt/6.6.2/msvc2019_64/lib/cmake/Qt6Widgets/Qt6WidgetsConfig.cmake:40 (include)
  C:/Qt/6.6.2/msvc2019_64/lib/cmake/Qt6/Qt6Config.cmake:164 (find_package)
  CMakeLists.txt:93 (find_package)


CMake Warning at C:/Qt/6.6.2/msvc2019_64/lib/cmake/Qt6/Qt6Config.cmake:164 (find_package):
  Found package configuration file:

    C:/Qt/6.6.2/msvc2019_64/lib/cmake/Qt6Widgets/Qt6WidgetsConfig.cmake

  but it set Qt6Widgets_FOUND to FALSE so package "Qt6Widgets" is considered
  to be NOT FOUND.  Reason given by package:

  Qt6Widgets could not be found because dependency Qt6WidgetsTools could not
  be found.

  Configuring with --debug-find-pkg=Qt6WidgetsTools might reveal details why
  the package was not found.

  Configuring with -DQT_DEBUG_FIND_PACKAGE=ON will print the values of some
  of the path variables that find_package uses to try and find the package.

Call Stack (most recent call first):
  CMakeLists.txt:93 (find_package)


CMake Error at CMakeLists.txt:93 (find_package):
  Found package configuration file:

    C:/Qt/6.6.2/msvc2019_64/lib/cmake/Qt6/Qt6Config.cmake

  but it set Qt6_FOUND to FALSE so package "Qt6" is considered to be NOT
  FOUND.  Reason given by package:

  Failed to find required Qt component "Widgets".

  Expected Config file at
  "C:/Qt/6.6.2/msvc2019_64/lib/cmake/Qt6Widgets/Qt6WidgetsConfig.cmake"
  exists



  Configuring with --debug-find-pkg=Qt6Widgets might reveal details why the
  package was not found.

  Configuring with -DQT_DEBUG_FIND_PACKAGE=ON will print the values of some
  of the path variables that find_package uses to try and find the package.



-- Configuring incomplete, errors occurred!

C:\GIT\cutter\build>

@wargio
Copy link
Member

wargio commented Mar 1, 2024

i never tried to build cutter on windows with qt6, but i strongly suggest to use the cutter-deps thingy i wrote above. you will have QT5 build but it does work

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants