summaryrefslogtreecommitdiff
path: root/recipes
diff options
context:
space:
mode:
authorL. E. Segovia <amy@centricular.com>2024-09-19 18:04:12 -0300
committerGStreamer Marge Bot <gitlab-merge-bot@gstreamer-foundation.org>2024-10-22 18:33:54 +0000
commit924cca6ffebf60d4ae1175e2a5eedcc7a9832a0c (patch)
tree34c99724eb3e35955e5f914af93a7e551dcf5bfd /recipes
parent0a9fb4e3d6031c3accdbd6e1e494fdeca9a38483 (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.recipe17
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),