From 52163ed9823cef0e8975cfe7bf07091cbeb744e6 Mon Sep 17 00:00:00 2001 From: yhirose Date: Mon, 7 Jul 2025 21:30:08 -0400 Subject: [PATCH] Fix #2148 (#2173) * Fix #2148 * Removed 32bit environment * buld-error-check-on-32bit * Use 32bit depedency from Windows --- .github/workflows/test.yaml | 28 +++++++++++++++++++++++----- httplib.h | 19 +++++++++++++++---- 2 files changed, 38 insertions(+), 9 deletions(-) diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 296ad29..135bf7b 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -40,7 +40,7 @@ jobs: clang-format --version cd test && make style_check - ubuntu: + build-error-check-on-32bit: runs-on: ubuntu-latest if: > (github.event_name == 'push') || @@ -53,10 +53,28 @@ jobs: - arch_flags: -m32 arch_suffix: :i386 name: (32-bit) - - arch_flags: - arch_suffix: - name: (64-bit) - name: ubuntu ${{ matrix.config.name }} + steps: + - name: checkout + uses: actions/checkout@v4 + - name: install libraries + run: | + sudo dpkg --add-architecture i386 + sudo apt-get update + sudo apt-get install -y libc6-dev${{ matrix.config.arch_suffix }} libstdc++-13-dev${{ matrix.config.arch_suffix }} \ + libssl-dev${{ matrix.config.arch_suffix }} libcurl4-openssl-dev${{ matrix.config.arch_suffix }} \ + zlib1g-dev${{ matrix.config.arch_suffix }} libbrotli-dev${{ matrix.config.arch_suffix }} \ + libzstd-dev${{ matrix.config.arch_suffix }} + - name: build and run tests (expect failure) + run: cd test && make test EXTRA_CXXFLAGS="${{ matrix.config.arch_flags }}" + continue-on-error: true + + ubuntu: + runs-on: ubuntu-latest + if: > + (github.event_name == 'push') || + (github.event_name == 'pull_request' && + github.event.pull_request.head.repo.full_name != github.event.pull_request.base.repo.full_name) || + (github.event_name == 'workflow_dispatch' && github.event.inputs.test_linux == 'true') steps: - name: checkout uses: actions/checkout@v4 diff --git a/httplib.h b/httplib.h index ec8349e..eaea3d8 100644 --- a/httplib.h +++ b/httplib.h @@ -10,6 +10,21 @@ #define CPPHTTPLIB_VERSION "0.22.0" +/* + * Platform compatibility check + */ + +#if defined(_WIN32) && !defined(_WIN64) +#error \ + "cpp-httplib doesn't support 32-bit Windows. Please use a 64-bit compiler." +#elif defined(__SIZEOF_POINTER__) && __SIZEOF_POINTER__ < 8 +#error \ + "cpp-httplib doesn't support 32-bit platforms. Please use a 64-bit compiler." +#elif defined(__SIZEOF_SIZE_T__) && __SIZEOF_SIZE_T__ < 8 +#error \ + "cpp-httplib doesn't support platforms where size_t is less than 64 bits." +#endif + /* * Configuration */ @@ -177,11 +192,7 @@ #pragma comment(lib, "ws2_32.lib") -#ifdef _WIN64 using ssize_t = __int64; -#else -using ssize_t = long; -#endif #endif // _MSC_VER #ifndef S_ISREG