Friday, July 26, 2019

[ports-gcc] Unbreak emulators/fs-uae

> http://build-failures.rhaalovely.net/sparc64/2019-07-11/emulators/fs-uae.log
> http://build-failures.rhaalovely.net//powerpc/2019-07-14/emulators/fs-uae.log

BAD_THREAD is defined as NULL, and eg++ sees NULL not as 0 but nullptr,
so it breaks. During the build another nullptr-related issue popped up,
but FreeBSD had already a fix [0] for it.

With these patches, the build is fixed on macppc [1], and not broken
on amd64.

Comments/feedback are welcome!

Charlène.


[0]
https://github.com/freebsd/freebsd-ports/commit/87c030999d570c44ffbc881d47c6bdf1e5fda819#diff-ad32509d0f64a1563c42b9aab8c114cc
[1] https://bin.charlenew.xyz/fs-uae.log


Index: Makefile
===================================================================
RCS file: /cvs/ports/emulators/fs-uae/Makefile,v
retrieving revision 1.32
diff -u -p -u -p -r1.32 Makefile
--- Makefile 12 Jul 2019 20:46:08 -0000 1.32
+++ Makefile 26 Jul 2019 14:57:31 -0000
@@ -7,9 +7,9 @@ V = 2.4.0
MODPY_EGG_VERSION = ${V}
DISTNAME = fs-uae-$V
CATEGORIES = emulators
-REVISION = 9
+REVISION = 10

-HOMEPAGE = http://fengestad.no/fs-uae/
+HOMEPAGE = https://fs-uae.net/
MAINTAINER = Edd Barrett <edd@openbsd.org>

# GPLv2, LGPLv2.1
Index: patches/patch-src_od-fs_bsdsocket_posix_cpp
===================================================================
RCS file: patches/patch-src_od-fs_bsdsocket_posix_cpp
diff -N patches/patch-src_od-fs_bsdsocket_posix_cpp
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ patches/patch-src_od-fs_bsdsocket_posix_cpp 26 Jul 2019 14:57:31 -0000
@@ -0,0 +1,17 @@
+$OpenBSD$
+
+BAD_THREAD is defined as NULL, and ports-gcc doesn't want to
+compare nullptr and int.
+
+Index: src/od-fs/bsdsocket_posix.cpp
+--- src/od-fs/bsdsocket_posix.cpp.orig
++++ src/od-fs/bsdsocket_posix.cpp
+@@ -1407,7 +1407,7 @@ int host_sbinit (TrapContext *context, SB)
+ sb->hostentsize = 1024;
+
+ /* @@@ The thread should be PTHREAD_CREATE_DETACHED */
+- if (uae_start_thread ("bsdsocket", bsdlib_threadfunc, (void *)sb, &sb->thread) == BAD_THREAD) {
++ if (uae_start_thread ("bsdsocket", bsdlib_threadfunc, (void *)sb, &sb->thread) == 0) {
+ write_log ("BSDSOCK: Failed to create thread.\n");
+ uae_sem_destroy (&sb->sem);
+ close (sb->sockabort[0]);
Index: patches/patch-src_od-fs_picasso96_cpp
===================================================================
RCS file: patches/patch-src_od-fs_picasso96_cpp
diff -N patches/patch-src_od-fs_picasso96_cpp
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ patches/patch-src_od-fs_picasso96_cpp 26 Jul 2019 14:57:31 -0000
@@ -0,0 +1,17 @@
+$OpenBSD$
+
+ports-gcc fix for:
+error: cannot convert 'std::nullptr_t' to 'uaecptr'
+
+Index: src/od-fs/picasso96.cpp
+--- src/od-fs/picasso96.cpp.orig
++++ src/od-fs/picasso96.cpp
+@@ -4916,7 +4916,7 @@ static uaecptr uaegfx_card_install (TrapContext *ctx,
+ uaecptr exec = get_long (4);
+
+ if (uaegfx_old || !gfxmem_start)
+- return NULL;
++ return (uaecptr)0;
+
+ uaegfx_resid = ds (_T("UAE Graphics Card 3.3"));
+ uaegfx_vblankname = ds (_T("UAE Graphics Card VBLANK"));

No comments:

Post a Comment