[libflac] Fix WASM build by disabling stack protector via feature (#37086)

This fixes the `wasm32-emscripten` build of `libflac`, which would
previously fail with

<details>

<summary>Linking Errors</summary>

```
[59/61] : && /opt/homebrew/Cellar/emscripten/3.1.54/libexec/emcc -Wall -Wextra -Wstrict-prototypes -Wmissing-prototypes -Waggregate-return -Wcast-align -Wnested-externs -Wshadow -Wundef -Wmissing-declarations -Winline  -DNDEBUG -O3 -DNDEBUG  microbench/CMakeFiles/benchmark_residual.dir/benchmark_residual.c.o microbench/CMakeFiles/benchmark_residual.dir/util.c.o -o microbench/benchmark_residual.js  src/libFLAC/libFLAC.a  -lrt  -lm  <path to vcpkg>/installed/wasm32-emscripten-release/lib/libogg.a && :
FAILED: microbench/benchmark_residual.js 
: && /opt/homebrew/Cellar/emscripten/3.1.54/libexec/emcc -Wall -Wextra -Wstrict-prototypes -Wmissing-prototypes -Waggregate-return -Wcast-align -Wnested-externs -Wshadow -Wundef -Wmissing-declarations -Winline  -DNDEBUG -O3 -DNDEBUG  microbench/CMakeFiles/benchmark_residual.dir/benchmark_residual.c.o microbench/CMakeFiles/benchmark_residual.dir/util.c.o -o microbench/benchmark_residual.js  src/libFLAC/libFLAC.a  -lrt  -lm  <path to vcpkg>/installed/wasm32-emscripten-release/lib/libogg.a && :
wasm-ld: error: microbench/CMakeFiles/benchmark_residual.dir/benchmark_residual.c.o: undefined symbol: __stack_chk_guard
wasm-ld: error: microbench/CMakeFiles/benchmark_residual.dir/benchmark_residual.c.o: undefined symbol: __stack_chk_guard
wasm-ld: error: microbench/CMakeFiles/benchmark_residual.dir/benchmark_residual.c.o: undefined symbol: __stack_chk_fail
wasm-ld: error: microbench/CMakeFiles/benchmark_residual.dir/benchmark_residual.c.o: undefined symbol: __stack_chk_guard
wasm-ld: error: microbench/CMakeFiles/benchmark_residual.dir/benchmark_residual.c.o: undefined symbol: __stack_chk_guard
wasm-ld: error: microbench/CMakeFiles/benchmark_residual.dir/benchmark_residual.c.o: undefined symbol: __stack_chk_fail
```

</details>

The stack protector flag is [documented
here](66152791d8/CMakeLists.txt (L21))
and is [unsupported in
Emscripten](https://github.com/emscripten-core/emscripten/issues/17030).

### Checklist

- [x] Changes comply with the [maintainer
guide](https://github.com/microsoft/vcpkg-docs/blob/main/vcpkg/contributing/maintainer-guide.md).
- [x] SHA512s are updated for each updated download.
- [x] The "supports" clause reflects platforms that may be fixed by this
new version.
- [x] Any fixed [CI
baseline](https://github.com/microsoft/vcpkg/blob/master/scripts/ci.baseline.txt)
entries are removed from that file.
- [x] Any patches that are no longer applied are deleted from the port's
directory.
- [x] The version database is fixed by rerunning `./vcpkg x-add-version
--all` and committing the result.
- [x] Only one version is added to each modified port's versions file.
This commit is contained in:
fwcd 2024-03-05 11:06:46 +01:00 committed by GitHub
parent 431aa71ec4
commit 2a8f2c6467
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 12 additions and 1 deletions

View File

@ -17,6 +17,7 @@ endif()
vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
FEATURES
asm WITH_ASM
stack-protector WITH_STACK_PROTECTOR
)
vcpkg_cmake_configure(

View File

@ -1,6 +1,7 @@
{
"name": "libflac",
"version": "1.4.3",
"port-version": 1,
"description": "Library for manipulating FLAC files",
"homepage": "https://xiph.org/flac/",
"license": "BSD-3-Clause",
@ -19,6 +20,10 @@
"asm": {
"description": "Use any assembly optimization routines",
"supports": "x86"
},
"stack-protector": {
"description": "Build with stack smashing protection",
"supports": "!emscripten"
}
}
}

View File

@ -4346,7 +4346,7 @@
},
"libflac": {
"baseline": "1.4.3",
"port-version": 0
"port-version": 1
},
"libfontenc": {
"baseline": "1.1.4",

View File

@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "8a05fdac2efaa1a739e13289a2bec7d6d32e84a3",
"version": "1.4.3",
"port-version": 1
},
{
"git-tree": "b03480bcc5f27cdc9a5f51fef012f880f1b0bf8d",
"version": "1.4.3",