From e434ab505e52cc2cb4ae13b79e7bdf03014cfad7 Mon Sep 17 00:00:00 2001 From: Mike Pall Date: Fri, 11 Jan 2013 12:19:53 +0100 Subject: [PATCH] Fix PS3 build. --- src/host/buildvm_asm.c | 10 ++++++++-- src/lj_arch.h | 2 +- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/host/buildvm_asm.c b/src/host/buildvm_asm.c index 08264c8b..2f589aad 100644 --- a/src/host/buildvm_asm.c +++ b/src/host/buildvm_asm.c @@ -147,10 +147,12 @@ static void emit_asm_label(BuildCtx *ctx, const char *name, int size, int isfunc switch (ctx->mode) { case BUILD_elfasm: #if LJ_TARGET_PS3 - if (!strncmp(name, "lj_vm_", 6)) { + if (!strncmp(name, "lj_vm_", 6) && + strcmp(name, ctx->beginsym) && + !strstr(name, "hook")) { fprintf(ctx->fp, "\n\t.globl %s\n" - "\n\t.section \".opd\",\"aw\"\n" + "\t.section \".opd\",\"aw\"\n" "%s:\n" "\t.long .%s,.TOC.@tocbase32\n" "\t.size %s,8\n" @@ -215,7 +217,11 @@ void emit_asm(BuildCtx *ctx) fprintf(ctx->fp, "\t.text\n"); emit_asm_align(ctx, 4); +#if LJ_TARGET_PS3 + emit_asm_label(ctx, ctx->beginsym, ctx->codesz, 0); +#else emit_asm_label(ctx, ctx->beginsym, 0, 0); +#endif if (ctx->mode != BUILD_machasm) fprintf(ctx->fp, ".Lbegin:\n"); diff --git a/src/lj_arch.h b/src/lj_arch.h index f59b3447..960998ab 100644 --- a/src/lj_arch.h +++ b/src/lj_arch.h @@ -209,7 +209,7 @@ #else #define LJ_ARCH_VERSION 0 #endif -#if __PPC64__ || __powerpc64__ || LJ_TARGET_XBOX360 +#if __PPC64__ || __powerpc64__ || LJ_TARGET_CONSOLE #define LJ_ARCH_PPC64 1 #define LJ_ARCH_NOFFI 1 #endif