On Sun, Oct 28, 2012 at 10:53:54AM +0000, Stuart Henderson wrote: > - let this work on powerpc. requires gcc >= 4.3, and I had to patch > away a .gnu_attribute that isn't supported with as(1) from any in-tree > binutils version (was added in 2.18 which is under GPLv3). > > - add ONLY_FOR_ARCHS based on the list of arch which luajit supports. > No point even trying to build on unsupported arch, but we should allow > it to build on arm/mips64* to see if it works there. > > My armish box isn't working any more, so I can't test arm. > macppc is tested and produces same results for the test programs > in the lua 5.1 distribution as normal lua does. > > OK? >
OK. > > Index: Makefile > =================================================================== > RCS file: /cvs/ports/lang/luajit/Makefile,v > retrieving revision 1.1.1.1 > diff -u -p -r1.1.1.1 Makefile > --- Makefile 27 Oct 2012 14:05:33 -0000 1.1.1.1 > +++ Makefile 28 Oct 2012 10:47:49 -0000 > @@ -1,5 +1,7 @@ > # $OpenBSD: Makefile,v 1.1.1.1 2012/10/27 14:05:33 abieber Exp $ > > +ONLY_FOR_ARCHS = amd64 arm i386 mips64 mips64el powerpc > + > SHARED_ONLY = Yes > SHARED_LIBS += luajit-${MODLUA_VERSION} 0.0 # 2.0.0 > > @@ -25,6 +27,11 @@ WANTLIB = c m > MASTER_SITES = ${HOMEPAGE}download/ > > MODULES = lang/lua > + > +MODULES += gcc4 > +MODGCC4_VERSION = 4.6 > +MODGCC4_ARCHS = powerpc > +MODGCC4_LANGS = c > > MAKE_FLAGS += \ > CC="${CC}" \ > Index: patches/patch-src_host_buildvm_asm_c > =================================================================== > RCS file: patches/patch-src_host_buildvm_asm_c > diff -N patches/patch-src_host_buildvm_asm_c > --- /dev/null 1 Jan 1970 00:00:00 -0000 > +++ patches/patch-src_host_buildvm_asm_c 28 Oct 2012 10:47:49 -0000 > @@ -0,0 +1,21 @@ > +$OpenBSD$ > + > +.gnu_attribute requires binutils 2.18 > + > +--- src/host/buildvm_asm.c.orig Sun Oct 28 10:44:35 2012 > ++++ src/host/buildvm_asm.c Sun Oct 28 10:45:15 2012 > +@@ -283,12 +283,14 @@ void emit_asm(BuildCtx *ctx) > + #if !LJ_TARGET_PS3 > + fprintf(ctx->fp, "\t.section .note.GNU-stack,\"\"," ELFASM_PX > "progbits\n"); > + #endif > ++#if 0 > + #if LJ_TARGET_PPCSPE > + /* Soft-float ABI + SPE. */ > + fprintf(ctx->fp, "\t.gnu_attribute 4, 2\n\t.gnu_attribute 8, 3\n"); > + #elif LJ_TARGET_PPC && !LJ_TARGET_PS3 > + /* Hard-float ABI. */ > + fprintf(ctx->fp, "\t.gnu_attribute 4, 1\n"); > ++#endif > + #endif > + /* fallthrough */ > + case BUILD_coffasm: > Index: patches/patch-src_lj_arch_h > =================================================================== > RCS file: patches/patch-src_lj_arch_h > diff -N patches/patch-src_lj_arch_h > --- /dev/null 1 Jan 1970 00:00:00 -0000 > +++ patches/patch-src_lj_arch_h 28 Oct 2012 10:47:49 -0000 > @@ -0,0 +1,13 @@ > +$OpenBSD$ > +--- src/lj_arch.h.orig Fri Oct 26 11:48:11 2012 > ++++ src/lj_arch.h Fri Oct 26 11:48:14 2012 > +@@ -314,9 +314,6 @@ > + #if defined(_SOFT_FLOAT) || defined(_SOFT_DOUBLE) > + #error "No support for PowerPC CPUs without double-precision FPU" > + #endif > +-#if defined(_LITTLE_ENDIAN) > +-#error "No support for little-endian PowerPC" > +-#endif > + #if defined(_LP64) > + #error "No support for PowerPC 64 bit mode" > + #endif >