Skip to content

[boost-regex] build failure with emscripten #27641

@KivApple

Description

@KivApple

Host Environment

  • OS: Windows
  • Compiler: emcc (Emscripten gcc/clang-like replacement + linker emulating GNU ld) 3.1.13 (531257621816c200bc7c3be53129494afd029aec)

To Reproduce

Steps to reproduce the behavior:

./vcpkg install boost-regex:wasm32-emscripten

Failure logs

A lot of errors about cstddef not found like this:

em++: error: 'C:/Users/kiv/Apps/emsdk/upstream/bin\clang++.exe -target wasm32-unknown-emscripten -D__EMSCRIPTEN_SHARED_MEMORY__=1 -DEMSCRIPTEN -D__EMSCRIPTEN_major__=3 -D__EMSCRIPTEN_minor__=1 -D__EMSCRIPTEN_tiny__=13 -fignore-exceptions -fvisibility=default -mllvm -combiner-global-alias-analysis=false -mllvm -enable-emscripten-sjlj -mllvm -disable-lsr -Werror=implicit-function-declaration -Xclang -iwithsysroot/include/SDL --sysroot=C:\Users\kiv\Apps\emsdk\upstream\emscripten\cache\sysroot -Xclang -iwithsysroot/include\compat -c -x c++ -g3 -m32 -pthread -O0 -fno-inline -Wall -g3 -march=i686 --target=i386-pc-linux -DBOOST_ALL_NO_LIB=1 -I..\include -IC:\Users\kiv\Desktop\MyProject\cmake-build-emscripten-release\vcpkg_installed\wasm32-emscripten\include -matomics -mbulk-memory ..\build\..\src\posix_api.cpp -o C:\Users\kiv\Desktop\MyProkect\cmake-build-emscripten-release\_deps\vcpkg-src\buildtrees\boost-regex\wasm32-emscripten-dbg\boost\build\4ca2dc7091124e4d7a9c56559651d667\posix_api.o' failed (returned 1)
clang-linux.compile.c++ C:\Users\kiv\Desktop\MyProject\cmake-build-emscripten-release\_deps\vcpkg-src\buildtrees\boost-regex\wasm32-emscripten-dbg\boost\build\4ca2dc7091124e4d7a9c56559651d667\wide_posix_api.o

  "C:/Users/kiv/Apps/emsdk/upstream/emscripten/em++.bat" -c -x c++ -g -m32 -pthread -O0 -fno-inline -Wall -g -march=i686 --target=i386-pc-linux  -DBOOST_ALL_NO_LIB=1 -I"..\include" -I"C:\Users\kiv\Desktop\MyProject\cmake-build-emscripten-release\vcpkg_installed\wasm32-emscripten\include"   -o "C:\Users\kiv\Desktop\MyProject\cmake-build-emscripten-release\_deps\vcpkg-src\buildtrees\boost-regex\wasm32-emscripten-dbg\boost\build\4ca2dc7091124e4d7a9c56559651d667\wide_posix_api.o" "..\build\..\src\wide_posix_api.cpp"

clang++: warning: argument unused during compilation: '-matomics' [-Wunused-command-line-argument]
clang++: warning: argument unused during compilation: '-mbulk-memory' [-Wunused-command-line-argument]
In file included from ..\build\..\src\wide_posix_api.cpp:21:
In file included from ..\include\boost/regex/config.hpp:76:
In file included from C:\Users\kiv\Desktop\MyProject\cmake-build-emscripten-release\vcpkg_installed\wasm32-emscripten\include\boost/config.hpp:44:
C:\Users\kiv\Desktop\MyProject\cmake-build-emscripten-release\vcpkg_installed\wasm32-emscripten\include\boost/config/detail/select_stdlib_config.hpp:26:14: fatal error: 'cstddef' file not found
#    include <cstddef>
             ^~~~~~~~~
1 error generated.

I guess the problem is -march=i686 that forces clang++ try to compile i686 code instead of wasm and EMSDK distribution doesn't have i686 includes (and even if it has it makes no sense, because the real compilation target architecture is wasm).

Additional context

Metadata

Metadata

Assignees

No one assigned

    Labels

    category:community-tripletA PR or issue related to community triplets not officially validated by the vcpkg team.category:port-bugThe issue is with a library, which is something the port should already support

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions