WerWolv / ImHex

🔍 A Hex Editor for Reverse Engineers, Programmers and people who value their retinas when working at 3 AM.
https://imhex.werwolv.net
GNU General Public License v2.0
42.38k stars 1.86k forks source link

[Bug] Building the current version on macOS is not possible #1319

Closed janwiesemann closed 10 months ago

janwiesemann commented 10 months ago

Operating System

MacOS

What's the issue you encountered?

I'm trying to contibute to ImHex but sadly I'm running into a lot of issues following the "how to build" guide. Cloning the repo works. Everything else does not. I'm not to familiar with cmake and thus im unable to fix the following issues.

  1. Brewfile: Installing the dependencies with your supplied brew file does not work correctly. Bewlow you'll se the issue and afterwards with the tapping of the homebrew/core repo.
    
    janwiesemann@Jans-MBP ImHex % brew bundle --no-lock --file dist/Brewfile
    Warning: 'gst-plugins-base' formula is unreadable: No available formula with the name "homebrew/core/gst-plugins-base".
    Please tap it and then try again: brew tap homebrew/core
    Warning: 'gst-libav' formula is unreadable: No available formula with the name "homebrew/core/gst-libav".
    Please tap it and then try again: brew tap homebrew/core
    Warning: 'gst-plugins-bad' formula is unreadable: No available formula with the name "homebrew/core/gst-plugins-bad".
    Please tap it and then try again: brew tap homebrew/core
    Warning: 'gst-plugins-good' formula is unreadable: No available formula with the name "homebrew/core/gst-plugins-good".
    Please tap it and then try again: brew tap homebrew/core
    Warning: 'gst-plugins-ugly' formula is unreadable: No available formula with the name "homebrew/core/gst-plugins-ugly".
    Please tap it and then try again: brew tap homebrew/core
    Using mbedtls
    Using nlohmann-json
    Using cmake
    Using ccache
    Using freetype2
    Using libmagic
    Using pkg-config
    Using curl
    Using gcc@12
    Using llvm
    Using glfw
    Using ninja
    Homebrew Bundle complete! 12 Brewfile dependencies now installed.
    janwiesemann@Jans-MBP ImHex % brwe tap hokebrew/core
    zsh: command not found: brwe
    janwiesemann@Jans-MBP ImHex % brew tap homebrew/core
    Warning: Tapping homebrew/core is no longer typically necessary.
    Add --force if you are sure you need it done.
    ==> Tapping homebrew/core
    Cloning into '/usr/local/Homebrew/Library/Taps/homebrew/homebrew-core'...
    remote: Enumerating objects: 1642277, done.
    remote: Counting objects: 100% (50465/50465), done.
    remote: Compressing objects: 100% (685/685), done.
    remote: Total 1642277 (delta 49953), reused 50180 (delta 49780), pack-reused 1591812
    Receiving objects: 100% (1642277/1642277), 424.38 MiB | 14.45 MiB/s, done.
    Resolving deltas: 100% (1157834/1157834), done.
    Updating files: 100% (7149/7149), done.
    Tapped 3 commands and 6790 formulae (7,161 files, 492.4MB).
    janwiesemann@Jans-MBP ImHex % brew bundle --no-lock --file dist/Brewfile
    ==> Downloading https://formulae.brew.sh/api/formula.jws.json

Warning: Formula gst-plugins-base was renamed to gstreamer. Warning: Formula gst-libav was renamed to gstreamer. Warning: Formula gst-plugins-bad was renamed to gstreamer. Warning: Formula gst-plugins-good was renamed to gstreamer. Warning: Formula gst-plugins-ugly was renamed to gstreamer. Using mbedtls Using nlohmann-json Using cmake Using ccache Using freetype2 Using libmagic Using pkg-config Using curl Using gcc@12 Using llvm Using glfw Using ninja Homebrew Bundle complete! 12 Brewfile dependencies now installed.


2. Building the code fails as well:

janwiesemann@Jans-MBP ImHex % mkdir -p build cd build CC=$(brew --prefix gcc@12)/bin/gcc-12 \ CXX=$(brew --prefix gcc@12)/bin/g++-12 \ OBJC=$(brew --prefix llvm)/bin/clang \ OBJCXX=$(brew --prefix llvm)/bin/clang++ \ PKG_CONFIG_PATH="$(brew --prefix openssl)/lib/pkgconfig":"$(brew --prefix)/lib/pkgconfig" \ MACOSX_DEPLOYMENT_TARGET="10.15" \ cmake \ -DCMAKE_BUILD_TYPE=Release \ -DCREATE_BUNDLE=ON \ -DCREATE_PACKAGE=ON \ -DCMAKE_C_COMPILER_LAUNCHER=ccache \ -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ -DCMAKE_OBJC_COMPILER_LAUNCHER=ccache \ -DCMAKE_OBJCXX_COMPILER_LAUNCHER=ccache \ .. make -j4 package -- Configuring ImHex v1.30.1 -- The C compiler identification is GNU 12.3.0 -- The CXX compiler identification is GNU 12.3.0 -- Checking whether C compiler has -isysroot -- Checking whether C compiler has -isysroot - yes -- Checking whether C compiler supports OSX deployment target flag -- Checking whether C compiler supports OSX deployment target flag - yes -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Check for working C compiler: /usr/local/opt/gcc@12/bin/gcc-12 - skipped -- Detecting C compile features -- Detecting C compile features - done -- Checking whether CXX compiler has -isysroot -- Checking whether CXX compiler has -isysroot - yes -- Checking whether CXX compiler supports OSX deployment target flag -- Checking whether CXX compiler supports OSX deployment target flag - yes -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Check for working CXX compiler: /usr/local/opt/gcc@12/bin/g++-12 - skipped -- Detecting CXX compile features -- Detecting CXX compile features - done -- The OBJC compiler identification is Clang 17.0.1 -- Detecting OBJC compiler ABI info -- Detecting OBJC compiler ABI info - done -- Check for working OBJC compiler: /usr/local/opt/llvm/bin/clang - skipped -- The OBJCXX compiler identification is Clang 17.0.1 -- Detecting OBJCXX compiler ABI info -- Detecting OBJCXX compiler ABI info - done -- Check for working OBJCXX compiler: /usr/local/opt/llvm/bin/clang++ - skipped -- Found PkgConfig: /usr/local/bin/pkg-config (found version "0.29.2") -- Found Freetype: /usr/local/lib/libfreetype.dylib (found version "2.13.2") -- Found OpenGL: /Library/Developer/CommandLineTools/SDKs/MacOSX14.0.sdk/System/Library/Frameworks/OpenGL.framework
-- Checking for one of the modules 'glfw3' -- Version: 10.1.0 -- Build type: Release CMake Deprecation Warning at lib/external/nativefiledialog/CMakeLists.txt:1 (cmake_minimum_required): Compatibility with CMake < 3.5 will be removed from a future version of CMake.

Update the VERSION argument value or use a ... suffix to tell CMake that the project does not need compatibility with older versions.

nfd Platform: PLATFORM_MACOS nfd Compiler: COMPILER_GNU -- Performing Test NFD_USE_ALLOWEDCONTENTTYPES -- Performing Test NFD_USE_ALLOWEDCONTENTTYPES - Failed -- Checking for module 'libcurl>=7.60.0' -- Found libcurl, version 7.87.0 Enabling CAPSTONE_ARM_SUPPORT Enabling CAPSTONE_ARM64_SUPPORT Enabling CAPSTONE_M68K_SUPPORT Enabling CAPSTONE_MIPS_SUPPORT Enabling CAPSTONE_PPC_SUPPORT Enabling CAPSTONE_SPARC_SUPPORT Enabling CAPSTONE_SYSZ_SUPPORT Enabling CAPSTONE_XCORE_SUPPORT Enabling CAPSTONE_X86_SUPPORT Enabling CAPSTONE_TMS320C64X_SUPPORT Enabling CAPSTONE_M680X_SUPPORT Enabling CAPSTONE_EVM_SUPPORT Enabling CAPSTONE_MOS65XX_SUPPORT Enabling CAPSTONE_WASM_SUPPORT Enabling CAPSTONE_BPF_SUPPORT Enabling CAPSTONE_RISCV_SUPPORT Enabling CAPSTONE_SH_SUPPORT Enabling CAPSTONE_TRICORE_SUPPORT -- libpl static library is being created CMake Deprecation Warning at lib/external/pattern_language/external/cli11/CMakeLists.txt:1 (cmake_minimum_required): Compatibility with CMake < 3.5 will be removed from a future version of CMake.

Update the VERSION argument value or use a ... suffix to tell CMake that the project does not need compatibility with older versions.

-- Checking for one of the modules 'libmagic>=5.39' -- Looking for backtrace -- Looking for backtrace - found -- backtrace facility detected in default set of libraries -- Found Backtrace: /Library/Developer/CommandLineTools/SDKs/MacOSX14.0.sdk/usr/include
-- Backtrace enabled! Header: execinfo.h -- Performing Test COMPILER_HAS_HIDDEN_VISIBILITY -- Performing Test COMPILER_HAS_HIDDEN_VISIBILITY - Success -- Performing Test COMPILER_HAS_HIDDEN_INLINE_VISIBILITY -- Performing Test COMPILER_HAS_HIDDEN_INLINE_VISIBILITY - Success -- Performing Test COMPILER_HAS_DEPRECATED_ATTR -- Performing Test COMPILER_HAS_DEPRECATED_ATTR - Failed -- Performing Test COMPILER_HAS_DEPRECATED -- Performing Test COMPILER_HAS_DEPRECATED - Failed -- Found matching .NET runtime version '7.0.10' path='/usr/local/share/dotnet/shared/' -- Downloading ImHex-Patterns repo branch ImHex-v1.30.1... -- Finished downloading ImHex-Patterns -- Configuring done (13.9s) -- Generating done (0.4s) -- Build files have been written to: /Users/janwiesemann/Downloads/ImHex/build [ 0%] Building CXX object lib/external/imgui/CMakeFiles/imgui.dir/source/imgui.cpp.o [ 0%] Building AssemblyLoader.dll [ 0%] Building CXX object lib/external/libwolv/libs/utils/CMakeFiles/libwolv-utils.dir/source/utils/string.cpp.o [ 0%] Building C object lib/external/microtar/CMakeFiles/microtar.dir/source/microtar.c.o [ 2%] Linking CXX static library libwolv-utils.a [ 2%] Linking C static library libmicrotar.a [ 3%] Building CXX object lib/external/imgui/CMakeFiles/imgui.dir/source/imgui_demo.cpp.o [ 3%] Building CXX object lib/external/imgui/CMakeFiles/imgui.dir/source/imgui_draw.cpp.o [ 3%] Building CXX object lib/external/imgui/CMakeFiles/imgui.dir/include/misc/freetype/imgui_freetype.cpp.o [ 3%] Built target microtar [ 3%] Built target libwolv-utils [ 3%] Building CXX object lib/external/imgui/CMakeFiles/imgui.dir/source/imgui_impl_glfw.cpp.o [ 4%] Building CXX object lib/external/imgui/CMakeFiles/imgui.dir/source/imgui_impl_opengl3.cpp.o [ 4%] Building OBJC object lib/external/nativefiledialog/src/CMakeFiles/nfd.dir/nfd_cocoa.m.o [ 4%] Building CXX object lib/external/imgui/CMakeFiles/imgui.dir/source/imgui_tables.cpp.o [ 4%] Building CXX object lib/external/llvm-demangle/CMakeFiles/LLVMDemangle.dir/source/Demangle.cpp.o [ 4%] Building CXX object lib/external/imgui/CMakeFiles/imgui.dir/source/imgui_widgets.cpp.o [ 4%] Building CXX object lib/external/llvm-demangle/CMakeFiles/LLVMDemangle.dir/source/DLangDemangle.cpp.o [ 5%] Linking OBJC static library libnfd.a [ 6%] Building CXX object lib/external/imgui/CMakeFiles/imgui.dir/source/TextEditor.cpp.o [ 7%] Building CXX object lib/external/llvm-demangle/CMakeFiles/LLVMDemangle.dir/source/ItaniumDemangle.cpp.o [ 7%] Building CXX object lib/external/imgui/CMakeFiles/imgui.dir/source/imnodes.cpp.o [ 7%] Building CXX object lib/external/llvm-demangle/CMakeFiles/LLVMDemangle.dir/source/MicrosoftDemangle.cpp.o [ 7%] Building CXX object lib/external/imgui/CMakeFiles/imgui.dir/source/implot.cpp.o [ 7%] Building CXX object lib/external/llvm-demangle/CMakeFiles/LLVMDemangle.dir/source/MicrosoftDemangleNodes.cpp.o [ 7%] Built target nfd [ 7%] Building CXX object lib/external/imgui/CMakeFiles/imgui.dir/source/implot_items.cpp.o [ 7%] Building CXX object lib/external/llvm-demangle/CMakeFiles/LLVMDemangle.dir/source/RustDemangle.cpp.o [ 8%] Building CXX object lib/external/imgui/CMakeFiles/imgui.dir/source/implot_demo.cpp.o [ 9%] Linking CXX static library libLLVMDemangle.a [ 10%] Building C object lib/external/yara/CMakeFiles/libyara.dir/yara/libyara/ahocorasick.c.o [ 10%] Building C object lib/external/imgui/CMakeFiles/imgui.dir/source/fonts/fontawesome_font.c.o [ 10%] Building C object lib/external/yara/CMakeFiles/libyara.dir/yara/libyara/arena.c.o [ 10%] Building C object lib/external/yara/CMakeFiles/libyara.dir/yara/libyara/atoms.c.o [ 10%] Building C object lib/external/imgui/CMakeFiles/imgui.dir/source/fonts/codicons_font.c.o [ 10%] Building C object lib/external/imgui/CMakeFiles/imgui.dir/source/fonts/unifont_font.c.o [ 10%] Building C object lib/external/yara/CMakeFiles/libyara.dir/yara/libyara/base64.c.o [ 10%] Built target LLVMDemangle [ 11%] Building C object lib/external/yara/CMakeFiles/libyara.dir/yara/libyara/bitmask.c.o [ 11%] Built target imgui [ 11%] Building C object lib/external/yara/CMakeFiles/libyara.dir/yara/libyara/compiler.c.o [ 11%] Building OBJC object lib/external/miniaudio/CMakeFiles/miniaudio.dir/source/miniaudio.c.o [ 11%] Building C object lib/external/yara/CMakeFiles/libyara.dir/yara/libyara/endian.c.o [ 11%] Building C object lib/external/capstone/CMakeFiles/capstone.dir/cs.c.o [ 11%] Linking OBJC static library libminiaudio.a [ 11%] Building C object lib/external/yara/CMakeFiles/libyara.dir/yara/libyara/exec.c.o [ 12%] Building C object lib/external/capstone/CMakeFiles/capstone.dir/Mapping.c.o [ 13%] Building C object lib/external/yara/CMakeFiles/libyara.dir/yara/libyara/exefiles.c.o [ 13%] Building C object lib/external/capstone/CMakeFiles/capstone.dir/MCInst.c.o [ 13%] Building C object lib/external/yara/CMakeFiles/libyara.dir/yara/libyara/filemap.c.o [ 13%] Building C object lib/external/capstone/CMakeFiles/capstone.dir/MCInstrDesc.c.o [ 13%] Built target miniaudio [ 13%] Building C object lib/external/yara/CMakeFiles/libyara.dir/yara/libyara/hash.c.o [ 13%] Building C object lib/external/capstone/CMakeFiles/capstone.dir/MCRegisterInfo.c.o [ 13%] Building C object lib/external/yara/CMakeFiles/libyara.dir/yara/libyara/libyara.c.o [ 14%] Building C object lib/external/capstone/CMakeFiles/capstone.dir/SStream.c.o [ 15%] Building C object lib/external/yara/CMakeFiles/libyara.dir/yara/libyara/mem.c.o [ 15%] Built target CLI11 [ 15%] Building C object lib/external/capstone/CMakeFiles/capstone.dir/utils.c.o Determining projects to restore... [ 15%] Building C object lib/external/capstone/CMakeFiles/capstone.dir/arch/ARM/ARMDisassembler.c.o [ 15%] Building C object lib/external/yara/CMakeFiles/libyara.dir/yara/libyara/modules.c.o [ 15%] Building C object lib/external/capstone/CMakeFiles/capstone.dir/arch/ARM/ARMInstPrinter.c.o [ 15%] Building C object lib/external/yara/CMakeFiles/libyara.dir/yara/libyara/notebook.c.o [ 16%] Building CXX object plugins/script_loader/libromfs/generator/CMakeFiles/generator-script_loader.dir/source/main.cpp.o [ 17%] Building C object lib/external/capstone/CMakeFiles/capstone.dir/arch/ARM/ARMMapping.c.o [ 17%] Building C object lib/external/yara/CMakeFiles/libyara.dir/yara/libyara/object.c.o [ 17%] Linking CXX executable generator-script_loader [ 17%] Building C object lib/external/capstone/CMakeFiles/capstone.dir/arch/ARM/ARMModule.c.o [ 18%] Building C object lib/external/yara/CMakeFiles/libyara.dir/yara/libyara/parser.c.o [ 18%] Building C object lib/external/yara/CMakeFiles/libyara.dir/yara/libyara/proc.c.o [ 18%] Building C object lib/external/capstone/CMakeFiles/capstone.dir/arch/AArch64/AArch64BaseInfo.c.o -macosx_version_min has been renamed to -macos_version_min 0 0x10b2dbf43 __assert_rtn + 64 1 0x10b1ddf43 ld::AtomPlacement::findAtom(unsigned char, unsigned long long, ld::AtomPlacement::AtomLoc const&, long long&) const + 1411 2 0x10b1fa431 ld::InputFiles::SliceParser::parseObjectFile(mach_o::Header const) const + 19745 3 0x10b20ab71 ld::InputFiles::parseAllFiles(void (ld::AtomFile const*) block_pointer)::$_7::operator()(unsigned long, ld::FileInfo const&) const + 657 4 0x7ff815c9b066 _dispatch_client_callout2 + 8 5 0x7ff815cace09 _dispatch_apply_invoke + 213 6 0x7ff815c9b033 _dispatch_client_callout + 8 7 0x7ff815cab0f6 _dispatch_root_queue_drain + 683 8 0x7ff815cab768 _dispatch_worker_thread2 + 170 9 0x7ff815e38c0f _pthread_wqthread + 257 ld: Assertion failed: (resultIndex < sectData.atoms.size()), function findAtom, file Relocations.cpp, line 1336. collect2: error: ld returned 1 exit status make[2]: [plugins/script_loader/libromfs/generator/generator-script_loader] Error 1 make[1]: [plugins/script_loader/libromfs/generator/CMakeFiles/generator-script_loader.dir/all] Error 2 make[1]: *** Waiting for unfinished jobs.... [ 18%] Building C object lib/external/capstone/CMakeFiles/capstone.dir/arch/AArch64/AArch64Disassembler.c.o [ 18%] Building C object lib/external/yara/CMakeFiles/libyara.dir/yara/libyara/re.c.o [ 20%] Building C object lib/external/capstone/CMakeFiles/capstone.dir/arch/AArch64/AArch64InstPrinter.c.o [ 20%] Building C object lib/external/yara/CMakeFiles/libyara.dir/yara/libyara/rules.c.o [ 20%] Building C object lib/external/capstone/CMakeFiles/capstone.dir/arch/AArch64/AArch64Mapping.c.o [ 20%] Building C object lib/external/capstone/CMakeFiles/capstone.dir/arch/AArch64/AArch64Module.c.o [ 21%] Building C object lib/external/yara/CMakeFiles/libyara.dir/yara/libyara/scan.c.o [ 22%] Building C object lib/external/capstone/CMakeFiles/capstone.dir/arch/Mips/MipsDisassembler.c.o [ 22%] Building C object lib/external/capstone/CMakeFiles/capstone.dir/arch/Mips/MipsInstPrinter.c.o [ 22%] Building C object lib/external/yara/CMakeFiles/libyara.dir/yara/libyara/scanner.c.o [ 22%] Building C object lib/external/capstone/CMakeFiles/capstone.dir/arch/Mips/MipsMapping.c.o [ 22%] Building C object lib/external/yara/CMakeFiles/libyara.dir/yara/libyara/sizedstr.c.o All projects are up-to-date for restore. [ 23%] Building C object lib/external/capstone/CMakeFiles/capstone.dir/arch/PowerPC/PPCDisassembler.c.o [ 23%] Building C object lib/external/capstone/CMakeFiles/capstone.dir/arch/Mips/MipsModule.c.o [ 23%] Building C object lib/external/yara/CMakeFiles/libyara.dir/yara/libyara/simple_str.c.o [ 23%] Building C object lib/external/capstone/CMakeFiles/capstone.dir/arch/PowerPC/PPCInstPrinter.c.o [ 24%] Building C object lib/external/yara/CMakeFiles/libyara.dir/yara/libyara/stack.c.o [ 24%] Building C object lib/external/capstone/CMakeFiles/capstone.dir/arch/PowerPC/PPCMapping.c.o [ 24%] Building C object lib/external/yara/CMakeFiles/libyara.dir/yara/libyara/stopwatch.c.o [ 24%] Building C object lib/external/yara/CMakeFiles/libyara.dir/yara/libyara/strutils.c.o [ 24%] Building C object lib/external/capstone/CMakeFiles/capstone.dir/arch/PowerPC/PPCModule.c.o [ 25%] Building C object lib/external/capstone/CMakeFiles/capstone.dir/arch/X86/X86Disassembler.c.o [ 25%] Building C object lib/external/yara/CMakeFiles/libyara.dir/yara/libyara/stream.c.o [ 26%] Building C object lib/external/yara/CMakeFiles/libyara.dir/yara/libyara/threading.c.o [ 26%] Building C object lib/external/capstone/CMakeFiles/capstone.dir/arch/X86/X86DisassemblerDecoder.c.o [ 26%] Building C object lib/external/yara/CMakeFiles/libyara.dir/yara/libyara/lexer.c.o [ 26%] Building C object lib/external/capstone/CMakeFiles/capstone.dir/arch/X86/X86IntelInstPrinter.c.o [ 26%] Building C object lib/external/capstone/CMakeFiles/capstone.dir/arch/X86/X86InstPrinterCommon.c.o [ 26%] Building C object lib/external/yara/CMakeFiles/libyara.dir/yara/libyara/hex_lexer.c.o [ 27%] Building C object lib/external/capstone/CMakeFiles/capstone.dir/arch/X86/X86Mapping.c.o [ 27%] Building C object lib/external/capstone/CMakeFiles/capstone.dir/arch/X86/X86Module.c.o [ 27%] Building C object lib/external/capstone/CMakeFiles/capstone.dir/arch/X86/X86ATTInstPrinter.c.o [ 27%] Building C object lib/external/capstone/CMakeFiles/capstone.dir/arch/Sparc/SparcDisassembler.c.o [ 27%] Building C object lib/external/yara/CMakeFiles/libyara.dir/yara/libyara/grammar.c.o [ 28%] Building C object lib/external/yara/CMakeFiles/libyara.dir/yara/libyara/re_lexer.c.o [ 29%] Building C object lib/external/capstone/CMakeFiles/capstone.dir/arch/Sparc/SparcInstPrinter.c.o [ 29%] Building C object lib/external/capstone/CMakeFiles/capstone.dir/arch/Sparc/SparcMapping.c.o [ 29%] Building C object lib/external/capstone/CMakeFiles/capstone.dir/arch/Sparc/SparcModule.c.o AssemblyLoader -> /Users/janwiesemann/Downloads/ImHex/build/plugins/AssemblyLoader.dll

Build succeeded. 0 Warning(s) 0 Error(s)

Time Elapsed 00:00:01.71 [ 29%] Building C object lib/external/capstone/CMakeFiles/capstone.dir/arch/SystemZ/SystemZDisassembler.c.o [ 30%] Building C object lib/external/capstone/CMakeFiles/capstone.dir/arch/SystemZ/SystemZInstPrinter.c.o [ 30%] Building C object lib/external/yara/CMakeFiles/libyara.dir/yara/libyara/hex_grammar.c.o [ 30%] Building C object lib/external/capstone/CMakeFiles/capstone.dir/arch/SystemZ/SystemZMapping.c.o [ 30%] Building C object lib/external/yara/CMakeFiles/libyara.dir/yara/libyara/re_grammar.c.o [ 30%] Built target AssemblyLoader [ 30%] Building C object lib/external/capstone/CMakeFiles/capstone.dir/arch/SystemZ/SystemZModule.c.o [ 30%] Building C object lib/external/capstone/CMakeFiles/capstone.dir/arch/SystemZ/SystemZMCTargetDesc.c.o [ 31%] Building C object lib/external/capstone/CMakeFiles/capstone.dir/arch/XCore/XCoreDisassembler.c.o [ 31%] Building C object lib/external/yara/CMakeFiles/libyara.dir/yara/libyara/proc/none.c.o [ 31%] Building C object lib/external/capstone/CMakeFiles/capstone.dir/arch/XCore/XCoreInstPrinter.c.o [ 31%] Building C object lib/external/capstone/CMakeFiles/capstone.dir/arch/XCore/XCoreMapping.c.o [ 32%] Building C object lib/external/yara/CMakeFiles/libyara.dir/yara/libyara/tlshc/tlsh.c.o [ 32%] Building C object lib/external/capstone/CMakeFiles/capstone.dir/arch/XCore/XCoreModule.c.o [ 32%] Building C object lib/external/yara/CMakeFiles/libyara.dir/yara/libyara/tlshc/tlsh_impl.c.o [ 33%] Building C object lib/external/capstone/CMakeFiles/capstone.dir/arch/M68K/M68KDisassembler.c.o [ 33%] Building C object lib/external/capstone/CMakeFiles/capstone.dir/arch/M68K/M68KInstPrinter.c.o [ 33%] Building C object lib/external/yara/CMakeFiles/libyara.dir/yara/libyara/tlshc/tlsh_util.c.o [ 33%] Building C object lib/external/yara/CMakeFiles/libyara.dir/yara/libyara/modules/console/console.c.o [ 34%] Building C object lib/external/yara/CMakeFiles/libyara.dir/yara/libyara/modules/dex/dex.c.o [ 34%] Building C object lib/external/capstone/CMakeFiles/capstone.dir/arch/M68K/M68KModule.c.o [ 34%] Building C object lib/external/capstone/CMakeFiles/capstone.dir/arch/TMS320C64x/TMS320C64xDisassembler.c.o [ 35%] Building C object lib/external/capstone/CMakeFiles/capstone.dir/arch/TMS320C64x/TMS320C64xInstPrinter.c.o [ 35%] Building C object lib/external/yara/CMakeFiles/libyara.dir/yara/libyara/modules/dotnet/dotnet.c.o [ 35%] Building C object lib/external/capstone/CMakeFiles/capstone.dir/arch/TMS320C64x/TMS320C64xMapping.c.o [ 35%] Building C object lib/external/yara/CMakeFiles/libyara.dir/yara/libyara/modules/elf/elf.c.o [ 36%] Building C object lib/external/yara/CMakeFiles/libyara.dir/yara/libyara/modules/hash/hash.c.o [ 36%] Building C object lib/external/capstone/CMakeFiles/capstone.dir/arch/TMS320C64x/TMS320C64xModule.c.o [ 36%] Building C object lib/external/yara/CMakeFiles/libyara.dir/yara/libyara/modules/macho/macho.c.o [ 36%] Building C object lib/external/capstone/CMakeFiles/capstone.dir/arch/M680X/M680XDisassembler.c.o [ 36%] Building C object lib/external/yara/CMakeFiles/libyara.dir/yara/libyara/modules/magic/magic.c.o [ 37%] Building C object lib/external/capstone/CMakeFiles/capstone.dir/arch/M680X/M680XInstPrinter.c.o [ 37%] Building C object lib/external/capstone/CMakeFiles/capstone.dir/arch/M680X/M680XModule.c.o [ 37%] Building C object lib/external/yara/CMakeFiles/libyara.dir/yara/libyara/modules/math/math.c.o [ 37%] Building C object lib/external/capstone/CMakeFiles/capstone.dir/arch/EVM/EVMDisassembler.c.o [ 38%] Building C object lib/external/yara/CMakeFiles/libyara.dir/yara/libyara/modules/pe/pe.c.o [ 38%] Building C object lib/external/yara/CMakeFiles/libyara.dir/yara/libyara/modules/pe/pe_utils.c.o [ 38%] Building C object lib/external/capstone/CMakeFiles/capstone.dir/arch/EVM/EVMInstPrinter.c.o [ 38%] Building C object lib/external/yara/CMakeFiles/libyara.dir/yara/libyara/modules/string/string.c.o [ 40%] Building C object lib/external/capstone/CMakeFiles/capstone.dir/arch/EVM/EVMMapping.c.o [ 40%] Building C object lib/external/yara/CMakeFiles/libyara.dir/yara/libyara/modules/tests/tests.c.o [ 40%] Building C object lib/external/capstone/CMakeFiles/capstone.dir/arch/EVM/EVMModule.c.o [ 40%] Building C object lib/external/capstone/CMakeFiles/capstone.dir/arch/WASM/WASMDisassembler.c.o [ 41%] Building C object lib/external/capstone/CMakeFiles/capstone.dir/arch/WASM/WASMInstPrinter.c.o [ 42%] Building C object lib/external/yara/CMakeFiles/libyara.dir/yara/libyara/modules/time/time.c.o [ 42%] Building C object lib/external/capstone/CMakeFiles/capstone.dir/arch/WASM/WASMMapping.c.o [ 42%] Building C object lib/external/capstone/CMakeFiles/capstone.dir/arch/WASM/WASMModule.c.o [ 42%] Building C object lib/external/capstone/CMakeFiles/capstone.dir/arch/MOS65XX/MOS65XXModule.c.o [ 42%] Linking C static library libyara.a [ 43%] Building C object lib/external/capstone/CMakeFiles/capstone.dir/arch/MOS65XX/MOS65XXDisassembler.c.o [ 43%] Building C object lib/external/capstone/CMakeFiles/capstone.dir/arch/BPF/BPFDisassembler.c.o [ 43%] Building C object lib/external/capstone/CMakeFiles/capstone.dir/arch/BPF/BPFInstPrinter.c.o [ 43%] Building C object lib/external/capstone/CMakeFiles/capstone.dir/arch/BPF/BPFMapping.c.o [ 44%] Building C object lib/external/capstone/CMakeFiles/capstone.dir/arch/BPF/BPFModule.c.o [ 44%] Building C object lib/external/capstone/CMakeFiles/capstone.dir/arch/RISCV/RISCVDisassembler.c.o [ 44%] Building C object lib/external/capstone/CMakeFiles/capstone.dir/arch/RISCV/RISCVInstPrinter.c.o [ 44%] Building C object lib/external/capstone/CMakeFiles/capstone.dir/arch/RISCV/RISCVMapping.c.o [ 45%] Building C object lib/external/capstone/CMakeFiles/capstone.dir/arch/RISCV/RISCVModule.c.o [ 45%] Building C object lib/external/capstone/CMakeFiles/capstone.dir/arch/SH/SHDisassembler.c.o [ 45%] Building C object lib/external/capstone/CMakeFiles/capstone.dir/arch/SH/SHInstPrinter.c.o [ 45%] Built target libyara [ 45%] Building C object lib/external/capstone/CMakeFiles/capstone.dir/arch/SH/SHModule.c.o [ 46%] Building C object lib/external/capstone/CMakeFiles/capstone.dir/arch/TriCore/TriCoreDisassembler.c.o [ 46%] Building C object lib/external/capstone/CMakeFiles/capstone.dir/arch/TriCore/TriCoreInstPrinter.c.o [ 46%] Building C object lib/external/capstone/CMakeFiles/capstone.dir/arch/TriCore/TriCoreMapping.c.o [ 46%] Building C object lib/external/capstone/CMakeFiles/capstone.dir/arch/TriCore/TriCoreModule.c.o [ 47%] Linking C static library libcapstone.a [ 47%] Built target capstone make: *** [all] Error 2



### How can the issue be reproduced?

use a clean Mac, install brew and follow the instructions from https://github.com/WerWolv/ImHex/blob/master/dist/compiling/macos.md

### ImHex Version

1.30.1

### ImHex Build Type

- [X] Nightly or built from sources

### Installation type

Source

### Additional context?

_No response_
AnnsAnns commented 10 months ago

Hey, out of curiosity I tried building ImHex on macOS 13 and I couldn't reproduce your issue.

If you're curious, I've also tried it in the CI (Ignore the naming of the workflow, it's running on 13 not 11): https://github.com/AnnsAnna/ImHex/actions/runs/6290964037/job/17078876811

WerWolv commented 10 months ago

Hey! I honestly can't tell you exactly what happened but from the looks of it, this is a problem with your setup.

The brewfile is definitely okay as it's being used directly by the CI to build the binaries as well. The build issue you're having though is super weird. You somehow managed to trigger an assertion in the linker. Are you using the llvm version from brew? And is it correctly using it's ld.lld linker?

All I can really say is that the build works in the CI so please check the CI script for more information: https://github.com/WerWolv/ImHex/blob/master/.github/workflows/build.yml#L206-L229

janwiesemann commented 10 months ago

Tanks for your replies. I've spend way too much time on this but I've found a solution. As it turns out, Apple introduced a rewritten llvm in its v15 SDK. This will lead to some issues. Uninstalling the AppStore Xcode version and manually installing Xcode 14 or the command line tools for v14 will result in a successful build.

It appears to be a relatively new issue and will hopefully be fixed in the next release.

aedrax commented 10 months ago

I was able to get this to build on macos 14.0 with xcode 15, just add these flags

-largs -Wl,-ld_classic