update games/godot to 3.2.1

classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

update games/godot to 3.2.1

Omar Polo-3

Hello,

This updates games/godot to the latest stable 3.2.1.  For about
two
months now me and a friend have been using this on a nearly daily
basis.

On my machine (amdgpu) it leaves a core file around but otherwise
is
working; on my friend machine (inteldrm) it doesn't core dumps.
We
tested everything but the networking stuff AFAIK.

I didn't have the time (yet) to fully debug this issue.

Do I have to reset the REVISION back to 0 since this changes the
port
version?

Passes portcheck and port-lib-depends-check.

Some demo projects that can be used to test the engine can be
found
here:
        https://github.com/godotengine/godot-demo-projects

Some notes about the patch:

 - pulseaudio is still disabled: I have a WIP patch (not included)
 to
   bring back audio support using libao.  I plan to submit it soon
   after this update

 - the -Wno-deprecated-register is to avoid errors when it
 includes
   headers from /usr/X11R6/include.

 - in 3.1 they replaced openssl with mbedtls, hence the removal of
 ssl
   from WANTLIB

 - an included library, thirdparty/minizip, uses z_crc_t which
 isn't
   defined by the zlib in base.  I've copied the definition of
   z_crc_t
   from a newer zlib (1.2.11).

comments?


godot.patch (21K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: update games/godot to 3.2.1

Thomas Frohwein-2
Thanks for this diff and the interest in the port.

On Fri, May 29, 2020 at 03:15:11PM +0200, Omar Polo wrote:
[...]
> On my machine (amdgpu) it leaves a core file around but otherwise is
> working; on my friend machine (inteldrm) it doesn't core dumps. We

Can you provide some details about the core dump? Does Godot crash on
amdgpu? Can you share a backtrace with gdb(egdb) from ports? I don't
understand if this is just like the already known bugs with amdgpu at
this point or something new.

> working; on my friend machine (inteldrm) it doesn't core dumps. We
> tested everything but the networking stuff AFAIK.

As your patch includes disabling ssl in favor of mbedtls, I would think
that some networking should be tested.

> I didn't have the time (yet) to fully debug this issue.
>
> Do I have to reset the REVISION back to 0 since this changes the port
> version?

Yes, REVISION is only used if changes happen in the package while the
version doesn't change. It effectively adds pX to the package. See
packages-specs(7) and bsd.port.mk(5). So just remove the REVISION line
when updating the port's version.

[...]
> - pulseaudio is still disabled: I have a WIP patch (not included) to
>   bring back audio support using libao.  I plan to submit it soon
>   after this update

I would be _very_ interested in this after the update. I've been trying
to come up with an sndio backend myself, but haven't got it to work so
far.

[...]
> - in 3.1 they replaced openssl with mbedtls, hence the removal of ssl
>   from WANTLIB

Must be a bundled mbedtls, as nothing is added to WANTLIB and/or
LIB_DEPENDS. Might be better to find a way to use our ports version...

[...]

I haven't tested this yet. I am comparing it with the diff that I have
been working on and will get back to you. Your diff is much longer than
what I had (537 vs 199 lines). I'm gonna see what we need.

Port updates are usually preferred as inline diff. Just make sure your
mail client doesn't mangle whitespace.

Reply | Threaded
Open this post in threaded view
|

Re: update games/godot to 3.2.1

Omar Polo-3

Thomas Frohwein <[hidden email]> writes:

> Thanks for this diff and the interest in the port.

I don't know why but I've completely overlooked the MAINTAINER variable
in the makefile, and assumed that the port was without one.  I should
have cc'd you in the first place, I'm sorry.

> On Fri, May 29, 2020 at 03:15:11PM +0200, Omar Polo wrote:
> [...]
>> On my machine (amdgpu) it leaves a core file around but otherwise is
>> working; on my friend machine (inteldrm) it doesn't core dumps. We
>
> Can you provide some details about the core dump? Does Godot crash on
> amdgpu? Can you share a backtrace with gdb(egdb) from ports? I don't
> understand if this is just like the already known bugs with amdgpu at
> this point or something new.

The amdgpu vs inteldrm was a red herring, the cause is the window
manager.  If I close the game (or the editor window) either by
left-clicking its icon in tint2 or with the cwm keybinding, Godot logs:

        X connection to :0 broken (explicit kill or server shutdown).
        Pure virtual function called!

That's why I got that dump every time.  I still haven't asked my friend,
but I suspect he quits either by <C-q> or Scene -> quit.

The (not so useful I fear) stacktrace is the following:

; egdb `which godot` godot.core
[...]
Reading symbols from /usr/local/bin/godot...(no debugging symbols found)...done.
[New process 125523]
[New process 452006]
[New process 330887]
[New process 200582]
Core was generated by `godot'.
Program terminated with signal SIGABRT, Aborted.
#0  thrkill () at -:3
3       -: No such file or directory.
[Current thread is 1 (process 125523)]
(gdb) bt
#0  thrkill () at -:3
#1  0x0000114ce6265fce in _libc_abort () at /usr/src/lib/libc/stdlib/abort.c:51
#2  0x0000114cdefcb11c in abort_message (format=<optimized out>)
    at /usr/src/lib/libcxxabi/src/abort_message.cpp:77
#3  0x0000114cdefcb352 in __cxa_pure_virtual ()
    at /usr/src/lib/libcxxabi/src/cxa_virtual.cpp:17
#4  0x0000114a9f9b7806 in ?? ()
#5  0x0000114a9dc286db in ?? ()
#6  0x0000114cff782361 in _rthread_start (v=<optimized out>)
    at /usr/src/lib/librthread/rthread.c:96
#7  0x0000114ce6248e48 in __tfork_thread ()
    at /usr/src/lib/libc/arch/amd64/sys/tfork_thread.S:77
#8  0x0000000000000000 in ?? ()
(gdb)

I'm rebuilding Godot with DEBUG_PACKAGES set to make the stacktrace more
useful.

(note that DEBUG_PACKAGES is not included in the updated diff)

By the way, do you know why the scons module explicitly disables ccache?
I was hoping to reduce the compilation time, but even with
USE_CCACHE=Yes and forcing NO_CCACHE=No scons still uses c++

>> working; on my friend machine (inteldrm) it doesn't core dumps. We
>> tested everything but the networking stuff AFAIK.
>
> As your patch includes disabling ssl in favor of mbedtls, I would think
> that some networking should be tested.

I'm still learning godot.  I'm going to study how to test this properly
and report back.

>> I didn't have the time (yet) to fully debug this issue.
>>
>> Do I have to reset the REVISION back to 0 since this changes the port
>> version?
>
> Yes, REVISION is only used if changes happen in the package while the
> version doesn't change. It effectively adds pX to the package. See
> packages-specs(7) and bsd.port.mk(5). So just remove the REVISION line
> when updating the port's version.

done!

> [...]
>> - pulseaudio is still disabled: I have a WIP patch (not included) to
>>   bring back audio support using libao.  I plan to submit it soon
>>   after this update
>
> I would be _very_ interested in this after the update. I've been trying
> to come up with an sndio backend myself, but haven't got it to work so
> far.

It's basically a revert of #2840[0] ("Revert libao audio driver", it's a
revert of a revert...) with adjustments to match the changes in the
AudioDriver.

After a quick search on the github issues, it seems that they added the
libao support explicitly to support sndio, but then later they removed
it without an explanation (or I didn't found it).

My plan was to handle this directly with upstream, but since mid April I
am no longer able to run Godot from master (i.e. after the merge of the
vulkan branch).  I can still build it, but it doesn't start due to some
error in the vulkan loader I don't understand (and didn't have the time
to investigate further.)

> [...]
>> - in 3.1 they replaced openssl with mbedtls, hence the removal of ssl
>>   from WANTLIB
>
> Must be a bundled mbedtls, as nothing is added to WANTLIB and/or
> LIB_DEPENDS. Might be better to find a way to use our ports version...

also done!

> [...]
>
> I haven't tested this yet. I am comparing it with the diff that I have
> been working on and will get back to you. Your diff is much longer than
> what I had (537 vs 199 lines). I'm gonna see what we need.

That's quite a difference.  I just started by bumping the version and
then patching until it ran :)

If you find unnecessary hunks I'll be more than happy to drop them.

> Port updates are usually preferred as inline diff. Just make sure your
> mail client doesn't mangle whitespace.

also done!

Cheers!

[0]: https://github.com/godotengine/godot/pull/2840

Index: Makefile
===================================================================
RCS file: /cvs/ports/games/godot/Makefile,v
retrieving revision 1.10
diff -u -p -r1.10 Makefile
--- Makefile 12 Apr 2020 13:30:55 -0000 1.10
+++ Makefile 2 Jun 2020 18:32:33 -0000
@@ -2,22 +2,21 @@
 
 COMMENT = 2D and 3D game engine
 
-V = 3.0.6
+V = 3.2.1
 DISTNAME = godot-${V}-stable
 PKGNAME = godot-${V}
 CATEGORIES = games
 HOMEPAGE = https://godotengine.org/
 MAINTAINER = Thomas Frohwein <[hidden email]>
-REVISION = 3
 
 # MIT
 PERMIT_PACKAGE = Yes
 
 WANTLIB += ${COMPILER_LIBCXX}
 WANTLIB += GL X11 Xau Xcursor Xdmcp Xext Xfixes Xi Xinerama Xrandr
-WANTLIB += Xrender c crypto enet execinfo freetype intl m mpcdec
-WANTLIB += ogg opus opusfile png ssl theora theoradec vorbis vorbisfile
-WANTLIB += webp xcb z pcre2-32 vpx zstd
+WANTLIB += Xrender c enet execinfo freetype intl m mbedtls mbedcrypto
+WANTLIB += mbedx509 mpcdec ogg opus opusfile png theora theoradec
+WANTLIB += vorbis vorbisfile webp xcb z pcre2-32 vpx zstd
 
 COMPILER = base-clang ports-gcc base-gcc
 
@@ -32,7 +31,7 @@ MODULES = devel/scons
 MODSCONS_FLAGS = CC="${CC}" \
  CXX="${CXX}" \
  CFLAGS="${CFLAGS}" \
- CXXFLAGS="${CXXFLAGS}" \
+ CXXFLAGS="${CXXFLAGS} -Wno-deprecated-register" \
  LINKFLAGS="${LDFLAGS} -lintl -lmpcdec" \
  builtin_enet=no \
  builtin_freetype=no \
@@ -44,7 +43,7 @@ MODSCONS_FLAGS = CC="${CC}" \
  builtin_libvorbis=no \
  builtin_libvpx=no \
  builtin_libwebp=no \
- builtin_openssl=no \
+ builtin_mbedtls=no \
  builtin_opus=no \
  builtin_pcre2=no \
  builtin_zlib=no \
@@ -65,7 +64,8 @@ LIB_DEPENDS = archivers/zstd \
  graphics/png \
  multimedia/libtheora \
  multimedia/libvpx \
- net/enet
+ net/enet \
+ security/polarssl
 
 NO_TEST = Yes
 
Index: distinfo
===================================================================
RCS file: /cvs/ports/games/godot/distinfo,v
retrieving revision 1.3
diff -u -p -r1.3 distinfo
--- distinfo 25 Aug 2018 19:20:29 -0000 1.3
+++ distinfo 2 Jun 2020 18:32:33 -0000
@@ -1,2 +1,2 @@
-SHA256 (godot-3.0.6-stable.tar.xz) = LfHLNqAMaHrnShHX31vcEyyBapNOJpbswzgnAI/5xrk=
-SIZE (godot-3.0.6-stable.tar.xz) = 12517428
+SHA256 (godot-3.2.1-stable.tar.xz) = VWtWQHn7GyGgUyDDWSaLIDLIfYs7+qT9EE6/nJCauH0=
+SIZE (godot-3.2.1-stable.tar.xz) = 14066488
Index: patches/patch-core_io_SCsub
===================================================================
RCS file: /cvs/ports/games/godot/patches/patch-core_io_SCsub,v
retrieving revision 1.1.1.1
diff -u -p -r1.1.1.1 patch-core_io_SCsub
--- patches/patch-core_io_SCsub 27 Apr 2018 07:32:53 -0000 1.1.1.1
+++ patches/patch-core_io_SCsub 2 Jun 2020 18:32:33 -0000
@@ -9,9 +9,9 @@ based on github issue #17374
 Index: core/io/SCsub
 --- core/io/SCsub.orig
 +++ core/io/SCsub
-@@ -5,4 +5,4 @@ Import('env')
- env.add_source_files(env.core_sources, "*.cpp")
+@@ -3,3 +3,5 @@
+ Import('env')
 
- Export('env')
--
+ env.add_source_files(env.core_sources, "*.cpp")
++
 +env.Append(CCFLAGS="-DZSTD_STATIC_LINKING_ONLY")
Index: patches/patch-core_io_compression_cpp
===================================================================
RCS file: /cvs/ports/games/godot/patches/patch-core_io_compression_cpp,v
retrieving revision 1.1.1.1
diff -u -p -r1.1.1.1 patch-core_io_compression_cpp
--- patches/patch-core_io_compression_cpp 27 Apr 2018 07:32:53 -0000 1.1.1.1
+++ patches/patch-core_io_compression_cpp 2 Jun 2020 18:32:33 -0000
@@ -9,17 +9,16 @@ based on github issue #17374
 Index: core/io/compression.cpp
 --- core/io/compression.cpp.orig
 +++ core/io/compression.cpp
-@@ -79,16 +79,9 @@ int Compression::compress(uint8_t *p_dst, const uint8_
+@@ -80,16 +80,8 @@ int Compression::compress(uint8_t *p_dst, const uint8_
 
  } break;
  case MODE_ZSTD: {
 - ZSTD_CCtx *cctx = ZSTD_createCCtx();
-- ZSTD_CCtx_setParameter(cctx, ZSTD_p_compressionLevel, zstd_level);
+- ZSTD_CCtx_setParameter(cctx, ZSTD_c_compressionLevel, zstd_level);
 - if (zstd_long_distance_matching) {
-- ZSTD_CCtx_setParameter(cctx, ZSTD_p_enableLongDistanceMatching, 1);
-- ZSTD_CCtx_setParameter(cctx, ZSTD_p_windowLog, zstd_window_log_size);
+- ZSTD_CCtx_setParameter(cctx, ZSTD_c_enableLongDistanceMatching, 1);
+- ZSTD_CCtx_setParameter(cctx, ZSTD_c_windowLog, zstd_window_log_size);
 - }
-+
  int max_dst_size = get_max_compressed_buffer_size(p_src_size, MODE_ZSTD);
 - int ret = ZSTD_compressCCtx(cctx, p_dst, max_dst_size, p_src, p_src_size, zstd_level);
 - ZSTD_freeCCtx(cctx);
@@ -28,23 +27,24 @@ Index: core/io/compression.cpp
  } break;
  }
 
-@@ -173,11 +166,8 @@ int Compression::decompress(uint8_t *p_dst, int p_dst_
+@@ -174,13 +166,7 @@ int Compression::decompress(uint8_t *p_dst, int p_dst_
  return total;
  } break;
  case MODE_ZSTD: {
 - ZSTD_DCtx *dctx = ZSTD_createDCtx();
-- if (zstd_long_distance_matching) ZSTD_DCtx_setMaxWindowSize(dctx, 1 << zstd_window_log_size);
+- if (zstd_long_distance_matching) {
+- ZSTD_DCtx_setParameter(dctx, ZSTD_d_windowLogMax, zstd_window_log_size);
+- }
 - int ret = ZSTD_decompressDCtx(dctx, p_dst, p_dst_max_size, p_src, p_src_size);
 - ZSTD_freeDCtx(dctx);
 - return ret;
-+
 + return ZSTD_decompress(p_dst, p_dst_max_size, p_src, p_src_size);
  } break;
  }
 
-@@ -187,5 +177,3 @@ int Compression::decompress(uint8_t *p_dst, int p_dst_
+@@ -190,5 +176,3 @@ int Compression::decompress(uint8_t *p_dst, int p_dst_
  int Compression::zlib_level = Z_DEFAULT_COMPRESSION;
  int Compression::gzip_level = Z_DEFAULT_COMPRESSION;
  int Compression::zstd_level = 3;
 -bool Compression::zstd_long_distance_matching = false;
--int Compression::zstd_window_log_size = 27;
+-int Compression::zstd_window_log_size = 27; // ZSTD_WINDOWLOG_LIMIT_DEFAULT
Index: patches/patch-core_project_settings_cpp
===================================================================
RCS file: /cvs/ports/games/godot/patches/patch-core_project_settings_cpp,v
retrieving revision 1.2
diff -u -p -r1.2 patch-core_project_settings_cpp
--- patches/patch-core_project_settings_cpp 25 Aug 2018 19:20:29 -0000 1.2
+++ patches/patch-core_project_settings_cpp 2 Jun 2020 18:32:33 -0000
@@ -9,8 +9,8 @@ based on github issue #17374
 Index: core/project_settings.cpp
 --- core/project_settings.cpp.orig
 +++ core/project_settings.cpp
-@@ -1041,14 +1041,11 @@ ProjectSettings::ProjectSettings() {
- GLOBAL_DEF("debug/settings/profiler/max_functions", 16384);
+@@ -1202,14 +1202,11 @@ ProjectSettings::ProjectSettings() {
+ custom_prop_info["debug/settings/profiler/max_functions"] = PropertyInfo(Variant::INT, "debug/settings/profiler/max_functions", PROPERTY_HINT_RANGE, "128,65535,1");
 
  //assigning here, because using GLOBAL_GET on every block for compressing can be slow
 - Compression::zstd_long_distance_matching = GLOBAL_DEF("compression/formats/zstd/long_distance_matching", false);
Index: patches/patch-core_safe_refcount_h
===================================================================
RCS file: /cvs/ports/games/godot/patches/patch-core_safe_refcount_h,v
retrieving revision 1.1
diff -u -p -r1.1 patch-core_safe_refcount_h
--- patches/patch-core_safe_refcount_h 2 Sep 2019 18:20:12 -0000 1.1
+++ patches/patch-core_safe_refcount_h 2 Jun 2020 18:32:33 -0000
@@ -7,57 +7,65 @@ https://github.com/godotengine/godot/pul
 Index: core/safe_refcount.h
 --- core/safe_refcount.h.orig
 +++ core/safe_refcount.h
-@@ -99,8 +99,8 @@ static _ALWAYS_INLINE_ T atomic_exchange_if_greater(re
-
- /* Implementation for GCC & Clang */
-
--// GCC guarantees atomic intrinsics for sizes of 1, 2, 4 and 8 bytes.
--// Clang states it supports GCC atomic builtins.
-+#include <stdbool.h>
-+#include <atomic>
-
- template <class T>
- static _ALWAYS_INLINE_ T atomic_conditional_increment(register T *pw) {
-@@ -109,7 +109,7 @@ static _ALWAYS_INLINE_ T atomic_conditional_increment(
- T tmp = static_cast<T const volatile &>(*pw);
- if (tmp == 0)
- return 0; // if zero, can't add to it anymore
-- if (__sync_val_compare_and_swap(pw, tmp, tmp + 1) == tmp)
-+ if (__atomic_compare_exchange_n(pw, &tmp, tmp + 1, false, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST) == true)
- return tmp + 1;
- }
- }
-@@ -117,25 +117,25 @@ static _ALWAYS_INLINE_ T atomic_conditional_increment(
+@@ -55,33 +55,26 @@ static _ALWAYS_INLINE_ T atomic_conditional_increment(
  template <class T>
- static _ALWAYS_INLINE_ T atomic_decrement(register T *pw) {
+ static _ALWAYS_INLINE_ T atomic_decrement(volatile T *pw) {
 
-- return __sync_sub_and_fetch(pw, 1);
+- (*pw)--;
+-
+- return *pw;
 + return __atomic_sub_fetch(pw, 1, __ATOMIC_SEQ_CST);
  }
 
  template <class T>
- static _ALWAYS_INLINE_ T atomic_increment(register T *pw) {
+ static _ALWAYS_INLINE_ T atomic_increment(volatile T *pw) {
 
-- return __sync_add_and_fetch(pw, 1);
+- (*pw)++;
+-
+- return *pw;
 + return __atomic_add_fetch(pw, 1, __ATOMIC_SEQ_CST);
  }
 
  template <class T, class V>
- static _ALWAYS_INLINE_ T atomic_sub(register T *pw, register V val) {
+ static _ALWAYS_INLINE_ T atomic_sub(volatile T *pw, volatile V val) {
+
+- (*pw) -= val;
 
-- return __sync_sub_and_fetch(pw, val);
+- return *pw;
 + return __atomic_sub_fetch(pw, val, __ATOMIC_SEQ_CST);
  }
 
  template <class T, class V>
- static _ALWAYS_INLINE_ T atomic_add(register T *pw, register V val) {
+ static _ALWAYS_INLINE_ T atomic_add(volatile T *pw, volatile V val) {
 
-- return __sync_add_and_fetch(pw, val);
+- (*pw) += val;
+-
+- return *pw;
 + return __atomic_add_fetch(pw, val, __ATOMIC_SEQ_CST);
  }
 
  template <class T, class V>
-@@ -145,7 +145,7 @@ static _ALWAYS_INLINE_ T atomic_exchange_if_greater(re
+@@ -97,8 +90,8 @@ static _ALWAYS_INLINE_ T atomic_exchange_if_greater(vo
+
+ /* Implementation for GCC & Clang */
+
+-// GCC guarantees atomic intrinsics for sizes of 1, 2, 4 and 8 bytes.
+-// Clang states it supports GCC atomic builtins.
++#include <stdbool.h>
++#include <atomic>
+
+ template <class T>
+ static _ALWAYS_INLINE_ T atomic_conditional_increment(volatile T *pw) {
+@@ -107,7 +100,7 @@ static _ALWAYS_INLINE_ T atomic_conditional_increment(
+ T tmp = static_cast<T const volatile &>(*pw);
+ if (tmp == 0)
+ return 0; // if zero, can't add to it anymore
+- if (__sync_val_compare_and_swap(pw, tmp, tmp + 1) == tmp)
++ if (__atomic_compare_exchange_n(pw, &tmp, tmp + 1, false, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST) == true)
+ return tmp + 1;
+ }
+ }
+@@ -143,7 +136,7 @@ static _ALWAYS_INLINE_ T atomic_exchange_if_greater(vo
  T tmp = static_cast<T const volatile &>(*pw);
  if (tmp >= val)
  return tmp; // already greater, or equal
Index: patches/patch-drivers_unix_os_unix_cpp
===================================================================
RCS file: /cvs/ports/games/godot/patches/patch-drivers_unix_os_unix_cpp,v
retrieving revision 1.3
diff -u -p -r1.3 patch-drivers_unix_os_unix_cpp
--- patches/patch-drivers_unix_os_unix_cpp 25 Aug 2018 19:20:29 -0000 1.3
+++ patches/patch-drivers_unix_os_unix_cpp 2 Jun 2020 18:32:33 -0000
@@ -1,11 +1,11 @@
 $OpenBSD: patch-drivers_unix_os_unix_cpp,v 1.3 2018/08/25 19:20:29 thfr Exp $
 
-- hardcode executable path
+hardcode executable path
 
 Index: drivers/unix/os_unix.cpp
 --- drivers/unix/os_unix.cpp.orig
 +++ drivers/unix/os_unix.cpp
-@@ -462,7 +462,7 @@ String OS_Unix::get_executable_path() const {
+@@ -510,7 +510,7 @@ String OS_Unix::get_executable_path() const {
  #elif defined(__OpenBSD__)
  char resolved_path[MAXPATHLEN];
 
Index: patches/patch-main_main_cpp
===================================================================
RCS file: /cvs/ports/games/godot/patches/patch-main_main_cpp,v
retrieving revision 1.1
diff -u -p -r1.1 patch-main_main_cpp
--- patches/patch-main_main_cpp 25 Aug 2018 19:20:29 -0000 1.1
+++ patches/patch-main_main_cpp 2 Jun 2020 18:32:33 -0000
@@ -5,8 +5,8 @@ log on falling back to dummy audio drive
 Index: main/main.cpp
 --- main/main.cpp.orig
 +++ main/main.cpp
-@@ -938,6 +938,10 @@ Error Main::setup(const char *execpath, int argc, char
- audio_driver = GLOBAL_DEF("audio/driver", OS::get_singleton()->get_audio_driver_name(0));
+@@ -1084,6 +1084,10 @@ Error Main::setup(const char *execpath, int argc, char
+ audio_driver = GLOBAL_DEF_RST("audio/driver", OS::get_singleton()->get_audio_driver_name(0));
  }
 
 + if (audio_driver == "Dummy") {
Index: patches/patch-platform_uwp_export_export_cpp
===================================================================
RCS file: patches/patch-platform_uwp_export_export_cpp
diff -N patches/patch-platform_uwp_export_export_cpp
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ patches/patch-platform_uwp_export_export_cpp 2 Jun 2020 18:32:33 -0000
@@ -0,0 +1,16 @@
+$OpenBSD$
+
+fix comparison of integers of different signs
+
+Index: platform/uwp/export/export.cpp
+--- platform/uwp/export/export.cpp.orig
++++ platform/uwp/export/export.cpp
+@@ -554,7 +554,7 @@ Error AppxPackager::add_file(String p_file_name, const
+ //package->store_buffer(strm_out.ptr(), strm.total_out - total_out_before);
+ int start = file_buffer.size();
+ file_buffer.resize(file_buffer.size() + (strm.total_out - total_out_before));
+- for (uint64_t i = 0; i < (strm.total_out - total_out_before); i++)
++ for (int64_t i = 0; i < (strm.total_out - total_out_before); i++)
+ file_buffer.write[start + i] = strm_out[i];
+
+ deflateEnd(&strm);
Index: patches/patch-platform_x11_detect_py
===================================================================
RCS file: /cvs/ports/games/godot/patches/patch-platform_x11_detect_py,v
retrieving revision 1.1
diff -u -p -r1.1 patch-platform_x11_detect_py
--- patches/patch-platform_x11_detect_py 25 Aug 2018 19:20:29 -0000 1.1
+++ patches/patch-platform_x11_detect_py 2 Jun 2020 18:32:33 -0000
@@ -5,12 +5,13 @@ remove hardcoded -O2, found by bcallah@
 Index: platform/x11/detect.py
 --- platform/x11/detect.py.orig
 +++ platform/x11/detect.py
-@@ -84,7 +84,7 @@ def configure(env):
-             env.Prepend(CCFLAGS=['-g2'])
+@@ -96,7 +96,8 @@ def configure(env):
 
      elif (env["target"] == "release_debug"):
--        env.Prepend(CCFLAGS=['-O2', '-ffast-math', '-DDEBUG_ENABLED'])
-+        env.Prepend(CCFLAGS=['-ffast-math', '-DDEBUG_ENABLED'])
-         if (env["debug_symbols"] == "yes"):
-             env.Prepend(CCFLAGS=['-g1'])
-         if (env["debug_symbols"] == "full"):
+         if (env["optimize"] == "speed"): #optimize for speed (default)
+-            env.Prepend(CCFLAGS=['-O2'])
++            # env.Prepend(CCFLAGS=['-O2'])
++            pass
+         else: #optimize for size
+             env.Prepend(CCFLAGS=['-Os'])
+         env.Prepend(CPPDEFINES=['DEBUG_ENABLED'])
Index: patches/patch-platform_x11_os_x11_cpp
===================================================================
RCS file: /cvs/ports/games/godot/patches/patch-platform_x11_os_x11_cpp,v
retrieving revision 1.1.1.1
diff -u -p -r1.1.1.1 patch-platform_x11_os_x11_cpp
--- patches/patch-platform_x11_os_x11_cpp 27 Apr 2018 07:32:53 -0000 1.1.1.1
+++ patches/patch-platform_x11_os_x11_cpp 2 Jun 2020 18:32:33 -0000
@@ -5,7 +5,7 @@ fix libXrandr library name
 Index: platform/x11/os_x11.cpp
 --- platform/x11/os_x11.cpp.orig
 +++ platform/x11/os_x11.cpp
-@@ -160,7 +160,7 @@ Error OS_X11::initialize(const VideoMode &p_desired, i
+@@ -163,7 +163,7 @@ Error OS_X11::initialize(const VideoMode &p_desired, i
  int xrandr_minor = 0;
  int event_base, error_base;
  xrandr_ext_ok = XRRQueryExtension(x11_display, &event_base, &error_base);
Index: patches/patch-servers_audio_server_cpp
===================================================================
RCS file: /cvs/ports/games/godot/patches/patch-servers_audio_server_cpp,v
retrieving revision 1.1
diff -u -p -r1.1 patch-servers_audio_server_cpp
--- patches/patch-servers_audio_server_cpp 25 Aug 2018 19:20:29 -0000 1.1
+++ patches/patch-servers_audio_server_cpp 2 Jun 2020 18:32:33 -0000
@@ -6,41 +6,38 @@ add dummy audio driver to AudioDriverMan
 Index: servers/audio_server.cpp
 --- servers/audio_server.cpp.orig
 +++ servers/audio_server.cpp
-@@ -119,14 +119,19 @@ AudioDriver::AudioDriver() {
- _mix_amount = 0;
+@@ -160,16 +160,16 @@ AudioDriver::AudioDriver() {
+ #endif
  }
 
--AudioDriver *AudioDriverManager::drivers[MAX_DRIVERS];
--int AudioDriverManager::driver_count = 0;
- AudioDriverDummy AudioDriverManager::dummy_driver;
-+AudioDriver *AudioDriverManager::drivers[MAX_DRIVERS] = {
-+ &AudioDriverManager::dummy_driver,
-+};
-+int AudioDriverManager::driver_count = 1;
+-AudioDriverDummy AudioDriverManager::dummy_driver;
+-AudioDriver *AudioDriverManager::drivers[MAX_DRIVERS] = {
++AudioDriver *AudioDriverManager::drivers[MAX_DRIVERS] {
+ &AudioDriverManager::dummy_driver,
+ };
+ int AudioDriverManager::driver_count = 1;
++AudioDriverDummy AudioDriverManager::dummy_driver;
 
  void AudioDriverManager::add_driver(AudioDriver *p_driver) {
 
  ERR_FAIL_COND(driver_count >= MAX_DRIVERS);
-- drivers[driver_count++] = p_driver;
-+ drivers[driver_count - 1] = p_driver;
-+
-+ // Last driver is always our dummy driver
-+ drivers[driver_count++] = &AudioDriverManager::dummy_driver;
- }
+- drivers[driver_count - 1] = p_driver;
++ drivers[driver_count-1] = p_driver;
 
- int AudioDriverManager::get_driver_count() {
-@@ -158,14 +163,6 @@ void AudioDriverManager::initialize(int p_driver) {
+ // Last driver is always our dummy driver
+ drivers[driver_count++] = &AudioDriverManager::dummy_driver;
+@@ -205,6 +205,14 @@ void AudioDriverManager::initialize(int p_driver) {
  drivers[i]->set_singleton();
- return;
+ break;
  }
-- }
--
-- // Fallback to our dummy driver
-- if (dummy_driver.init() == OK) {
-- ERR_PRINT("AudioDriverManager: all drivers failed, falling back to dummy driver");
-- dummy_driver.set_singleton();
-- } else {
-- ERR_PRINT("AudioDriverManager: dummy driver failed to init()");
++ }
++
++ // Fallback to our dummy driver
++ if (dummy_driver.init() == OK) {
++ ERR_PRINT("AudioDriverManager: all drivers failed, falling back to dummy driver");
++ dummy_driver.set_singleton();
++ } else {
++ ERR_PRINT("AudioDriverManager: dummy driver failed to init()");
  }
- }
 
+ if (driver_count > 1 && String(AudioDriver::get_singleton()->get_name()) == "Dummy") {
Index: patches/patch-servers_visual_shader_language_cpp
===================================================================
RCS file: patches/patch-servers_visual_shader_language_cpp
diff -N patches/patch-servers_visual_shader_language_cpp
--- patches/patch-servers_visual_shader_language_cpp 16 Aug 2019 15:38:15 -0000 1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,22 +0,0 @@
-$OpenBSD: patch-servers_visual_shader_language_cpp,v 1.1 2019/08/16 15:38:15 thfr Exp $
-
-Fix error with ports-gcc:
-  error: converting to 'bool' from 'std::nullptr_t' requires direct-initialization [-fpermissive]
-
-Index: servers/visual/shader_language.cpp
---- servers/visual/shader_language.cpp.orig
-+++ servers/visual/shader_language.cpp
-@@ -1869,11 +1869,11 @@ const ShaderLanguage::BuiltinFuncDef ShaderLanguage::b
-
- bool ShaderLanguage::_validate_function_call(BlockNode *p_block, OperatorNode *p_func, DataType *r_ret_type) {
-
-- ERR_FAIL_COND_V(p_func->op != OP_CALL && p_func->op != OP_CONSTRUCT, NULL);
-+ ERR_FAIL_COND_V(p_func->op != OP_CALL && p_func->op != OP_CONSTRUCT, false);
-
- Vector<DataType> args;
-
-- ERR_FAIL_COND_V(p_func->arguments[0]->type != Node::TYPE_VARIABLE, NULL);
-+ ERR_FAIL_COND_V(p_func->arguments[0]->type != Node::TYPE_VARIABLE, false);
-
- StringName name = static_cast<VariableNode *>(p_func->arguments[0])->name.operator String();
-
Index: patches/patch-thirdparty_minizip_unzip_c
===================================================================
RCS file: patches/patch-thirdparty_minizip_unzip_c
diff -N patches/patch-thirdparty_minizip_unzip_c
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ patches/patch-thirdparty_minizip_unzip_c 2 Jun 2020 18:32:33 -0000
@@ -0,0 +1,16 @@
+$OpenBSD$
+
+z_crc_t is defined as unsigned long on zlib 1.2.11, which is newer than
+the one we have in base.
+
+Index: thirdparty/minizip/unzip.c
+--- thirdparty/minizip/unzip.c.orig
++++ thirdparty/minizip/unzip.c
+@@ -118,6 +118,7 @@
+ #define SIZECENTRALDIRITEM (0x2e)
+ #define SIZEZIPLOCALHEADER (0x1e)
+
++typedef unsigned long z_crc_t;
+
+ const char unz_copyright[] =
+    " unzip 1.01 Copyright 1998-2004 Gilles Vollant - http://www.winimage.com/zLibDll";
Index: patches/patch-thirdparty_minizip_zip_c
===================================================================
RCS file: patches/patch-thirdparty_minizip_zip_c
diff -N patches/patch-thirdparty_minizip_zip_c
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ patches/patch-thirdparty_minizip_zip_c 2 Jun 2020 18:32:33 -0000
@@ -0,0 +1,17 @@
+$OpenBSD$
+
+z_crc_t is defined as unsigned long on zlib 1.2.11, which is newer than
+the one we have in base.
+
+Index: thirdparty/minizip/zip.c
+--- thirdparty/minizip/zip.c.orig
++++ thirdparty/minizip/zip.c
+@@ -111,6 +111,8 @@ const char zip_copyright[] =" zip 1.01 Copyright 1998-
+
+ #define SIZECENTRALHEADER (0x2e) /* 46 */
+
++typedef unsigned long z_crc_t;
++
+ typedef struct linkedlist_datablock_internal_s
+ {
+   struct linkedlist_datablock_internal_s* next_datablock;
Index: patches/patch-thirdparty_thekla_atlas_nvcore_nvcore_h
===================================================================
RCS file: patches/patch-thirdparty_thekla_atlas_nvcore_nvcore_h
diff -N patches/patch-thirdparty_thekla_atlas_nvcore_nvcore_h
--- patches/patch-thirdparty_thekla_atlas_nvcore_nvcore_h 16 Aug 2019 15:38:15 -0000 1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,16 +0,0 @@
-$OpenBSD: patch-thirdparty_thekla_atlas_nvcore_nvcore_h,v 1.1 2019/08/16 15:38:15 thfr Exp $
-
-Overzealous #error, the code builds fine even if the CPU isn't known.
-
-Index: thirdparty/thekla_atlas/nvcore/nvcore.h
---- thirdparty/thekla_atlas/nvcore/nvcore.h.orig
-+++ thirdparty/thekla_atlas/nvcore/nvcore.h
-@@ -115,7 +115,7 @@
- #elif defined POSH_CPU_STRONGARM
- #   define NV_CPU_ARM 1
- #else
--#   error "Unsupported CPU"
-+//#   error "Unsupported CPU"
- #endif
-
-

Reply | Threaded
Open this post in threaded view
|

Re: update games/godot to 3.2.1

Omar Polo-3

Omar Polo <[hidden email]> writes:

> Thomas Frohwein <[hidden email]> writes:
>
>> Thanks for this diff and the interest in the port.
>
> I don't know why but I've completely overlooked the MAINTAINER variable
> in the makefile, and assumed that the port was without one.  I should
> have cc'd you in the first place, I'm sorry.
>
>> On Fri, May 29, 2020 at 03:15:11PM +0200, Omar Polo wrote:
>> [...]
>>> On my machine (amdgpu) it leaves a core file around but otherwise is
>>> working; on my friend machine (inteldrm) it doesn't core dumps. We
>>
>> Can you provide some details about the core dump? Does Godot crash on
>> amdgpu? Can you share a backtrace with gdb(egdb) from ports? I don't
>> understand if this is just like the already known bugs with amdgpu at
>> this point or something new.
>
> The amdgpu vs inteldrm was a red herring, the cause is the window
> manager.  If I close the game (or the editor window) either by
> left-clicking its icon in tint2 or with the cwm keybinding, Godot logs:
>
> X connection to :0 broken (explicit kill or server shutdown).
> Pure virtual function called!
>
> That's why I got that dump every time.  I still haven't asked my friend,
> but I suspect he quits either by <C-q> or Scene -> quit.
>
> The (not so useful I fear) stacktrace is the following:
>
> [...]
>
> I'm rebuilding Godot with DEBUG_PACKAGES set to make the stacktrace more
> useful.
>
> (note that DEBUG_PACKAGES is not included in the updated diff)

It took me so long to write that email that in the meantime I've
finished compiling Godot.  Here's the stacktrace with debug symbols:

; egdb `which godot` godot.core
[...]
Reading symbols from /usr/local/bin/godot...Reading symbols from /usr/local/bin/.debug/godot.dbg...done.
done.
[New process 169208]
[New process 229753]
[New process 597609]
[New process 618785]
[New process 403724]
[New process 234137]
[New process 238415]
[New process 576300]
Core was generated by `godot'.
Program terminated with signal SIGABRT, Aborted.
#0  thrkill () at -:3
3       -: No such file or directory.
[Current thread is 1 (process 169208)]
(gdb) bt
#0  thrkill () at -:3
#1  0x000006c349be7fce in _libc_abort () at /usr/src/lib/libc/stdlib/abort.c:51
#2  0x000006c29464911c in abort_message (format=<optimized out>)
    at /usr/src/lib/libcxxabi/src/abort_message.cpp:77
#3  0x000006c294649352 in __cxa_pure_virtual ()
    at /usr/src/lib/libcxxabi/src/cxa_virtual.cpp:17
#4  0x000006c0727b6a06 in AudioDriverDummy::thread_func (
    p_udata=0x6c072d1caa8 <AudioDriverManager::dummy_driver>)
    at servers/audio/audio_driver_dummy.cpp:68
#5  0x000006c070a277bb in ThreadPosix::thread_callback (userdata=0x6c2eee0aa50)
    at drivers/unix/thread_posix.cpp:74
#6  0x000006c276d4e361 in _rthread_start (v=<optimized out>)
    at /usr/src/lib/librthread/rthread.c:96
#7  0x000006c349bcae48 in __tfork_thread ()
    at /usr/src/lib/libc/arch/amd64/sys/tfork_thread.S:77
#8  0x0000000000000000 in ?? ()
(gdb)

...so the culprit is the AudioDriverDummy and even my deduction about
the window manager was wrong.

(the friend that's helping me testing the update is using the additional
patch that brings back libao so he doesn't even reach that code path)

I'll take a look at the audio_driver_dummy code in the following days.

Reply | Threaded
Open this post in threaded view
|

Re: update games/godot to 3.2.1

Omar Polo-3

Hi,

I was a bit busy these days, but I've finally found the time to test (at
least) the new TLS code.

Initially I was worried that I had to create a server in Godot, setup
certificates and create a client for that game server...  Fortunately
there is a HTTPRequest node.

So I tried to perform some GET requests to site like google.com,
duckduckgo.com, cloudflare.com, omarpolo.com, ... (all with HTTPS
obviously) and as far as I can tell it worked great^1.  I'm linking the
project[0], even if it's less than 20 lines of gdscript, it can be
useful to ensure that I haven't made wrong assumptions, or to further
testing.

Also, I re-checked the patch and indeed path-servers_audio_server_cpp is
(now) redundant.  The other patches seems useful to me.  I've also done
some minor adjustments:

 - patch-platform_x11_detect_py: drop entirely the -O3/-Os both in
   "release" and "release_debug" targets
   
 - patch-platform_os_x11_cpp: rename libXrandr also inside the fprintf

the other patches should be untouched.

Cheers!

[0]: https://git.omarpolo.com/ghttp

1: well, with https://google.com I get "Unicode error: invalid utf8"
printed in the debug console, but that's happening only with google.

Index: Makefile
===================================================================
RCS file: /cvs/ports/games/godot/Makefile,v
retrieving revision 1.10
diff -u -p -r1.10 Makefile
--- Makefile 12 Apr 2020 13:30:55 -0000 1.10
+++ Makefile 12 Jun 2020 12:28:41 -0000
@@ -2,22 +2,21 @@
 
 COMMENT = 2D and 3D game engine
 
-V = 3.0.6
+V = 3.2.1
 DISTNAME = godot-${V}-stable
 PKGNAME = godot-${V}
 CATEGORIES = games
 HOMEPAGE = https://godotengine.org/
 MAINTAINER = Thomas Frohwein <[hidden email]>
-REVISION = 3
 
 # MIT
 PERMIT_PACKAGE = Yes
 
 WANTLIB += ${COMPILER_LIBCXX}
 WANTLIB += GL X11 Xau Xcursor Xdmcp Xext Xfixes Xi Xinerama Xrandr
-WANTLIB += Xrender c crypto enet execinfo freetype intl m mpcdec
-WANTLIB += ogg opus opusfile png ssl theora theoradec vorbis vorbisfile
-WANTLIB += webp xcb z pcre2-32 vpx zstd
+WANTLIB += Xrender c enet execinfo freetype intl m mbedtls mbedcrypto
+WANTLIB += mbedx509 mpcdec ogg opus opusfile png theora theoradec
+WANTLIB += vorbis vorbisfile webp xcb z pcre2-32 vpx zstd
 
 COMPILER = base-clang ports-gcc base-gcc
 
@@ -32,7 +31,7 @@ MODULES = devel/scons
 MODSCONS_FLAGS = CC="${CC}" \
  CXX="${CXX}" \
  CFLAGS="${CFLAGS}" \
- CXXFLAGS="${CXXFLAGS}" \
+ CXXFLAGS="${CXXFLAGS} -Wno-deprecated-register" \
  LINKFLAGS="${LDFLAGS} -lintl -lmpcdec" \
  builtin_enet=no \
  builtin_freetype=no \
@@ -44,7 +43,7 @@ MODSCONS_FLAGS = CC="${CC}" \
  builtin_libvorbis=no \
  builtin_libvpx=no \
  builtin_libwebp=no \
- builtin_openssl=no \
+ builtin_mbedtls=no \
  builtin_opus=no \
  builtin_pcre2=no \
  builtin_zlib=no \
@@ -65,7 +64,8 @@ LIB_DEPENDS = archivers/zstd \
  graphics/png \
  multimedia/libtheora \
  multimedia/libvpx \
- net/enet
+ net/enet \
+ security/polarssl
 
 NO_TEST = Yes
 
Index: distinfo
===================================================================
RCS file: /cvs/ports/games/godot/distinfo,v
retrieving revision 1.3
diff -u -p -r1.3 distinfo
--- distinfo 25 Aug 2018 19:20:29 -0000 1.3
+++ distinfo 12 Jun 2020 12:28:41 -0000
@@ -1,2 +1,2 @@
-SHA256 (godot-3.0.6-stable.tar.xz) = LfHLNqAMaHrnShHX31vcEyyBapNOJpbswzgnAI/5xrk=
-SIZE (godot-3.0.6-stable.tar.xz) = 12517428
+SHA256 (godot-3.2.1-stable.tar.xz) = VWtWQHn7GyGgUyDDWSaLIDLIfYs7+qT9EE6/nJCauH0=
+SIZE (godot-3.2.1-stable.tar.xz) = 14066488
Index: patches/patch-core_io_SCsub
===================================================================
RCS file: /cvs/ports/games/godot/patches/patch-core_io_SCsub,v
retrieving revision 1.1.1.1
diff -u -p -r1.1.1.1 patch-core_io_SCsub
--- patches/patch-core_io_SCsub 27 Apr 2018 07:32:53 -0000 1.1.1.1
+++ patches/patch-core_io_SCsub 12 Jun 2020 12:28:41 -0000
@@ -9,9 +9,9 @@ based on github issue #17374
 Index: core/io/SCsub
 --- core/io/SCsub.orig
 +++ core/io/SCsub
-@@ -5,4 +5,4 @@ Import('env')
- env.add_source_files(env.core_sources, "*.cpp")
+@@ -3,3 +3,5 @@
+ Import('env')
 
- Export('env')
--
+ env.add_source_files(env.core_sources, "*.cpp")
++
 +env.Append(CCFLAGS="-DZSTD_STATIC_LINKING_ONLY")
Index: patches/patch-core_io_compression_cpp
===================================================================
RCS file: /cvs/ports/games/godot/patches/patch-core_io_compression_cpp,v
retrieving revision 1.1.1.1
diff -u -p -r1.1.1.1 patch-core_io_compression_cpp
--- patches/patch-core_io_compression_cpp 27 Apr 2018 07:32:53 -0000 1.1.1.1
+++ patches/patch-core_io_compression_cpp 12 Jun 2020 12:28:41 -0000
@@ -9,17 +9,16 @@ based on github issue #17374
 Index: core/io/compression.cpp
 --- core/io/compression.cpp.orig
 +++ core/io/compression.cpp
-@@ -79,16 +79,9 @@ int Compression::compress(uint8_t *p_dst, const uint8_
+@@ -80,16 +80,8 @@ int Compression::compress(uint8_t *p_dst, const uint8_
 
  } break;
  case MODE_ZSTD: {
 - ZSTD_CCtx *cctx = ZSTD_createCCtx();
-- ZSTD_CCtx_setParameter(cctx, ZSTD_p_compressionLevel, zstd_level);
+- ZSTD_CCtx_setParameter(cctx, ZSTD_c_compressionLevel, zstd_level);
 - if (zstd_long_distance_matching) {
-- ZSTD_CCtx_setParameter(cctx, ZSTD_p_enableLongDistanceMatching, 1);
-- ZSTD_CCtx_setParameter(cctx, ZSTD_p_windowLog, zstd_window_log_size);
+- ZSTD_CCtx_setParameter(cctx, ZSTD_c_enableLongDistanceMatching, 1);
+- ZSTD_CCtx_setParameter(cctx, ZSTD_c_windowLog, zstd_window_log_size);
 - }
-+
  int max_dst_size = get_max_compressed_buffer_size(p_src_size, MODE_ZSTD);
 - int ret = ZSTD_compressCCtx(cctx, p_dst, max_dst_size, p_src, p_src_size, zstd_level);
 - ZSTD_freeCCtx(cctx);
@@ -28,23 +27,24 @@ Index: core/io/compression.cpp
  } break;
  }
 
-@@ -173,11 +166,8 @@ int Compression::decompress(uint8_t *p_dst, int p_dst_
+@@ -174,13 +166,7 @@ int Compression::decompress(uint8_t *p_dst, int p_dst_
  return total;
  } break;
  case MODE_ZSTD: {
 - ZSTD_DCtx *dctx = ZSTD_createDCtx();
-- if (zstd_long_distance_matching) ZSTD_DCtx_setMaxWindowSize(dctx, 1 << zstd_window_log_size);
+- if (zstd_long_distance_matching) {
+- ZSTD_DCtx_setParameter(dctx, ZSTD_d_windowLogMax, zstd_window_log_size);
+- }
 - int ret = ZSTD_decompressDCtx(dctx, p_dst, p_dst_max_size, p_src, p_src_size);
 - ZSTD_freeDCtx(dctx);
 - return ret;
-+
 + return ZSTD_decompress(p_dst, p_dst_max_size, p_src, p_src_size);
  } break;
  }
 
-@@ -187,5 +177,3 @@ int Compression::decompress(uint8_t *p_dst, int p_dst_
+@@ -190,5 +176,3 @@ int Compression::decompress(uint8_t *p_dst, int p_dst_
  int Compression::zlib_level = Z_DEFAULT_COMPRESSION;
  int Compression::gzip_level = Z_DEFAULT_COMPRESSION;
  int Compression::zstd_level = 3;
 -bool Compression::zstd_long_distance_matching = false;
--int Compression::zstd_window_log_size = 27;
+-int Compression::zstd_window_log_size = 27; // ZSTD_WINDOWLOG_LIMIT_DEFAULT
Index: patches/patch-core_project_settings_cpp
===================================================================
RCS file: /cvs/ports/games/godot/patches/patch-core_project_settings_cpp,v
retrieving revision 1.2
diff -u -p -r1.2 patch-core_project_settings_cpp
--- patches/patch-core_project_settings_cpp 25 Aug 2018 19:20:29 -0000 1.2
+++ patches/patch-core_project_settings_cpp 12 Jun 2020 12:28:41 -0000
@@ -9,8 +9,8 @@ based on github issue #17374
 Index: core/project_settings.cpp
 --- core/project_settings.cpp.orig
 +++ core/project_settings.cpp
-@@ -1041,14 +1041,11 @@ ProjectSettings::ProjectSettings() {
- GLOBAL_DEF("debug/settings/profiler/max_functions", 16384);
+@@ -1202,14 +1202,11 @@ ProjectSettings::ProjectSettings() {
+ custom_prop_info["debug/settings/profiler/max_functions"] = PropertyInfo(Variant::INT, "debug/settings/profiler/max_functions", PROPERTY_HINT_RANGE, "128,65535,1");
 
  //assigning here, because using GLOBAL_GET on every block for compressing can be slow
 - Compression::zstd_long_distance_matching = GLOBAL_DEF("compression/formats/zstd/long_distance_matching", false);
Index: patches/patch-core_safe_refcount_h
===================================================================
RCS file: /cvs/ports/games/godot/patches/patch-core_safe_refcount_h,v
retrieving revision 1.1
diff -u -p -r1.1 patch-core_safe_refcount_h
--- patches/patch-core_safe_refcount_h 2 Sep 2019 18:20:12 -0000 1.1
+++ patches/patch-core_safe_refcount_h 12 Jun 2020 12:28:41 -0000
@@ -7,57 +7,65 @@ https://github.com/godotengine/godot/pul
 Index: core/safe_refcount.h
 --- core/safe_refcount.h.orig
 +++ core/safe_refcount.h
-@@ -99,8 +99,8 @@ static _ALWAYS_INLINE_ T atomic_exchange_if_greater(re
-
- /* Implementation for GCC & Clang */
-
--// GCC guarantees atomic intrinsics for sizes of 1, 2, 4 and 8 bytes.
--// Clang states it supports GCC atomic builtins.
-+#include <stdbool.h>
-+#include <atomic>
-
- template <class T>
- static _ALWAYS_INLINE_ T atomic_conditional_increment(register T *pw) {
-@@ -109,7 +109,7 @@ static _ALWAYS_INLINE_ T atomic_conditional_increment(
- T tmp = static_cast<T const volatile &>(*pw);
- if (tmp == 0)
- return 0; // if zero, can't add to it anymore
-- if (__sync_val_compare_and_swap(pw, tmp, tmp + 1) == tmp)
-+ if (__atomic_compare_exchange_n(pw, &tmp, tmp + 1, false, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST) == true)
- return tmp + 1;
- }
- }
-@@ -117,25 +117,25 @@ static _ALWAYS_INLINE_ T atomic_conditional_increment(
+@@ -55,33 +55,26 @@ static _ALWAYS_INLINE_ T atomic_conditional_increment(
  template <class T>
- static _ALWAYS_INLINE_ T atomic_decrement(register T *pw) {
+ static _ALWAYS_INLINE_ T atomic_decrement(volatile T *pw) {
 
-- return __sync_sub_and_fetch(pw, 1);
+- (*pw)--;
+-
+- return *pw;
 + return __atomic_sub_fetch(pw, 1, __ATOMIC_SEQ_CST);
  }
 
  template <class T>
- static _ALWAYS_INLINE_ T atomic_increment(register T *pw) {
+ static _ALWAYS_INLINE_ T atomic_increment(volatile T *pw) {
 
-- return __sync_add_and_fetch(pw, 1);
+- (*pw)++;
+-
+- return *pw;
 + return __atomic_add_fetch(pw, 1, __ATOMIC_SEQ_CST);
  }
 
  template <class T, class V>
- static _ALWAYS_INLINE_ T atomic_sub(register T *pw, register V val) {
+ static _ALWAYS_INLINE_ T atomic_sub(volatile T *pw, volatile V val) {
+
+- (*pw) -= val;
 
-- return __sync_sub_and_fetch(pw, val);
+- return *pw;
 + return __atomic_sub_fetch(pw, val, __ATOMIC_SEQ_CST);
  }
 
  template <class T, class V>
- static _ALWAYS_INLINE_ T atomic_add(register T *pw, register V val) {
+ static _ALWAYS_INLINE_ T atomic_add(volatile T *pw, volatile V val) {
 
-- return __sync_add_and_fetch(pw, val);
+- (*pw) += val;
+-
+- return *pw;
 + return __atomic_add_fetch(pw, val, __ATOMIC_SEQ_CST);
  }
 
  template <class T, class V>
-@@ -145,7 +145,7 @@ static _ALWAYS_INLINE_ T atomic_exchange_if_greater(re
+@@ -97,8 +90,8 @@ static _ALWAYS_INLINE_ T atomic_exchange_if_greater(vo
+
+ /* Implementation for GCC & Clang */
+
+-// GCC guarantees atomic intrinsics for sizes of 1, 2, 4 and 8 bytes.
+-// Clang states it supports GCC atomic builtins.
++#include <stdbool.h>
++#include <atomic>
+
+ template <class T>
+ static _ALWAYS_INLINE_ T atomic_conditional_increment(volatile T *pw) {
+@@ -107,7 +100,7 @@ static _ALWAYS_INLINE_ T atomic_conditional_increment(
+ T tmp = static_cast<T const volatile &>(*pw);
+ if (tmp == 0)
+ return 0; // if zero, can't add to it anymore
+- if (__sync_val_compare_and_swap(pw, tmp, tmp + 1) == tmp)
++ if (__atomic_compare_exchange_n(pw, &tmp, tmp + 1, false, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST) == true)
+ return tmp + 1;
+ }
+ }
+@@ -143,7 +136,7 @@ static _ALWAYS_INLINE_ T atomic_exchange_if_greater(vo
  T tmp = static_cast<T const volatile &>(*pw);
  if (tmp >= val)
  return tmp; // already greater, or equal
Index: patches/patch-drivers_unix_os_unix_cpp
===================================================================
RCS file: /cvs/ports/games/godot/patches/patch-drivers_unix_os_unix_cpp,v
retrieving revision 1.3
diff -u -p -r1.3 patch-drivers_unix_os_unix_cpp
--- patches/patch-drivers_unix_os_unix_cpp 25 Aug 2018 19:20:29 -0000 1.3
+++ patches/patch-drivers_unix_os_unix_cpp 12 Jun 2020 12:28:41 -0000
@@ -1,11 +1,11 @@
 $OpenBSD: patch-drivers_unix_os_unix_cpp,v 1.3 2018/08/25 19:20:29 thfr Exp $
 
-- hardcode executable path
+hardcode executable path
 
 Index: drivers/unix/os_unix.cpp
 --- drivers/unix/os_unix.cpp.orig
 +++ drivers/unix/os_unix.cpp
-@@ -462,7 +462,7 @@ String OS_Unix::get_executable_path() const {
+@@ -510,7 +510,7 @@ String OS_Unix::get_executable_path() const {
  #elif defined(__OpenBSD__)
  char resolved_path[MAXPATHLEN];
 
Index: patches/patch-main_main_cpp
===================================================================
RCS file: /cvs/ports/games/godot/patches/patch-main_main_cpp,v
retrieving revision 1.1
diff -u -p -r1.1 patch-main_main_cpp
--- patches/patch-main_main_cpp 25 Aug 2018 19:20:29 -0000 1.1
+++ patches/patch-main_main_cpp 12 Jun 2020 12:28:41 -0000
@@ -5,8 +5,8 @@ log on falling back to dummy audio drive
 Index: main/main.cpp
 --- main/main.cpp.orig
 +++ main/main.cpp
-@@ -938,6 +938,10 @@ Error Main::setup(const char *execpath, int argc, char
- audio_driver = GLOBAL_DEF("audio/driver", OS::get_singleton()->get_audio_driver_name(0));
+@@ -1084,6 +1084,10 @@ Error Main::setup(const char *execpath, int argc, char
+ audio_driver = GLOBAL_DEF_RST("audio/driver", OS::get_singleton()->get_audio_driver_name(0));
  }
 
 + if (audio_driver == "Dummy") {
Index: patches/patch-platform_uwp_export_export_cpp
===================================================================
RCS file: patches/patch-platform_uwp_export_export_cpp
diff -N patches/patch-platform_uwp_export_export_cpp
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ patches/patch-platform_uwp_export_export_cpp 12 Jun 2020 12:28:41 -0000
@@ -0,0 +1,16 @@
+$OpenBSD$
+
+fix comparison of integers of different signs
+
+Index: platform/uwp/export/export.cpp
+--- platform/uwp/export/export.cpp.orig
++++ platform/uwp/export/export.cpp
+@@ -554,7 +554,7 @@ Error AppxPackager::add_file(String p_file_name, const
+ //package->store_buffer(strm_out.ptr(), strm.total_out - total_out_before);
+ int start = file_buffer.size();
+ file_buffer.resize(file_buffer.size() + (strm.total_out - total_out_before));
+- for (uint64_t i = 0; i < (strm.total_out - total_out_before); i++)
++ for (int64_t i = 0; i < (strm.total_out - total_out_before); i++)
+ file_buffer.write[start + i] = strm_out[i];
+
+ deflateEnd(&strm);
Index: patches/patch-platform_x11_detect_py
===================================================================
RCS file: /cvs/ports/games/godot/patches/patch-platform_x11_detect_py,v
retrieving revision 1.1
diff -u -p -r1.1 patch-platform_x11_detect_py
--- patches/patch-platform_x11_detect_py 25 Aug 2018 19:20:29 -0000 1.1
+++ patches/patch-platform_x11_detect_py 12 Jun 2020 12:28:41 -0000
@@ -5,12 +5,25 @@ remove hardcoded -O2, found by bcallah@
 Index: platform/x11/detect.py
 --- platform/x11/detect.py.orig
 +++ platform/x11/detect.py
-@@ -84,7 +84,7 @@ def configure(env):
-             env.Prepend(CCFLAGS=['-g2'])
+@@ -84,21 +84,12 @@ def configure(env):
+     ## Build type
 
-     elif (env["target"] == "release_debug"):
--        env.Prepend(CCFLAGS=['-O2', '-ffast-math', '-DDEBUG_ENABLED'])
-+        env.Prepend(CCFLAGS=['-ffast-math', '-DDEBUG_ENABLED'])
+     if (env["target"] == "release"):
+-        if (env["optimize"] == "speed"): #optimize for speed (default)
+-            env.Prepend(CCFLAGS=['-O3'])
+-        else: #optimize for size
+-            env.Prepend(CCFLAGS=['-Os'])
+-
          if (env["debug_symbols"] == "yes"):
              env.Prepend(CCFLAGS=['-g1'])
          if (env["debug_symbols"] == "full"):
+             env.Prepend(CCFLAGS=['-g2'])
+
+     elif (env["target"] == "release_debug"):
+-        if (env["optimize"] == "speed"): #optimize for speed (default)
+-            env.Prepend(CCFLAGS=['-O2'])
+-        else: #optimize for size
+-            env.Prepend(CCFLAGS=['-Os'])
+         env.Prepend(CPPDEFINES=['DEBUG_ENABLED'])
+
+         if (env["debug_symbols"] == "yes"):
Index: patches/patch-platform_x11_os_x11_cpp
===================================================================
RCS file: /cvs/ports/games/godot/patches/patch-platform_x11_os_x11_cpp,v
retrieving revision 1.1.1.1
diff -u -p -r1.1.1.1 patch-platform_x11_os_x11_cpp
--- patches/patch-platform_x11_os_x11_cpp 27 Apr 2018 07:32:53 -0000 1.1.1.1
+++ patches/patch-platform_x11_os_x11_cpp 12 Jun 2020 12:28:41 -0000
@@ -5,7 +5,7 @@ fix libXrandr library name
 Index: platform/x11/os_x11.cpp
 --- platform/x11/os_x11.cpp.orig
 +++ platform/x11/os_x11.cpp
-@@ -160,7 +160,7 @@ Error OS_X11::initialize(const VideoMode &p_desired, i
+@@ -163,10 +163,10 @@ Error OS_X11::initialize(const VideoMode &p_desired, i
  int xrandr_minor = 0;
  int event_base, error_base;
  xrandr_ext_ok = XRRQueryExtension(x11_display, &event_base, &error_base);
@@ -13,4 +13,8 @@ Index: platform/x11/os_x11.cpp
 + xrandr_handle = dlopen("libXrandr.so", RTLD_LAZY);
  if (!xrandr_handle) {
  err = dlerror();
- fprintf(stderr, "could not load libXrandr.so.2, Error: %s\n", err);
+- fprintf(stderr, "could not load libXrandr.so.2, Error: %s\n", err);
++ fprintf(stderr, "could not load libXrandr.so, Error: %s\n", err);
+ } else {
+ XRRQueryVersion(x11_display, &xrandr_major, &xrandr_minor);
+ if (((xrandr_major << 8) | xrandr_minor) >= 0x0105) {
Index: patches/patch-servers_audio_server_cpp
===================================================================
RCS file: patches/patch-servers_audio_server_cpp
diff -N patches/patch-servers_audio_server_cpp
--- patches/patch-servers_audio_server_cpp 25 Aug 2018 19:20:29 -0000 1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,46 +0,0 @@
-$OpenBSD: patch-servers_audio_server_cpp,v 1.1 2018/08/25 19:20:29 thfr Exp $
-
-add dummy audio driver to AudioDriverManager list
-(github issue #20986)
-
-Index: servers/audio_server.cpp
---- servers/audio_server.cpp.orig
-+++ servers/audio_server.cpp
-@@ -119,14 +119,19 @@ AudioDriver::AudioDriver() {
- _mix_amount = 0;
- }
-
--AudioDriver *AudioDriverManager::drivers[MAX_DRIVERS];
--int AudioDriverManager::driver_count = 0;
- AudioDriverDummy AudioDriverManager::dummy_driver;
-+AudioDriver *AudioDriverManager::drivers[MAX_DRIVERS] = {
-+ &AudioDriverManager::dummy_driver,
-+};
-+int AudioDriverManager::driver_count = 1;
-
- void AudioDriverManager::add_driver(AudioDriver *p_driver) {
-
- ERR_FAIL_COND(driver_count >= MAX_DRIVERS);
-- drivers[driver_count++] = p_driver;
-+ drivers[driver_count - 1] = p_driver;
-+
-+ // Last driver is always our dummy driver
-+ drivers[driver_count++] = &AudioDriverManager::dummy_driver;
- }
-
- int AudioDriverManager::get_driver_count() {
-@@ -158,14 +163,6 @@ void AudioDriverManager::initialize(int p_driver) {
- drivers[i]->set_singleton();
- return;
- }
-- }
--
-- // Fallback to our dummy driver
-- if (dummy_driver.init() == OK) {
-- ERR_PRINT("AudioDriverManager: all drivers failed, falling back to dummy driver");
-- dummy_driver.set_singleton();
-- } else {
-- ERR_PRINT("AudioDriverManager: dummy driver failed to init()");
- }
- }
-
Index: patches/patch-servers_visual_shader_language_cpp
===================================================================
RCS file: patches/patch-servers_visual_shader_language_cpp
diff -N patches/patch-servers_visual_shader_language_cpp
--- patches/patch-servers_visual_shader_language_cpp 16 Aug 2019 15:38:15 -0000 1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,22 +0,0 @@
-$OpenBSD: patch-servers_visual_shader_language_cpp,v 1.1 2019/08/16 15:38:15 thfr Exp $
-
-Fix error with ports-gcc:
-  error: converting to 'bool' from 'std::nullptr_t' requires direct-initialization [-fpermissive]
-
-Index: servers/visual/shader_language.cpp
---- servers/visual/shader_language.cpp.orig
-+++ servers/visual/shader_language.cpp
-@@ -1869,11 +1869,11 @@ const ShaderLanguage::BuiltinFuncDef ShaderLanguage::b
-
- bool ShaderLanguage::_validate_function_call(BlockNode *p_block, OperatorNode *p_func, DataType *r_ret_type) {
-
-- ERR_FAIL_COND_V(p_func->op != OP_CALL && p_func->op != OP_CONSTRUCT, NULL);
-+ ERR_FAIL_COND_V(p_func->op != OP_CALL && p_func->op != OP_CONSTRUCT, false);
-
- Vector<DataType> args;
-
-- ERR_FAIL_COND_V(p_func->arguments[0]->type != Node::TYPE_VARIABLE, NULL);
-+ ERR_FAIL_COND_V(p_func->arguments[0]->type != Node::TYPE_VARIABLE, false);
-
- StringName name = static_cast<VariableNode *>(p_func->arguments[0])->name.operator String();
-
Index: patches/patch-thirdparty_minizip_unzip_c
===================================================================
RCS file: patches/patch-thirdparty_minizip_unzip_c
diff -N patches/patch-thirdparty_minizip_unzip_c
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ patches/patch-thirdparty_minizip_unzip_c 12 Jun 2020 12:28:41 -0000
@@ -0,0 +1,16 @@
+$OpenBSD$
+
+z_crc_t is defined as unsigned long on zlib 1.2.11, which is newer than
+the one we have in base.
+
+Index: thirdparty/minizip/unzip.c
+--- thirdparty/minizip/unzip.c.orig
++++ thirdparty/minizip/unzip.c
+@@ -118,6 +118,7 @@
+ #define SIZECENTRALDIRITEM (0x2e)
+ #define SIZEZIPLOCALHEADER (0x1e)
+
++typedef unsigned long z_crc_t;
+
+ const char unz_copyright[] =
+    " unzip 1.01 Copyright 1998-2004 Gilles Vollant - http://www.winimage.com/zLibDll";
Index: patches/patch-thirdparty_minizip_zip_c
===================================================================
RCS file: patches/patch-thirdparty_minizip_zip_c
diff -N patches/patch-thirdparty_minizip_zip_c
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ patches/patch-thirdparty_minizip_zip_c 12 Jun 2020 12:28:41 -0000
@@ -0,0 +1,17 @@
+$OpenBSD$
+
+z_crc_t is defined as unsigned long on zlib 1.2.11, which is newer than
+the one we have in base.
+
+Index: thirdparty/minizip/zip.c
+--- thirdparty/minizip/zip.c.orig
++++ thirdparty/minizip/zip.c
+@@ -111,6 +111,8 @@ const char zip_copyright[] =" zip 1.01 Copyright 1998-
+
+ #define SIZECENTRALHEADER (0x2e) /* 46 */
+
++typedef unsigned long z_crc_t;
++
+ typedef struct linkedlist_datablock_internal_s
+ {
+   struct linkedlist_datablock_internal_s* next_datablock;
Index: patches/patch-thirdparty_thekla_atlas_nvcore_nvcore_h
===================================================================
RCS file: patches/patch-thirdparty_thekla_atlas_nvcore_nvcore_h
diff -N patches/patch-thirdparty_thekla_atlas_nvcore_nvcore_h
--- patches/patch-thirdparty_thekla_atlas_nvcore_nvcore_h 16 Aug 2019 15:38:15 -0000 1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,16 +0,0 @@
-$OpenBSD: patch-thirdparty_thekla_atlas_nvcore_nvcore_h,v 1.1 2019/08/16 15:38:15 thfr Exp $
-
-Overzealous #error, the code builds fine even if the CPU isn't known.
-
-Index: thirdparty/thekla_atlas/nvcore/nvcore.h
---- thirdparty/thekla_atlas/nvcore/nvcore.h.orig
-+++ thirdparty/thekla_atlas/nvcore/nvcore.h
-@@ -115,7 +115,7 @@
- #elif defined POSH_CPU_STRONGARM
- #   define NV_CPU_ARM 1
- #else
--#   error "Unsupported CPU"
-+//#   error "Unsupported CPU"
- #endif
-
-

Reply | Threaded
Open this post in threaded view
|

update games/godot to 3.2.2 (was Re: update games/godot to 3.2.1)

Omar Polo-3
In reply to this post by Thomas Frohwein-2

In the meantime godot 3.2.2 was released[0].  It's a maintenance release
and, while most of the features/bugfix doesn't seem to affect this port
(we have c# disabled, and I don't think building games for ios/android
works on OpenBSD), there is the introduction of 2D batching for GLES2
which seems nice.

There shouldn't be differences between this patch and the last I sent,
except for the shasum and the line numbers of the patches obviously.

tested on amd64 (unfortunately I cannot test on other arches) and just
as a pro-forma re-checked port-lib-depends-check and portcheck:
everything's fine!

[0]: https://godotengine.org/article/maintenance-release-godot-3-2-2


Index: Makefile
===================================================================
RCS file: /cvs/ports/games/godot/Makefile,v
retrieving revision 1.10
diff -u -p -r1.10 Makefile
--- Makefile 12 Apr 2020 13:30:55 -0000 1.10
+++ Makefile 27 Jun 2020 16:57:40 -0000
@@ -2,22 +2,21 @@

 COMMENT = 2D and 3D game engine

-V = 3.0.6
+V = 3.2.2
 DISTNAME = godot-${V}-stable
 PKGNAME = godot-${V}
 CATEGORIES = games
 HOMEPAGE = https://godotengine.org/
 MAINTAINER = Thomas Frohwein <[hidden email]>
-REVISION = 3

 # MIT
 PERMIT_PACKAGE = Yes

 WANTLIB += ${COMPILER_LIBCXX}
 WANTLIB += GL X11 Xau Xcursor Xdmcp Xext Xfixes Xi Xinerama Xrandr
-WANTLIB += Xrender c crypto enet execinfo freetype intl m mpcdec
-WANTLIB += ogg opus opusfile png ssl theora theoradec vorbis vorbisfile
-WANTLIB += webp xcb z pcre2-32 vpx zstd
+WANTLIB += Xrender c enet execinfo freetype intl m mbedtls mbedcrypto
+WANTLIB += mbedx509 mpcdec ogg opus opusfile png theora theoradec
+WANTLIB += vorbis vorbisfile webp xcb z pcre2-32 vpx zstd

 COMPILER = base-clang ports-gcc base-gcc

@@ -32,7 +31,7 @@ MODULES = devel/scons
 MODSCONS_FLAGS = CC="${CC}" \
  CXX="${CXX}" \
  CFLAGS="${CFLAGS}" \
- CXXFLAGS="${CXXFLAGS}" \
+ CXXFLAGS="${CXXFLAGS} -Wno-deprecated-register" \
  LINKFLAGS="${LDFLAGS} -lintl -lmpcdec" \
  builtin_enet=no \
  builtin_freetype=no \
@@ -44,7 +43,7 @@ MODSCONS_FLAGS = CC="${CC}" \
  builtin_libvorbis=no \
  builtin_libvpx=no \
  builtin_libwebp=no \
- builtin_openssl=no \
+ builtin_mbedtls=no \
  builtin_opus=no \
  builtin_pcre2=no \
  builtin_zlib=no \
@@ -65,7 +64,8 @@ LIB_DEPENDS = archivers/zstd \
  graphics/png \
  multimedia/libtheora \
  multimedia/libvpx \
- net/enet
+ net/enet \
+ security/polarssl

 NO_TEST = Yes

Index: distinfo
===================================================================
RCS file: /cvs/ports/games/godot/distinfo,v
retrieving revision 1.3
diff -u -p -r1.3 distinfo
--- distinfo 25 Aug 2018 19:20:29 -0000 1.3
+++ distinfo 27 Jun 2020 16:57:40 -0000
@@ -1,2 +1,2 @@
-SHA256 (godot-3.0.6-stable.tar.xz) = LfHLNqAMaHrnShHX31vcEyyBapNOJpbswzgnAI/5xrk=
-SIZE (godot-3.0.6-stable.tar.xz) = 12517428
+SHA256 (godot-3.2.2-stable.tar.xz) = oZacrxoX/tJQVMtDqXHBQQT9lPWV/Pu8J0XP9HnHPgM=
+SIZE (godot-3.2.2-stable.tar.xz) = 14251180
Index: patches/patch-core_io_SCsub
===================================================================
RCS file: /cvs/ports/games/godot/patches/patch-core_io_SCsub,v
retrieving revision 1.1.1.1
diff -u -p -r1.1.1.1 patch-core_io_SCsub
--- patches/patch-core_io_SCsub 27 Apr 2018 07:32:53 -0000 1.1.1.1
+++ patches/patch-core_io_SCsub 27 Jun 2020 16:57:40 -0000
@@ -9,9 +9,9 @@ based on github issue #17374
 Index: core/io/SCsub
 --- core/io/SCsub.orig
 +++ core/io/SCsub
-@@ -5,4 +5,4 @@ Import('env')
- env.add_source_files(env.core_sources, "*.cpp")
+@@ -3,3 +3,5 @@
+ Import("env")

- Export('env')
--
+ env.add_source_files(env.core_sources, "*.cpp")
++
 +env.Append(CCFLAGS="-DZSTD_STATIC_LINKING_ONLY")
Index: patches/patch-core_io_compression_cpp
===================================================================
RCS file: /cvs/ports/games/godot/patches/patch-core_io_compression_cpp,v
retrieving revision 1.1.1.1
diff -u -p -r1.1.1.1 patch-core_io_compression_cpp
--- patches/patch-core_io_compression_cpp 27 Apr 2018 07:32:53 -0000 1.1.1.1
+++ patches/patch-core_io_compression_cpp 27 Jun 2020 16:57:40 -0000
@@ -9,17 +9,16 @@ based on github issue #17374
 Index: core/io/compression.cpp
 --- core/io/compression.cpp.orig
 +++ core/io/compression.cpp
-@@ -79,16 +79,9 @@ int Compression::compress(uint8_t *p_dst, const uint8_
+@@ -80,16 +80,8 @@ int Compression::compress(uint8_t *p_dst, const uint8_

  } break;
  case MODE_ZSTD: {
 - ZSTD_CCtx *cctx = ZSTD_createCCtx();
-- ZSTD_CCtx_setParameter(cctx, ZSTD_p_compressionLevel, zstd_level);
+- ZSTD_CCtx_setParameter(cctx, ZSTD_c_compressionLevel, zstd_level);
 - if (zstd_long_distance_matching) {
-- ZSTD_CCtx_setParameter(cctx, ZSTD_p_enableLongDistanceMatching, 1);
-- ZSTD_CCtx_setParameter(cctx, ZSTD_p_windowLog, zstd_window_log_size);
+- ZSTD_CCtx_setParameter(cctx, ZSTD_c_enableLongDistanceMatching, 1);
+- ZSTD_CCtx_setParameter(cctx, ZSTD_c_windowLog, zstd_window_log_size);
 - }
-+
  int max_dst_size = get_max_compressed_buffer_size(p_src_size, MODE_ZSTD);
 - int ret = ZSTD_compressCCtx(cctx, p_dst, max_dst_size, p_src, p_src_size, zstd_level);
 - ZSTD_freeCCtx(cctx);
@@ -28,23 +27,24 @@ Index: core/io/compression.cpp
  } break;
  }

-@@ -173,11 +166,8 @@ int Compression::decompress(uint8_t *p_dst, int p_dst_
+@@ -174,13 +166,7 @@ int Compression::decompress(uint8_t *p_dst, int p_dst_
  return total;
  } break;
  case MODE_ZSTD: {
 - ZSTD_DCtx *dctx = ZSTD_createDCtx();
-- if (zstd_long_distance_matching) ZSTD_DCtx_setMaxWindowSize(dctx, 1 << zstd_window_log_size);
+- if (zstd_long_distance_matching) {
+- ZSTD_DCtx_setParameter(dctx, ZSTD_d_windowLogMax, zstd_window_log_size);
+- }
 - int ret = ZSTD_decompressDCtx(dctx, p_dst, p_dst_max_size, p_src, p_src_size);
 - ZSTD_freeDCtx(dctx);
 - return ret;
-+
 + return ZSTD_decompress(p_dst, p_dst_max_size, p_src, p_src_size);
  } break;
  }

-@@ -187,5 +177,3 @@ int Compression::decompress(uint8_t *p_dst, int p_dst_
+@@ -190,5 +176,3 @@ int Compression::decompress(uint8_t *p_dst, int p_dst_
  int Compression::zlib_level = Z_DEFAULT_COMPRESSION;
  int Compression::gzip_level = Z_DEFAULT_COMPRESSION;
  int Compression::zstd_level = 3;
 -bool Compression::zstd_long_distance_matching = false;
--int Compression::zstd_window_log_size = 27;
+-int Compression::zstd_window_log_size = 27; // ZSTD_WINDOWLOG_LIMIT_DEFAULT
Index: patches/patch-core_project_settings_cpp
===================================================================
RCS file: /cvs/ports/games/godot/patches/patch-core_project_settings_cpp,v
retrieving revision 1.2
diff -u -p -r1.2 patch-core_project_settings_cpp
--- patches/patch-core_project_settings_cpp 25 Aug 2018 19:20:29 -0000 1.2
+++ patches/patch-core_project_settings_cpp 27 Jun 2020 16:57:40 -0000
@@ -9,8 +9,8 @@ based on github issue #17374
 Index: core/project_settings.cpp
 --- core/project_settings.cpp.orig
 +++ core/project_settings.cpp
-@@ -1041,14 +1041,11 @@ ProjectSettings::ProjectSettings() {
- GLOBAL_DEF("debug/settings/profiler/max_functions", 16384);
+@@ -1201,14 +1201,11 @@ ProjectSettings::ProjectSettings() {
+ custom_prop_info["debug/settings/profiler/max_functions"] = PropertyInfo(Variant::INT, "debug/settings/profiler/max_functions", PROPERTY_HINT_RANGE, "128,65535,1");

  //assigning here, because using GLOBAL_GET on every block for compressing can be slow
 - Compression::zstd_long_distance_matching = GLOBAL_DEF("compression/formats/zstd/long_distance_matching", false);
Index: patches/patch-core_safe_refcount_h
===================================================================
RCS file: /cvs/ports/games/godot/patches/patch-core_safe_refcount_h,v
retrieving revision 1.1
diff -u -p -r1.1 patch-core_safe_refcount_h
--- patches/patch-core_safe_refcount_h 2 Sep 2019 18:20:12 -0000 1.1
+++ patches/patch-core_safe_refcount_h 27 Jun 2020 16:57:40 -0000
@@ -7,57 +7,65 @@ https://github.com/godotengine/godot/pul
 Index: core/safe_refcount.h
 --- core/safe_refcount.h.orig
 +++ core/safe_refcount.h
-@@ -99,8 +99,8 @@ static _ALWAYS_INLINE_ T atomic_exchange_if_greater(re
-
- /* Implementation for GCC & Clang */
-
--// GCC guarantees atomic intrinsics for sizes of 1, 2, 4 and 8 bytes.
--// Clang states it supports GCC atomic builtins.
-+#include <stdbool.h>
-+#include <atomic>
-
- template <class T>
- static _ALWAYS_INLINE_ T atomic_conditional_increment(register T *pw) {
-@@ -109,7 +109,7 @@ static _ALWAYS_INLINE_ T atomic_conditional_increment(
- T tmp = static_cast<T const volatile &>(*pw);
- if (tmp == 0)
- return 0; // if zero, can't add to it anymore
-- if (__sync_val_compare_and_swap(pw, tmp, tmp + 1) == tmp)
-+ if (__atomic_compare_exchange_n(pw, &tmp, tmp + 1, false, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST) == true)
- return tmp + 1;
- }
- }
-@@ -117,25 +117,25 @@ static _ALWAYS_INLINE_ T atomic_conditional_increment(
+@@ -55,33 +55,26 @@ static _ALWAYS_INLINE_ T atomic_conditional_increment(
  template <class T>
- static _ALWAYS_INLINE_ T atomic_decrement(register T *pw) {
+ static _ALWAYS_INLINE_ T atomic_decrement(volatile T *pw) {

-- return __sync_sub_and_fetch(pw, 1);
+- (*pw)--;
+-
+- return *pw;
 + return __atomic_sub_fetch(pw, 1, __ATOMIC_SEQ_CST);
  }

  template <class T>
- static _ALWAYS_INLINE_ T atomic_increment(register T *pw) {
+ static _ALWAYS_INLINE_ T atomic_increment(volatile T *pw) {

-- return __sync_add_and_fetch(pw, 1);
+- (*pw)++;
+-
+- return *pw;
 + return __atomic_add_fetch(pw, 1, __ATOMIC_SEQ_CST);
  }

  template <class T, class V>
- static _ALWAYS_INLINE_ T atomic_sub(register T *pw, register V val) {
+ static _ALWAYS_INLINE_ T atomic_sub(volatile T *pw, volatile V val) {
+
+- (*pw) -= val;

-- return __sync_sub_and_fetch(pw, val);
+- return *pw;
 + return __atomic_sub_fetch(pw, val, __ATOMIC_SEQ_CST);
  }

  template <class T, class V>
- static _ALWAYS_INLINE_ T atomic_add(register T *pw, register V val) {
+ static _ALWAYS_INLINE_ T atomic_add(volatile T *pw, volatile V val) {

-- return __sync_add_and_fetch(pw, val);
+- (*pw) += val;
+-
+- return *pw;
 + return __atomic_add_fetch(pw, val, __ATOMIC_SEQ_CST);
  }

  template <class T, class V>
-@@ -145,7 +145,7 @@ static _ALWAYS_INLINE_ T atomic_exchange_if_greater(re
+@@ -97,8 +90,8 @@ static _ALWAYS_INLINE_ T atomic_exchange_if_greater(vo
+
+ /* Implementation for GCC & Clang */
+
+-// GCC guarantees atomic intrinsics for sizes of 1, 2, 4 and 8 bytes.
+-// Clang states it supports GCC atomic builtins.
++#include <stdbool.h>
++#include <atomic>
+
+ template <class T>
+ static _ALWAYS_INLINE_ T atomic_conditional_increment(volatile T *pw) {
+@@ -107,7 +100,7 @@ static _ALWAYS_INLINE_ T atomic_conditional_increment(
+ T tmp = static_cast<T const volatile &>(*pw);
+ if (tmp == 0)
+ return 0; // if zero, can't add to it anymore
+- if (__sync_val_compare_and_swap(pw, tmp, tmp + 1) == tmp)
++ if (__atomic_compare_exchange_n(pw, &tmp, tmp + 1, false, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST) == true)
+ return tmp + 1;
+ }
+ }
+@@ -143,7 +136,7 @@ static _ALWAYS_INLINE_ T atomic_exchange_if_greater(vo
  T tmp = static_cast<T const volatile &>(*pw);
  if (tmp >= val)
  return tmp; // already greater, or equal
Index: patches/patch-drivers_unix_os_unix_cpp
===================================================================
RCS file: /cvs/ports/games/godot/patches/patch-drivers_unix_os_unix_cpp,v
retrieving revision 1.3
diff -u -p -r1.3 patch-drivers_unix_os_unix_cpp
--- patches/patch-drivers_unix_os_unix_cpp 25 Aug 2018 19:20:29 -0000 1.3
+++ patches/patch-drivers_unix_os_unix_cpp 27 Jun 2020 16:57:40 -0000
@@ -1,11 +1,11 @@
 $OpenBSD: patch-drivers_unix_os_unix_cpp,v 1.3 2018/08/25 19:20:29 thfr Exp $

-- hardcode executable path
+hardcode executable path

 Index: drivers/unix/os_unix.cpp
 --- drivers/unix/os_unix.cpp.orig
 +++ drivers/unix/os_unix.cpp
-@@ -462,7 +462,7 @@ String OS_Unix::get_executable_path() const {
+@@ -510,7 +510,7 @@ String OS_Unix::get_executable_path() const {
  #elif defined(__OpenBSD__)
  char resolved_path[MAXPATHLEN];

Index: patches/patch-main_main_cpp
===================================================================
RCS file: /cvs/ports/games/godot/patches/patch-main_main_cpp,v
retrieving revision 1.1
diff -u -p -r1.1 patch-main_main_cpp
--- patches/patch-main_main_cpp 25 Aug 2018 19:20:29 -0000 1.1
+++ patches/patch-main_main_cpp 27 Jun 2020 16:57:40 -0000
@@ -5,8 +5,8 @@ log on falling back to dummy audio drive
 Index: main/main.cpp
 --- main/main.cpp.orig
 +++ main/main.cpp
-@@ -938,6 +938,10 @@ Error Main::setup(const char *execpath, int argc, char
- audio_driver = GLOBAL_DEF("audio/driver", OS::get_singleton()->get_audio_driver_name(0));
+@@ -1135,6 +1135,10 @@ Error Main::setup(const char *execpath, int argc, char
+ audio_driver = GLOBAL_DEF_RST("audio/driver", OS::get_singleton()->get_audio_driver_name(0));
  }

 + if (audio_driver == "Dummy") {
Index: patches/patch-platform_uwp_export_export_cpp
===================================================================
RCS file: patches/patch-platform_uwp_export_export_cpp
diff -N patches/patch-platform_uwp_export_export_cpp
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ patches/patch-platform_uwp_export_export_cpp 27 Jun 2020 16:57:40 -0000
@@ -0,0 +1,16 @@
+$OpenBSD$
+
+fix comparison of integers of different signs
+
+Index: platform/uwp/export/export.cpp
+--- platform/uwp/export/export.cpp.orig
++++ platform/uwp/export/export.cpp
+@@ -554,7 +554,7 @@ Error AppxPackager::add_file(String p_file_name, const
+ //package->store_buffer(strm_out.ptr(), strm.total_out - total_out_before);
+ int start = file_buffer.size();
+ file_buffer.resize(file_buffer.size() + (strm.total_out - total_out_before));
+- for (uint64_t i = 0; i < (strm.total_out - total_out_before); i++)
++ for (int64_t i = 0; i < (strm.total_out - total_out_before); i++)
+ file_buffer.write[start + i] = strm_out[i];
+
+ deflateEnd(&strm);
Index: patches/patch-platform_x11_detect_py
===================================================================
RCS file: /cvs/ports/games/godot/patches/patch-platform_x11_detect_py,v
retrieving revision 1.1
diff -u -p -r1.1 patch-platform_x11_detect_py
--- patches/patch-platform_x11_detect_py 25 Aug 2018 19:20:29 -0000 1.1
+++ patches/patch-platform_x11_detect_py 27 Jun 2020 16:57:40 -0000
@@ -5,12 +5,25 @@ remove hardcoded -O2, found by bcallah@
 Index: platform/x11/detect.py
 --- platform/x11/detect.py.orig
 +++ platform/x11/detect.py
-@@ -84,7 +84,7 @@ def configure(env):
-             env.Prepend(CCFLAGS=['-g2'])
+@@ -85,21 +85,12 @@ def configure(env):
+     ## Build type

-     elif (env["target"] == "release_debug"):
--        env.Prepend(CCFLAGS=['-O2', '-ffast-math', '-DDEBUG_ENABLED'])
-+        env.Prepend(CCFLAGS=['-ffast-math', '-DDEBUG_ENABLED'])
-         if (env["debug_symbols"] == "yes"):
-             env.Prepend(CCFLAGS=['-g1'])
-         if (env["debug_symbols"] == "full"):
+     if env["target"] == "release":
+-        if env["optimize"] == "speed":  # optimize for speed (default)
+-            env.Prepend(CCFLAGS=["-O3"])
+-        else:  # optimize for size
+-            env.Prepend(CCFLAGS=["-Os"])
+-
+         if env["debug_symbols"] == "yes":
+             env.Prepend(CCFLAGS=["-g1"])
+         if env["debug_symbols"] == "full":
+             env.Prepend(CCFLAGS=["-g2"])
+
+     elif env["target"] == "release_debug":
+-        if env["optimize"] == "speed":  # optimize for speed (default)
+-            env.Prepend(CCFLAGS=["-O2"])
+-        else:  # optimize for size
+-            env.Prepend(CCFLAGS=["-Os"])
+         env.Prepend(CPPDEFINES=["DEBUG_ENABLED"])
+
+         if env["debug_symbols"] == "yes":
Index: patches/patch-platform_x11_os_x11_cpp
===================================================================
RCS file: /cvs/ports/games/godot/patches/patch-platform_x11_os_x11_cpp,v
retrieving revision 1.1.1.1
diff -u -p -r1.1.1.1 patch-platform_x11_os_x11_cpp
--- patches/patch-platform_x11_os_x11_cpp 27 Apr 2018 07:32:53 -0000 1.1.1.1
+++ patches/patch-platform_x11_os_x11_cpp 27 Jun 2020 16:57:40 -0000
@@ -5,7 +5,7 @@ fix libXrandr library name
 Index: platform/x11/os_x11.cpp
 --- platform/x11/os_x11.cpp.orig
 +++ platform/x11/os_x11.cpp
-@@ -160,7 +160,7 @@ Error OS_X11::initialize(const VideoMode &p_desired, i
+@@ -163,10 +163,10 @@ Error OS_X11::initialize(const VideoMode &p_desired, i
  int xrandr_minor = 0;
  int event_base, error_base;
  xrandr_ext_ok = XRRQueryExtension(x11_display, &event_base, &error_base);
@@ -13,4 +13,8 @@ Index: platform/x11/os_x11.cpp
 + xrandr_handle = dlopen("libXrandr.so", RTLD_LAZY);
  if (!xrandr_handle) {
  err = dlerror();
- fprintf(stderr, "could not load libXrandr.so.2, Error: %s\n", err);
+- fprintf(stderr, "could not load libXrandr.so.2, Error: %s\n", err);
++ fprintf(stderr, "could not load libXrandr.so, Error: %s\n", err);
+ } else {
+ XRRQueryVersion(x11_display, &xrandr_major, &xrandr_minor);
+ if (((xrandr_major << 8) | xrandr_minor) >= 0x0105) {
Index: patches/patch-servers_audio_server_cpp
===================================================================
RCS file: patches/patch-servers_audio_server_cpp
diff -N patches/patch-servers_audio_server_cpp
--- patches/patch-servers_audio_server_cpp 25 Aug 2018 19:20:29 -0000 1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,46 +0,0 @@
-$OpenBSD: patch-servers_audio_server_cpp,v 1.1 2018/08/25 19:20:29 thfr Exp $
-
-add dummy audio driver to AudioDriverManager list
-(github issue #20986)
-
-Index: servers/audio_server.cpp
---- servers/audio_server.cpp.orig
-+++ servers/audio_server.cpp
-@@ -119,14 +119,19 @@ AudioDriver::AudioDriver() {
- _mix_amount = 0;
- }
-
--AudioDriver *AudioDriverManager::drivers[MAX_DRIVERS];
--int AudioDriverManager::driver_count = 0;
- AudioDriverDummy AudioDriverManager::dummy_driver;
-+AudioDriver *AudioDriverManager::drivers[MAX_DRIVERS] = {
-+ &AudioDriverManager::dummy_driver,
-+};
-+int AudioDriverManager::driver_count = 1;
-
- void AudioDriverManager::add_driver(AudioDriver *p_driver) {
-
- ERR_FAIL_COND(driver_count >= MAX_DRIVERS);
-- drivers[driver_count++] = p_driver;
-+ drivers[driver_count - 1] = p_driver;
-+
-+ // Last driver is always our dummy driver
-+ drivers[driver_count++] = &AudioDriverManager::dummy_driver;
- }
-
- int AudioDriverManager::get_driver_count() {
-@@ -158,14 +163,6 @@ void AudioDriverManager::initialize(int p_driver) {
- drivers[i]->set_singleton();
- return;
- }
-- }
--
-- // Fallback to our dummy driver
-- if (dummy_driver.init() == OK) {
-- ERR_PRINT("AudioDriverManager: all drivers failed, falling back to dummy driver");
-- dummy_driver.set_singleton();
-- } else {
-- ERR_PRINT("AudioDriverManager: dummy driver failed to init()");
- }
- }
-
Index: patches/patch-servers_visual_shader_language_cpp
===================================================================
RCS file: patches/patch-servers_visual_shader_language_cpp
diff -N patches/patch-servers_visual_shader_language_cpp
--- patches/patch-servers_visual_shader_language_cpp 16 Aug 2019 15:38:15 -0000 1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,22 +0,0 @@
-$OpenBSD: patch-servers_visual_shader_language_cpp,v 1.1 2019/08/16 15:38:15 thfr Exp $
-
-Fix error with ports-gcc:
-  error: converting to 'bool' from 'std::nullptr_t' requires direct-initialization [-fpermissive]
-
-Index: servers/visual/shader_language.cpp
---- servers/visual/shader_language.cpp.orig
-+++ servers/visual/shader_language.cpp
-@@ -1869,11 +1869,11 @@ const ShaderLanguage::BuiltinFuncDef ShaderLanguage::b
-
- bool ShaderLanguage::_validate_function_call(BlockNode *p_block, OperatorNode *p_func, DataType *r_ret_type) {
-
-- ERR_FAIL_COND_V(p_func->op != OP_CALL && p_func->op != OP_CONSTRUCT, NULL);
-+ ERR_FAIL_COND_V(p_func->op != OP_CALL && p_func->op != OP_CONSTRUCT, false);
-
- Vector<DataType> args;
-
-- ERR_FAIL_COND_V(p_func->arguments[0]->type != Node::TYPE_VARIABLE, NULL);
-+ ERR_FAIL_COND_V(p_func->arguments[0]->type != Node::TYPE_VARIABLE, false);
-
- StringName name = static_cast<VariableNode *>(p_func->arguments[0])->name.operator String();
-
Index: patches/patch-thirdparty_minizip_unzip_c
===================================================================
RCS file: patches/patch-thirdparty_minizip_unzip_c
diff -N patches/patch-thirdparty_minizip_unzip_c
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ patches/patch-thirdparty_minizip_unzip_c 27 Jun 2020 16:57:40 -0000
@@ -0,0 +1,16 @@
+$OpenBSD$
+
+z_crc_t is defined as unsigned long on zlib 1.2.11, which is newer than
+the one we have in base.
+
+Index: thirdparty/minizip/unzip.c
+--- thirdparty/minizip/unzip.c.orig
++++ thirdparty/minizip/unzip.c
+@@ -118,6 +118,7 @@
+ #define SIZECENTRALDIRITEM (0x2e)
+ #define SIZEZIPLOCALHEADER (0x1e)
+
++typedef unsigned long z_crc_t;
+
+ const char unz_copyright[] =
+    " unzip 1.01 Copyright 1998-2004 Gilles Vollant - http://www.winimage.com/zLibDll";
Index: patches/patch-thirdparty_minizip_zip_c
===================================================================
RCS file: patches/patch-thirdparty_minizip_zip_c
diff -N patches/patch-thirdparty_minizip_zip_c
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ patches/patch-thirdparty_minizip_zip_c 27 Jun 2020 16:57:40 -0000
@@ -0,0 +1,17 @@
+$OpenBSD$
+
+z_crc_t is defined as unsigned long on zlib 1.2.11, which is newer than
+the one we have in base.
+
+Index: thirdparty/minizip/zip.c
+--- thirdparty/minizip/zip.c.orig
++++ thirdparty/minizip/zip.c
+@@ -111,6 +111,8 @@ const char zip_copyright[] =" zip 1.01 Copyright 1998-
+
+ #define SIZECENTRALHEADER (0x2e) /* 46 */
+
++typedef unsigned long z_crc_t;
++
+ typedef struct linkedlist_datablock_internal_s
+ {
+   struct linkedlist_datablock_internal_s* next_datablock;
Index: patches/patch-thirdparty_thekla_atlas_nvcore_nvcore_h
===================================================================
RCS file: patches/patch-thirdparty_thekla_atlas_nvcore_nvcore_h
diff -N patches/patch-thirdparty_thekla_atlas_nvcore_nvcore_h
--- patches/patch-thirdparty_thekla_atlas_nvcore_nvcore_h 16 Aug 2019 15:38:15 -0000 1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,16 +0,0 @@
-$OpenBSD: patch-thirdparty_thekla_atlas_nvcore_nvcore_h,v 1.1 2019/08/16 15:38:15 thfr Exp $
-
-Overzealous #error, the code builds fine even if the CPU isn't known.
-
-Index: thirdparty/thekla_atlas/nvcore/nvcore.h
---- thirdparty/thekla_atlas/nvcore/nvcore.h.orig
-+++ thirdparty/thekla_atlas/nvcore/nvcore.h
-@@ -115,7 +115,7 @@
- #elif defined POSH_CPU_STRONGARM
- #   define NV_CPU_ARM 1
- #else
--#   error "Unsupported CPU"
-+//#   error "Unsupported CPU"
- #endif
-
-