diff options
author | L. E. Segovia <amy@centricular.com> | 2024-09-19 18:04:12 -0300 |
---|---|---|
committer | GStreamer Marge Bot <gitlab-merge-bot@gstreamer-foundation.org> | 2024-10-22 18:33:54 +0000 |
commit | 924cca6ffebf60d4ae1175e2a5eedcc7a9832a0c (patch) | |
tree | 34c99724eb3e35955e5f914af93a7e551dcf5bfd /recipes | |
parent | 0a9fb4e3d6031c3accdbd6e1e494fdeca9a38483 (diff) |
Update MinGW toolchain binaries to 14.2.0 + MinGW 12.0.0 + UCRT
Part-of: <https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/1583>
Diffstat (limited to 'recipes')
-rw-r--r-- | recipes/mingw-runtime.recipe | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/recipes/mingw-runtime.recipe b/recipes/mingw-runtime.recipe index dcfc7680..55baa3b8 100644 --- a/recipes/mingw-runtime.recipe +++ b/recipes/mingw-runtime.recipe @@ -15,18 +15,24 @@ class Recipe(recipe.Recipe): files_libs = ['libwinpthread-1', 'libstdc++-6'] files_devel = ['lib/libstdc++.a', 'lib/libstdc++.la'] files_static = [] - files_headers = ['include/GL'] + files_headers = ['include/GL', 'include/KHR'] def prepare(self): if self.config.target_platform != Platform.WINDOWS: raise InvalidRecipeError(self, "Invalid platform") if self.config.variants.uwp: self.runtime_dep = False + lib_suffix = '' + if self.config.platform != Platform.WINDOWS: + lib_suffix = f'/{self.config.build}' if self.config.target_arch == Architecture.X86: - gcclib = 'lib/gcc/x86_64-w64-mingw32/8.2.0/32/' + gcclib = f'lib{lib_suffix}/gcc/x86_64-w64-mingw32/14.2.0/32/' + # MinGW x86 requires changing GCC's exception model to DWARF2 + # See https://fedoraproject.org/wiki/Changes/Mingw32GccDwarf2 + # self._ehlib = 'libgcc_s_dw2-1' self._ehlib = 'libgcc_s_sjlj-1' else: - gcclib = 'lib/gcc/x86_64-w64-mingw32/8.2.0/' + gcclib = f'lib{lib_suffix}/gcc/x86_64-w64-mingw32/14.2.0/' self._ehlib = 'libgcc_s_seh-1' # mingw's static libraries @@ -71,6 +77,11 @@ class Recipe(recipe.Recipe): shutil.copy( os.path.join(libmingw, f), os.path.join(self.config.prefix, 'bin', f)) + # and to <toolchain>/bin because dlltool depends on it + binwinpthread = os.path.join(self.config.toolchain_prefix, 'bin', f) + if not os.path.exists(binwinpthread): + shutil.copy( + os.path.join(libmingw, f), binwinpthread) for f in ['libstdc++-6.dll']: shutil.copy( os.path.join(libdir, f), |