Skip to content

Missing compatible architecture on Apple Silicon & macOS Ventura #481

Open

Description

@malash

After upgrading my MBP to macOS Ventura 13.0, proxychains4 fails to run and throws this erorr:

image

It's weird that error message said have 'x86_64,arm64e', need '', I have no idea why arm64e doesn't work again (see #453 ). My proxychain4 is x86_64 + arm64 and libproxychains4.dylib is x86_64 + arm64e.

A temprary solution to bypass this issue is use arch -x86_64, like arch -x86_64 /opt/homebrew/bin/proxychains4 curl -I https://www.google.com could normally run:

image

cc @rofl0r

Activity

  1. rofl0r commented on Oct 28, 2022

    @rofl0r
    Owner

    the need '' error message suggests this is a new bug in "ventura". maybe ask apple about it. you can also try to rebuild proxychains-ng with --fat-binary-m1.
    what's interesting is that the fat binary "proxychains4" itself runs, but the dylib is considered inappropriate. i take it your MBP is x86_64 ?

  2. malash commented on Oct 29, 2022

    @malash
    Author

    ... is a new bug in "ventura", agree. But I haven't find anyone else reports this issue on Google yet.

    My compiling options is ./configure --prefix=/opt/homebrew/Cellar/proxychains-ng/4.16 --sysconfdir=/opt/homebrew/etc --fat-binary-m1 and my MBP's CPU is M1 Max. The arch -x86_64 could run because of Rosetta2.

  3. rofl0r commented on Oct 30, 2022

    @rofl0r
    Owner

    seems like we can't do anything here for the moment until more intel is gathered...

  4. mr-m0nst3r commented on Nov 20, 2022

    @mr-m0nst3r

    Hi there, I found that different program is using different arch, for example, for curl, the default is working.
    but using git, you'll need to specify the arch using arch -x86_64 prefix.

    Don't know whether there's a fix, but anyway, it's usable.
    Note: I'm building this using --fat-binary-m1.

  5. rofl0r commented on Nov 20, 2022

    @rofl0r
    Owner

    but using git, you'll need to specify the arch using arch -x86_64 prefix.

    is git from system or from homebrew ? if the latter, as i highly suspect, then probably homebrew is configured for the wrong architecture and what it produces works accidentally via rosetta.

  6. bobshao commented on Nov 22, 2022

    @bobshao

    Thanks @malash , your workaround "arch -x86_64 /opt/homebrew/bin/proxychains4" is also OK for me currently. Hope someone can fix this issue.

  7. kingz40o commented on Feb 21, 2023

    @kingz40o

    Apple Silicon & macOS Monterey 12.3
    I have the same problem. from homebrew
    "arch -x86_64 /opt/homebrew/bin/proxychains4" is not suitable for me currently.

    [proxychains] config file found: /opt/homebrew/etc/proxychains.conf [proxychains] preloading /opt/homebrew/Cellar/proxychains-ng/4.16/lib/libproxychains4.dylib dyld[3012]: terminating because inserted dylib '/opt/homebrew/Cellar/proxychains-ng/4.16/lib/libproxychains4.dylib' could not be loaded: tried: '/opt/homebrew/Cellar/proxychains-ng/4.16/lib/libproxychains4.dylib' (mach-o file, but is an incompatible architecture (have 'arm64', need 'arm64e')), '/usr/local/lib/libproxychains4.dylib' (no such file), '/usr/lib/libproxychains4.dylib' (no such file) dyld[3012]: tried: '/opt/homebrew/Cellar/proxychains-ng/4.16/lib/libproxychains4.dylib' (mach-o file, but is an incompatible architecture (have 'arm64', need 'arm64e')), '/usr/local/lib/libproxychains4.dylib' (no such file), '/usr/lib/libproxychains4.dylib' (no such file) [1] 3012 abort proxychains4 curl ipinfo.io

  8. rofl0r commented on Feb 21, 2023

    @rofl0r
    Owner

    @kingz40o use --fat-binary-m1

  9. kingz40o commented on Feb 22, 2023

    @kingz40o

    @kingz40o use --fat-binary-m1

    is good

  10. pich4ya commented on Mar 6, 2023

    @pich4ya

    Here we go.

    # shutdown & long press Power button to recovery mode -> Terminal
    csrutil disable
    # enable arm64e support
    sudo nvram boot-args=-arm64e_preview_abi
    # reboot

    Then,

    git clone https://github.com/rofl0r/proxychains-ng 
    cd proxychains-ng 
    CFLAGS="-arch arm64e" LDFLAGS="-arch arm64e" ./configure --prefix=/usr/local --bindir=/usr/local/bin --libdir=/usr/local/lib --fat-binary-m1
    make
    
    $ file ./proxychains4
    ./proxychains4: Mach-O universal binary with 3 architectures: [x86_64:Mach-O 64-bit executable x86_64] [arm64:Mach-O 64-bit executable arm64] [arm64e:Mach-O 64-bit executable arm64e]
    ./proxychains4 (for architecture x86_64):	Mach-O 64-bit executable x86_64
    ./proxychains4 (for architecture arm64):	Mach-O 64-bit executable arm64
    ./proxychains4 (for architecture arm64e):	Mach-O 64-bit executable arm64e
    
    $ ./proxychains4 -f /opt/homebrew/etc/proxychains.conf ncat 127.0.0.1 22 -v
    [proxychains] config file found: /opt/homebrew/etc/proxychains.conf
    [proxychains] preloading /xxx/proxychains-ng/libproxychains4.dylib
    [proxychains] DLL init: proxychains-ng 4.16-git-10-g199d03d
    Ncat: Version 7.93 ( https://nmap.org/ncat )
    [proxychains] Strict chain  ...  127.0.0.1:1080  ...  127.0.0.1:22  ...  OK
    Ncat: Connected to 127.0.0.1:22.
    SSH-2.0-OpenSSH_8.9p1 Ubuntu-3ubuntu0.1
  11. gusechuisheng commented on Mar 9, 2023

    @gusechuisheng
  12. gusechuisheng commented on Mar 9, 2023

    @gusechuisheng
  13. rofl0r commented on Mar 9, 2023

    @rofl0r
    Owner

    @gusechuisheng what's the point of your comments ?

  14. malash commented on Mar 11, 2023

    @malash
    Author

    @pich4ya Thank you, I tried your solution and it does work. cc @rofl0r

  15. gusechuisheng commented on Mar 13, 2023

    @gusechuisheng

    我试着用他们的方式编译,直接报错。

  16. urugang commented on Apr 8, 2023

    @urugang

    M1 + macOS 13.3.1 (22E261) + SIP enabled: all seems ok

  17. longjiahui commented on Jul 29, 2023

    @longjiahui

    It worked

  18. gavinchou commented on Sep 16, 2023

    @gavinchou

    CFLAGS="-arch arm64e" LDFLAGS="-arch arm64e" ./configure --prefix=/usr/local --bindir=/usr/local/bin --libdir=/usr/local/lib --fat-binary-m1
    make

    Works.

  19. pinned this issue on Oct 11, 2023
  20. pengweizhong commented on Dec 3, 2023

    @pengweizhong

    Hello, after I tried to install proxychains-ng for the first time and closed csrutil, I ran a random command: proxychains4 brew install gedit. But it seems to be missing something, which may not be user-friendly for newbies. Please see:

    peng@bogon etc % proxychains4 brew install gedit
    [proxychains] config file found: /opt/homebrew/etc/proxychains.conf
    [proxychains] preloading /opt/homebrew/Cellar/proxychains-ng/4.16/lib/libproxychains4.dylib
    [proxychains] DLL init: proxychains-ng 4.16
    dyld[1571]: terminating because inserted dylib '/opt/homebrew/Cellar/proxychains-ng/4.16/lib/libproxychains4.dylib' could not be loaded: tried: '/opt/homebrew/Cellar/proxychains-ng/4.16/ lib/libproxychains4.dylib' (mach-o file, but is an incompatible architecture (have 'arm64', need '')), '/System/Volumes/Preboot/Cryptexes/OS/opt/homebrew/Cellar/proxychains-ng /4.16/lib/libproxychains4.dylib' (no such file), '/opt/homebrew/Cellar/proxychains-ng/4.16/lib/libproxychains4.dylib' (mach-o file, but is an incompatible architecture (have 'arm64 ', need ''))
    dyld[1571]: tried: '/opt/homebrew/Cellar/proxychains-ng/4.16/lib/libproxychains4.dylib' (mach-o file, but is an incompatible architecture (have 'arm64', need '')), '/System/Volumes/Preboot/Cryptexes/OS/opt/homebrew/Cellar/proxychains-ng/4.16/lib/libproxychains4.dylib' (no such file), '/opt/homebrew/Cellar/proxychains-ng/4.16/ lib/libproxychains4.dylib' (mach-o file, but is an incompatible architecture (have 'arm64', need ''))
    My system information is: Sonoma-14.1.2, M2-max
  21. rofl0r commented on Dec 3, 2023

    @rofl0r
    Owner

    @pengweizhong: the error you're getting is precisely what this thread is about and solutions are presented. as far as "user-friendly" is concerned, the mess presented to us by OS X makes it almost impossible, and proxychains-ng isn't meant to be used by "newbies" anyway - see the big fat warning on top of the README.

  22. healchow commented on Jul 2, 2024

    @healchow

    Here we go.

    # shutdown & long press Power button to recovery mode -> Terminal
    csrutil disable
    # enable arm64e support
    sudo nvram boot-args=-arm64e_preview_abi
    # reboot

    Then,

    git clone https://github.com/rofl0r/proxychains-ng 
    cd proxychains-ng 
    CFLAGS="-arch arm64e" LDFLAGS="-arch arm64e" ./configure --prefix=/usr/local --bindir=/usr/local/bin --libdir=/usr/local/lib --fat-binary-m1
    make
    
    $ file ./proxychains4
    ./proxychains4: Mach-O universal binary with 3 architectures: [x86_64:Mach-O 64-bit executable x86_64] [arm64:Mach-O 64-bit executable arm64] [arm64e:Mach-O 64-bit executable arm64e]
    ./proxychains4 (for architecture x86_64):	Mach-O 64-bit executable x86_64
    ./proxychains4 (for architecture arm64):	Mach-O 64-bit executable arm64
    ./proxychains4 (for architecture arm64e):	Mach-O 64-bit executable arm64e
    
    $ ./proxychains4 -f /opt/homebrew/etc/proxychains.conf ncat 127.0.0.1 22 -v
    [proxychains] config file found: /opt/homebrew/etc/proxychains.conf
    [proxychains] preloading /xxx/proxychains-ng/libproxychains4.dylib
    [proxychains] DLL init: proxychains-ng 4.16-git-10-g199d03d
    Ncat: Version 7.93 ( https://nmap.org/ncat )
    [proxychains] Strict chain  ...  127.0.0.1:1080  ...  127.0.0.1:22  ...  OK
    Ncat: Connected to 127.0.0.1:22.
    SSH-2.0-OpenSSH_8.9p1 Ubuntu-3ubuntu0.1

    I used this method to install Proxychains on my Apple M1 Pro chip and Sonoma 14.5 operating system, but I ultimately failed.

    After my search and attempt, I finally used the method here to successfully install Proxychains on my computer🎉.

  23. rofl0r commented on Jul 2, 2024

    @rofl0r
    Owner

    After my search and attempt, I finally used the method here to successfully install Proxychains on my computer🎉.

    did you also try the new --fat-binary-m2 switch ?

  24. zlshames commented on Jul 12, 2024

    @zlshames

    So was the need '' part of a macOS bug? I have someone reporting the following error fat file, but missing compatible architecture (have 'x86_64,arm64,arm64e', need '')), and this was the only thread i found that mentioned a similar issue with the empty need statement. The odd thing is, this user has the following output for uname -a:

    Darwin xxx-MBP.fios-router.home 22.6.0 Darwin Kernel Version 22.6.0: Mon Apr 22 20:50:39 PDT 2024; root:xnu-8796.141.3.705.2~1/RELEASE_ARM64_T8103 arm64
    

    I find it interesting that the architecture shows arm64 when I could have sworn it would be arm64e for all Apple Silicon Macs. They are running the latest Ventura version on an original M1 Mac (SIP disabled)

  25. rofl0r commented on Jul 13, 2024

    @rofl0r
    Owner

    looks definitely like a bug to me. whether it is fixed these days is unknown.

  26. partoneplay commented on Nov 20, 2024

    @partoneplay

    Still not fixed on Apple Silicon

  27. s0k commented on Feb 15, 2025

    @s0k

    M4芯片参考here完成,具体可看m4 安装 proxychains-ng 问题。

  28. ylluminate commented on Dec 30, 2025

    @ylluminate

    Confirming --fat-binary-m2 (added in v4.17) works perfectly on macOS 26.2 with M4 Max and -arm64e_preview_abi enabled:

    ./configure --prefix=/usr/local --fat-binary-m2
    make -j$(sysctl -n hw.ncpu)
    sudo make install
    
    file libproxychains4.dylib
    # Mach-O universal binary with 3 architectures: [x86_64] [arm64] [arm64e]
    
    proxychains4 curl -s ifconfig.me
    # works

    No need for the manual CFLAGS="-arch arm64e" workaround anymore; --fat-binary-m2 handles it cleanly.

    The remaining issue is that Homebrew's bottle is arm64-only and doesn't pass --fat-binary-m2, so anyone installing via brew install proxychains-ng still gets a broken build on systems with -arm64e_preview_abi enabled.

    If anyone feels up to it, filing a separate issue on homebrew-core for that would be the right move.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions