[libdvdnav-devel] [Git][videolan/libdvdread][master] 5 commits: CI: build wasm with the latest Docker image

Jean-Baptiste Kempf (@jbk) gitlab at videolan.org
Wed Jul 29 06:51:12 UTC 2026



Jean-Baptiste Kempf pushed to branch master at VideoLAN / libdvdread


Commits:
c7d8d33a by Steve Lhomme at 2026-07-29T08:50:13+02:00
CI: build wasm with the latest Docker image

- - - - -
8d8b8a4b by Steve Lhomme at 2026-07-29T08:50:13+02:00
CI: build wasm with extra checks

It's using a recent LLVM.

- - - - -
28a1bb57 by Steve Lhomme at 2026-07-29T08:50:13+02:00
file_posix: remove unused off_t type

It's defined in dvd_filesystem.h anyway.

- - - - -
261eba3e by Steve Lhomme at 2026-07-29T08:50:13+02:00
wasm: map off64_t to off_t

off64_t doesn't seem to exist but off_t does:

/home/videolan/emsdk/upstream/emscripten/cache/sysroot/include/bits/alltypes.h:221:16: note: 'off_t' declared here
  221 | typedef _Int64 off_t;

- - - - -
96c98740 by Steve Lhomme at 2026-07-29T08:50:13+02:00
file_posix: verify the size of off_t/off64_t is 64-bit as expected

- - - - -


3 changed files:

- .gitlab-ci.yml
- src/dvdread/dvd_filesystem.h
- src/file/file_posix.c


Changes:

=====================================
.gitlab-ci.yml
=====================================
@@ -87,7 +87,7 @@ build-win-uwp:
             - CROSSFILE: [x86_64-w64-mingw32uwp, aarch64-w64-mingw32uwp, armv7-w64-mingw32uwp, i686-w64-mingw32uwp]
 
 build-wasm:
-    image: registry.videolan.org/vlc-debian-wasm-emscripten:20250323132008
+    image: registry.videolan.org/vlc-debian-wasm-emscripten:20260617104340
     stage: build
     tags:
         - docker
@@ -95,7 +95,7 @@ build-wasm:
     script:
         - source $EMSCRIPTEN_SDK/emsdk_env.sh
         - export EM_CACHE=`em-config CACHE`
-        - meson setup build -Dwarning_level=2 --cross-file package/crossfiles/wasm-unknown-emscripten.meson
+        - meson setup build -Dwarning_level=2 -Dextra_checks=true --cross-file package/crossfiles/wasm-unknown-emscripten.meson
         - meson compile -C build
 
 build-android:


=====================================
src/dvdread/dvd_filesystem.h
=====================================
@@ -37,7 +37,7 @@ typedef __int64 off64_t;
 #elif defined(__GLIBC__)
 /* sys/types.h may have been included before _LARGEFILE64_SOURCE was defined. */
 typedef __off64_t off64_t;
-#elif defined(__APPLE__) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__) || defined(__DragonFly__)
+#elif defined(__APPLE__) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__) || defined(__DragonFly__) || defined (__wasm__)
 /* off_t is already 64 bit here so off64_t is not provided. */
 typedef off_t off64_t;
 #endif


=====================================
src/file/file_posix.c
=====================================
@@ -19,6 +19,7 @@
 
 #include "config.h"
 
+#include <assert.h>
 #include <stdlib.h>
 #include <unistd.h>
 #include <stdio.h>
@@ -42,15 +43,18 @@
 
 #include "filesystem.h"
 
+// verify the off64_t from dvd_filesystem.h has the proper size
+static_assert(sizeof(off64_t) >= (64/8), "Bogus off64_t size");
+// verify the off_t from dvd_filesystem.h has the proper size
+static_assert(sizeof(off_t) >= (64/8), "Bogus off_t size");
+
 #if defined(__APPLE__) || defined(__FreeBSD__) || defined(__OpenBSD__) || \
-    defined(__NetBSD__) || defined(__DragonFly__) || \
+    defined(__NetBSD__) || defined(__DragonFly__) || defined (__wasm__) || \
     (defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS >= 64)
-/* off_t is already 64 bit; lseek handles off64_t offsets */
+/* lseek handles off64_t offsets */
 #else
 # undef  lseek
 # define lseek lseek64
-# undef  off_t
-# define off_t off64_t
 #endif
 
 



View it on GitLab: https://code.videolan.org/videolan/libdvdread/-/compare/e37cb32951503dea45df362580b558623d32f80b...96c98740abd2aeb53e9a562fcb586793dcb8c6bd

-- 
View it on GitLab: https://code.videolan.org/videolan/libdvdread/-/compare/e37cb32951503dea45df362580b558623d32f80b...96c98740abd2aeb53e9a562fcb586793dcb8c6bd
You're receiving this email because of your account on code.videolan.org. Manage all notifications: https://code.videolan.org/-/profile/notifications | Help: https://code.videolan.org/help




More information about the libdvdnav-devel mailing list