diff --git a/meson.build b/meson.build
index 898d025..0da4fc5 100644
--- a/meson.build
+++ b/meson.build
@@ -387,7 +387,8 @@ if with_egl and not (with_platform_drm or with_platform_surfaceless or with_plat
 endif
 
 # Android uses emutls for versions <= P/28. For USE_ELF_TLS we need ELF TLS.
-if host_machine.system() != 'windows' and (not with_platform_android or get_option('platform-sdk-version') >= 29)
+with_use_elf_tls = get_option('use-elf-tls')
+if with_use_elf_tls and host_machine.system() != 'windows' and (not with_platform_android or get_option('platform-sdk-version') >= 29)
   pre_args += '-DUSE_ELF_TLS'
 endif
 
diff --git a/meson_options.txt b/meson_options.txt
index 626baf3..6e4637c 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -366,3 +366,9 @@ option(
   value : 25,
   description : 'Android Platform SDK version. Default: Nougat version.'
 )
+option(
+  'use-elf-tls',
+  type : 'boolean',
+  value : false,
+  description : 'Build support for initial-exec TLS model'
+)
