Skip to content

Windows with clang: fix undefined symbols#601

Merged
biojppm merged 2 commits into
masterfrom
fix/600_undefined_exports
May 19, 2026
Merged

Windows with clang: fix undefined symbols#601
biojppm merged 2 commits into
masterfrom
fix/600_undefined_exports

Conversation

@biojppm
Copy link
Copy Markdown
Owner

@biojppm biojppm commented May 16, 2026

Fixes #600

@codecov
Copy link
Copy Markdown

codecov Bot commented May 16, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 98.83%. Comparing base (297d805) to head (97ee5ca).

Additional details and impacted files
@@            Coverage Diff             @@
##           master     #601      +/-   ##
==========================================
+ Coverage   98.72%   98.83%   +0.10%     
==========================================
  Files          44       43       -1     
  Lines       13805    13776      -29     
==========================================
- Hits        13629    13615      -14     
+ Misses        176      161      -15     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@biojppm biojppm force-pushed the fix/600_undefined_exports branch from 4398a0d to 9ec1900 Compare May 16, 2026 14:18
@biojppm biojppm force-pushed the fix/600_undefined_exports branch 13 times, most recently from 0ede364 to a21d589 Compare May 18, 2026 23:54
These export failures were causing errors on lld-link and other flavors

Iteration command:

```bash
set -xe ; \
 cd /c/proj/rapidyaml/ ; \
 export C4_EXTERN_DIR=`pwd`/build/extern ; \
 export CTEST_PARALLEL_LEVEL=`nproc` ; \
 \
 \
 function build_and_run() \
 {\
     tgt0=$1 ; \
     shift ; \
     id0=$1 ; \
     shift ; \
     for ty in Debug Release ; do \
       for shared in OFF ON ; do \
         dir=build/$id0-$ty-shared$shared ; \
         set +x ; \
         echo ; \
         echo "$dir ============================================" ; \
         echo ; \
         set -x ; \
         sleep 2 ; \
         cmake -B $dir -DCMAKE_BUILD_TYPE=$ty \
            -DBUILD_SHARED_LIBS=$shared "$@" \
         ; \
         cmake --build $dir --config $ty --parallel --target $tgt0 ; \
         set +x ; \
         echo ; \
         echo "$dir: finished!" ; \
         echo ; \
       done ; \
     done ; \
 } ; \
 \
 \
 function build_and_run_clangxx() \
 { \
     tgt1=$1 ; \
     shift ; \
     id1=$1 ; \
     shift ; \
     ( \
       cldir=/c/clang+llvm-22.1.5-x86_64-pc-windows-msvc/bin ; \
       oldpath="$PATH" ; \
       export PATH="$cldir:$PATH" ; \
       which clang++ ; \
       clang++ --version ; \
       build_and_run $tgt1 \
           $id1-clangxx \
           -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_C_COMPILER=clang \
           -G "Unix Makefiles" "$@" ; \
       export PATH="$oldpath" ; \
       ) ; \
 } ; \
 \
 \
 function build_and_run_mingw() \
 { \
     ver2=$1 ; \
     shift ; \
     tgt2=$1 ; \
     shift ; \
     id2=$1 ; \
     shift ; \
     ( \
       cldir=/c/mingw-w64devkit-$ver2/bin ; \
       oldpath="$PATH" ; \
       export PATH="$cldir:$PATH" ; \
       which c++ ; \
       c++ --version ; \
       build_and_run $tgt2 \
           $id2-mingw-$ver2 \
           -DCMAKE_CXX_COMPILER=c++ -DCMAKE_C_COMPILER=cc \
           -G "Unix Makefiles" "$@" ; \
       export PATH="$oldpath" ; \
       ) ; \
 } ; \
 \
 \
 function run_everywhere() \
 { \
     tgt3=$1 ; \
     shift ; \
     id3=$1 ; \
     shift ; \
     build_and_run                 $tgt3 $id3-vs      -G "Visual Studio 18 2026" "$@" ; \
     build_and_run                 $tgt3 $id3-clangcl -G "Visual Studio 18 2026" -T ClangCL "$@" ;
     build_and_run_clangxx         $tgt3 $id3         "$@" ; \
     build_and_run_mingw   gcc15.2 $tgt3 $id3         "$@" ; \
     build_and_run_mingw   gcc16.1 $tgt3 $id3         "$@" ; \
 } ; \
 \
 \
 ( cd ext/c4core ; run_everywhere c4core-test-run normal -DC4CORE_DEV=ON -DC4CORE_BUILD_BENCHMARKS=OFF ) ; \
 \
 \
 run_everywhere ryml-test-run nostandalone -DRYML_DEV=ON -DRYML_BUILD_BENCHMARKS=OFF -D RYML_STANDALONE=OFF ; \
 run_everywhere ryml-test-run   standalone -DRYML_DEV=ON -DRYML_BUILD_BENCHMARKS=OFF -D RYML_STANDALONE=ON ; \
 \
 \
 ( rm -rvf src_singleheader ; cd samples/singleheaderlib ; run_everywhere run normal )
 ```
@biojppm biojppm force-pushed the fix/600_undefined_exports branch from a21d589 to 97ee5ca Compare May 19, 2026 00:52
@biojppm biojppm merged commit d553185 into master May 19, 2026
393 of 394 checks passed
@biojppm biojppm deleted the fix/600_undefined_exports branch May 19, 2026 08:32
Hancock33 added a commit to Hancock33/batocera.piboy that referenced this pull request May 23, 2026
-----------------------------------------------------------------------------------
eden.mk 9b18d0b1113fb2b73acc539d2e4dfae85e511cd4 # Version: Commits on May 22, 2026
-----------------------------------------------------------------------------------
[tools]  refactor, use #!/bin/sh, update license files (#3998)

-----------------------------------------------------------------------------------
ymir.mk 9f3425a1cd8f70e731179b0ca3fca04b0489d28c # Version: Commits on May 22, 2026
-----------------------------------------------------------------------------------
chore(app): Removed graphics backend option as it served no purpose at this time

Ymir will rely on the default backend used by the SDL3 Renderer API, which should be compatible with most systems.

GPU rendering will include a rewrite of the app's graphics subsystem, moving away from SDL Renderer to our own implementation.,

-------------------------------------------------------
rapidyaml.mk v0.13.0 # Version: Commits on May 22, 2026
-------------------------------------------------------
- [PR#606](biojppm/rapidyaml#606): scalar style utilities now are specific to flow/block mode. This enables stable-style roundtrips of block-mode plain scalars with characters invalid in flow mode:

  ```yaml

  # these scalars were previously emitted as single-quoted style

  # because they were conservatively assumed to be in flow mode.

  - doe: a deer, a female deer

  - (10,11)

  - also scalars containing [] and {}

  ```

  - `scalar_style_choose()` was split into `scalar_style_choose_{flow,block}()`

  - `scalar_style_query_plain()` was split into `scalar_style_query_plain_{flow,block}()`

  - `NodeType::type_str(NodeType,flags)`: remove zero-termination, use common approach of returning required size

  - Add `NodeType::type_str_sub()`

- [PR#605](biojppm/rapidyaml#605): fix parse errors:

  - `:` and `#` on continuation lines of multiline plain scalars:

     ```yaml

     [plain

      :scalar] # leading colon belongs to the scalar

     ```

  - Tabs inside quoted scalars opening a map were mistook for indentation tabs:

    ```yaml

    foo:

      '\\ta': b

    ```

- [PR#604](biojppm/rapidyaml#604): add `string_view` and `span` to the `c4/yml/std/std.hpp` interop umbrella header.

- Fix [600](biojppm/rapidyaml#600): shared symbols not exported in clang on Windows ([PR#601](biojppm/rapidyaml#601)).

- Fix [256](biojppm/rapidyaml#256): installation directory on Linux 64bit ([PR#599](biojppm/rapidyaml#599)). See also original fix at [cmake#16](biojppm/cmake#16). Big thanks to @GabrielBarrantes and @musicinmybrain, not just for their fixes but also for all their downstream work!

- [PR#591](biojppm/rapidyaml#591): Add missing includes to avoid compilation warning. Thanks @GabrielBarrantes!

- Update c4core to [0.3.0](https://github.com/biojppm/c4core/releases/tag/v0.3.0).

### Thanks

 - @GabrielBarrantes

 - @musicinmybrain

,

-------------------------------------------------------------------------------------------------
libretro-geargrafx.mk 15e31680428046281b4457d126f503d8ab8e2f8f # Version: Commits on May 22, 2026
-------------------------------------------------------------------------------------------------
Fix scsi audio command completion. Fix #125,

-----------------------------------------------------------------------------------------------------
libretro-mame2003-plus.mk 45f7a7f89f60aa1da6e6a136bbc1d1adeea8af91 # Version: Commits on May 22, 2026
-----------------------------------------------------------------------------------------------------
Rom ignore (#2022)

* add rom ignore

* fix gng romloads,

----------------------------------------------------------------------------------------------
libretro-stella.mk 7cb8757b44e563e67cdd4a59be19aab7e2b139ee # Version: Commits on May 22, 2026
----------------------------------------------------------------------------------------------
Cleaned up EventMappingWidget, removing some FIXME's.,
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

undefined symbols on windows + clang

1 participant