1--- src/3rdparty/gn/build/gen.py.orig	2020-11-06 20:22:36.000000000 -0500
2+++ src/3rdparty/gn/build/gen.py	2023-03-23 14:41:20.035037000 -0400
3@@ -41,12 +41,14 @@
4       self._platform = 'fuchsia'
5     elif self._platform.startswith('freebsd'):
6       self._platform = 'freebsd'
7+    elif self._platform.startswith('midnightbsd'):
8+      self._platform = 'freebsd'
9     elif self._platform.startswith('openbsd'):
10       self._platform = 'openbsd'
11
12   @staticmethod
13   def known_platforms():
14-    return ['linux', 'darwin', 'msvc', 'aix', 'fuchsia', 'freebsd', 'openbsd']
15+    return ['linux', 'darwin', 'msvc', 'aix', 'fuchsia', 'freebsd', 'openbsd', 'midnightbsd']
16
17   def platform(self):
18     return self._platform
19@@ -69,8 +71,14 @@
20   def is_aix(self):
21     return self._platform == 'aix'
22
23+  def is_freebsd(self):
24+    return self._platform == 'freebsd'
25+
26+  def is_midnightbsd(self):
27+    return self._platform == 'midnightbsd'
28+
29   def is_posix(self):
30-    return self._platform in ['linux', 'freebsd', 'darwin', 'aix', 'openbsd']
31+    return self._platform in ['linux', 'freebsd', 'darwin', 'aix', 'openbsd', 'midnightbsd']
32
33
34 def main(argv):
35@@ -187,6 +195,7 @@
36       'darwin': 'build_mac.ninja.template',
37       'linux': 'build_linux.ninja.template',
38       'freebsd': 'build_linux.ninja.template',
39+      'midnightbsd': 'build_linux.ninja.template',
40       'aix': 'build_aix.ninja.template',
41       'openbsd': 'build_openbsd.ninja.template',
42   }[platform.platform()])
43@@ -373,6 +382,11 @@
44     elif platform.is_aix():
45       cflags_cc.append('-maix64')
46       ldflags.append('-maix64')
47+    elif platform.is_freebsd() or platform.is_midnightbsd():
48+      cflags.extend(['-Wno-deprecated-register', '-Wno-parentheses-equality'])
49+      ldflags.extend(['-pthread'])
50+      libs.extend(['-lexecinfo', '-lkvm', '-lutil'])
51+      include_dirs += ['/usr/local/include']
52
53     if platform.is_posix():
54       ldflags.append('-pthread')
55