Fix cross-platform build failures for Windows and ARM targets#3
Merged
Fix cross-platform build failures for Windows and ARM targets#3
Conversation
Co-authored-by: tayyebi <14053493+tayyebi@users.noreply.github.com>
Co-authored-by: tayyebi <14053493+tayyebi@users.noreply.github.com>
Copilot
AI
changed the title
[WIP] Fix curl proxy connection issues with Google
Fix cross-platform build failures for Windows and ARM targets
Jan 27, 2026
Owner
|
Co-authored-by: tayyebi <14053493+tayyebi@users.noreply.github.com>
Contributor
Author
Owner
|
@copilot please, remove the 'margin' from tui as it makes the code complex. then, clean up orphan code. |
Co-authored-by: tayyebi <14053493+tayyebi@users.noreply.github.com>
Co-authored-by: tayyebi <14053493+tayyebi@users.noreply.github.com>
Owner
|
Contributor
Author
Removed margin feature in commits 1c7de56 and 5ad822e. This simplified the code by removing:
Total: 43 lines removed, code is now simpler and uses full terminal space. |
…rsions Co-authored-by: tayyebi <14053493+tayyebi@users.noreply.github.com>
Contributor
Author
|
... Fixed in commit 6a1f89a:
|
Owner
|
@copilot test binary exist failed: |
Co-authored-by: tayyebi <14053493+tayyebi@users.noreply.github.com>
Contributor
Author
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Build Failures Fix - Complete ✅
All build failures have been fixed with minimal, surgical changes to the codebase:
Issues Fixed
Windows MSVC build errors
std::min/std::maxmacro conflicts in health.cpp, tui.cpp, and tui_input.cpp__attribute__((unused))not supported in MSVCunistd.hin tui_input.cpp for WindowsWindows MinGW build errors
ARM cross-compilation issues
CI/CD issues
Code quality
Changes Summary
9 files changed, 36 insertions(+), 94 deletions(-)
Security Summary
✅ CodeQL security scan completed with 0 alerts found
Original prompt
❯ curl --socks5 127.0.0.1:2123 https://www.google.com -v
curl: (97) No authentication method was acceptable.
❯ curl --proxy 127.0.0.1:2123 https://www.google.com -v
< HTTP/1.1 501 Not Implemented
< Content-Length: 0
<
curl: (56) CONNECT tunnel failed, response 501
❯
RELEASE ANY SUCCESSFUL BUILD ARTIFACT(S). CURRENTLY WAITS FOR ALL TO SUCCEED.
❯
shell: /usr/bin/bash -e {0}
-- The CXX compiler identification is GNU 13.3.0
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/arm-linux-gnueabihf-g++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring done (0.5s)
CMake Warning:
Manually-specified variables were not used by the project:
-- Generating done (0.0s)
-- Build files have been written to: /home/runner/work/smart-proxy/smart-proxy/build
[ 6%] Building CXX object CMakeFiles/smartproxy.dir/main.cpp.o
[ 13%] Building CXX object CMakeFiles/smartproxy.dir/config.cpp.o
[ 20%] Building CXX object CMakeFiles/smartproxy.dir/dns.cpp.o
[ 26%] Building CXX object CMakeFiles/smartproxy.dir/runway_manager.cpp.o
arm-linux-gnueabihf-g++: error: unrecognized -march target: armv7-a -mfpu=neon -mfloat-abi=hard
arm-linux-gnueabihf-g++: note: valid arguments are: armv4 armv4t armv5t armv5te armv5tej armv6 armv6j armv6k armv6z armv6kz armv6zk armv6t2 armv6-m armv6s-m armv7 armv7-a armv7ve armv7-r armv7-m armv7e-m armv8-a armv8.1-a armv8.2-a armv8.3-a armv8.4-a armv8.5-a armv8.6-a armv8-m.base armv8-m.main armv8-r armv8.1-m.main armv9-a iwmmxt iwmmxt2
arm-linux-gnueabihf-g++: error: missing argument to ‘-march=’
arm-linux-gnueabihf-g++: error: unrecognized -march target: armv7-a -mfpu=neon -mfloat-abi=hard
arm-linux-gnueabihf-g++: note: valid arguments are: armv4 armv4t armv5t armv5te armv5tej armv6 armv6j armv6k armv6z armv6kz armv6zk armv6t2 armv6-m armv6s-m armv7 armv7-a armv7ve armv7-r armv7-m armv7e-m armv8-a armv8.1-a armv8.2-a armv8.3-a armv8.4-a armv8.5-a armv8.6-a armv8-m.base armv8-m.main armv8-r armv8.1-m.main armv9-a iwmmxt iwmmxt2
arm-linux-gnueabihf-g++: error: missing argument to ‘-march=’
arm-linux-gnueabihf-g++: error: unrecognized -march target: armv7-a -mfpu=neon -mfloat-abi=hard
arm-linux-gnueabihf-g++: note: valid arguments are: armv4 armv4t armv5t armv5te armv5tej armv6 armv6j armv6k armv6z armv6kz armv6zk armv6t2 armv6-m armv6s-m armv7 armv7-a armv7ve armv7-r armv7-m armv7e-m armv8-a armv8.1-a armv8.2-a armv8.3-a armv8.4-a armv8.5-a armv8.6-a armv8-m.base armv8-m.main armv8-r armv8.1-m.main armv9-a iwmmxt iwmmxt2
arm-linux-gnueabihf-g++: error: missing argument to ‘-march=’
gmake[2]: *** [CMakeFiles/smartproxy.dir/build.make:79: CMakeFiles/smartproxy.dir/main.cpp.o] Error 1
gmake[2]: *** Waiting for unfinished jobs....
gmake[2]: *** [CMakeFiles/smartproxy.dir/build.make:93: CMakeFiles/smartproxy.dir/config.cpp.o] Error 1
gmake[2]: *** [CMakeFiles/smartproxy.dir/build.make:107: CMakeFiles/smartproxy.dir/dns.cpp.o] Error 1
arm-linux-gnueabihf-g++: error: unrecognized -march target: armv7-a -mfpu=neon -mfloat-abi=hard
arm-linux-gnueabihf-g++: note: valid arguments are: armv4 armv4t armv5t armv5te armv5tej armv6 armv6j armv6k armv6z armv6kz armv6zk armv6t2 armv6-m armv6s-m armv7 armv7-a armv7ve armv7-r armv7-m armv7e-m armv8-a armv8.1-a armv8.2-a armv8.3-a armv8.4-a armv8.5-a armv8.6-a armv8-m.base armv8-m.main armv8-r armv8.1-m.main armv9-a iwmmxt iwmmxt2
arm-linux-gnueabihf-g++: error: missing argument to ‘-march=’
gmake[2]: *** [CMakeFiles/smartproxy.dir/build.make:121: CMakeFiles/smartproxy.dir/runway_manager.cpp.o] Error 1
gmake[1]: *** [CMakeFiles/Makefile2:87: CMakeFiles/smartproxy.dir/all] Error 2
gmake: *** [Makefile:91: all] Error 2
❯
mkdir -p build
cd build
export CC=arm-linux-gnueabihf-gcc
export CXX=arm-linux-gnueabihf-g++
export CFLAGS="-march=armv6 -mfpu=vfp -mfloat-abi=hard"
export CXXFLAGS="-march=armv6 -mfpu=vfp -mfloat-abi=hard"
export LDFLAGS=""
if command -v arm-linux-gnueabihf-gcc &> /dev/null; then
cmake .. -DCMAKE_BUILD_TYPE=Release
-DCMAKE_C_COMPILER=arm-linux-gnueabihf-gcc
-DCMAKE_CXX_COMPILER=arm-linux-gnueabihf-g++
-DCMAKE_SYSTEM_NAME=Linux
-DCMAKE_SYSTEM_PROCESSOR=armv6
cmake --build . --config Release -j$(nproc)
if [ -f smartproxy ]; then
cp smartproxy ../smartproxy-linux-armv6
fi
else
echo "Cross-compiler not available, skipping build"
touch ../smartproxy-linux-armv6
...
💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.