milkytracker is broken in the current macppc bulk:

> conv.c:78:51: error: invalid operand for instruction
> DEFINE_CLIPCONVERT_POWERPC(s8,f32, -128.0, 127.0, LFSUX, LBZ_STBUX)
>                                                   ^
> conv.c:65:16: note: expanded from macro 'LFSUX'
> #define LFSUX   "1:     lfsux f0,%1,%6          \n"
>                  ^
> <inline asm>:4:10: note: instantiated into assembly here
> 1:      lfsux f0,5,6

I'm not proposing using `-fno-integrated-as' this time, because it
causes relocation errors. Since a fallback already exists, i think
we should use it.

I've reported the issue upstream as a PR, but i don't expect the
upstream fix to be as-is [0]. While here i've updated HOMEPAGE.

With the below diff it builds [1] and runs fine on macppc.

Comments/feedback are welcome,

Charlène.


[0] https://github.com/milkytracker/MilkyTracker/pull/210
[1] https://bin.charlenew.xyz/milkytracker.log


Index: Makefile
===================================================================
RCS file: /cvs/ports/audio/milkytracker/Makefile,v
retrieving revision 1.24
diff -u -p -u -p -r1.24 Makefile
--- Makefile    15 Apr 2020 13:31:42 -0000      1.24
+++ Makefile    28 Apr 2020 16:18:31 -0000
@@ -7,11 +7,11 @@ GH_PROJECT =  MilkyTracker
 GH_TAGNAME =   v1.02.00
 
 PKGNAME =      ${DISTNAME:L}
-REVISION =     5
+REVISION =     6
 
 CATEGORIES =   audio
 
-HOMEPAGE =     http://milkytracker.titandemo.org/
+HOMEPAGE =     https://milkytracker.titandemo.org/
 
 # GPLv3+
 PERMIT_PACKAGE =       Yes
Index: patches/patch-src_ppui_fastfill_h
===================================================================
RCS file: patches/patch-src_ppui_fastfill_h
diff -N patches/patch-src_ppui_fastfill_h
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-src_ppui_fastfill_h   28 Apr 2020 16:18:31 -0000
@@ -0,0 +1,26 @@
+$OpenBSD$
+
+powerpc fix for "error: invalid operand for instruction" in asm code
+see https://github.com/milkytracker/MilkyTracker/pull/210
+
+Index: src/ppui/fastfill.h
+--- src/ppui/fastfill.h.orig
++++ src/ppui/fastfill.h
+@@ -34,7 +34,7 @@ static __attribute__((noinline)) void fill_dword(pp_ui
+ static inline void fill_dword(pp_uint32* buff, pp_uint32 dw, pp_uint32 len)
+ #endif
+ {
+-#if defined(__ppc__) && defined(__GNUC__)
++#if defined(__ppc__) && defined(__GNUC__) && !defined(__clang__)
+       // PPC assembly FTW!!1!
+       // r3 = buff
+       // r4 = dw
+@@ -94,7 +94,7 @@ static __attribute__((noinline)) void fill_dword_verti
+ static inline void fill_dword_vertical(pp_uint32* buff, pp_uint32 dw, 
pp_uint32 len, pp_uint32 pitch)
+ #endif
+ {
+-#if defined(__ppc__) && defined(__GNUC__)
++#if defined(__ppc__) && defined(__GNUC__) && !defined(__clang__)
+       asm volatile("nop\n" // align loop start to 16 byte boundary
+                                "nop\n" // same
+                                "nop\n" // same

Reply via email to