Commit Graph
3 Commits
Author SHA1 Message Date
Xavier Del CampoandGitHub 9598611e35 CMakeLists.txt: Do not require C++ (#3956)
By default, the project() CMake command defaults to C and C++. [1]
Therefore, CMake might perform tests for both C and C++ compilers as
part of the configuration phase.

However, this has the consequence of the configuration phase to fail if
the system does not have a C++ toolchain installed, even if C++ is not
really used by the top-level project under the default settings.

Some configurations might still require a C++ toolchain, so
enable_language is selectively called under such circumstances.

[1]: https://cmake.org/cmake/help/latest/command/project.html
2024-12-20 13:05:50 +08:00
Xavier Del CampoandGitHub 296c3cc69d wasm_export.h: Use "default" visibility for gcc and clang (#3957)
Since the top-level CMakelists.txt is appending `-fvisibility=hidden` to
the compile options, no public symbols are exported by default. This
forbids users from linking against the shared library.

Using `gcc/clang` attributes [1], it is possible to override the definition
for `WASM_RUNTIME_API_EXTERN` so that only required symbols are
correctly exported.

[1]: https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html#Common-Function-Attributes
2024-12-19 08:49:13 +08:00
Xavier Del CampoandGitHub ade97ac3e1 wamr-compiler: Fix non-x86{_64} host builds (#3037)
The build system assumed sizeof (void *) == 8 as a host system
running on a x86_64 architecture, x86 otherwise. However, this
assumption is invalid for most other architectures out there, such as
aarch64 or armv7l.

This PR refers to the CMAKE_HOST_SYSTEM_PROCESSOR variable
which, according to the documentation, typically refers to the output
from "uname -m" for Unix-like systems.
2024-01-17 15:56:04 +08:00