Date: Sun, 5 Jul 2009 17:14:48 +0200 (CEST) From: Romain Tartiere <mono@FreeBSD.org> To: FreeBSD-gnats-submit@FreeBSD.org Subject: ports/136350: [maintainer-update] lang/mono version 2.4 to 2.4.2 Message-ID: <20090705151448.348A95C2EA@marvin.blogreen.org> Resent-Message-ID: <200907051520.n65FK3Lt035580@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 136350 >Category: ports >Synopsis: [maintainer-update] lang/mono version 2.4 to 2.4.2 >Confidential: no >Severity: non-critical >Priority: medium >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: maintainer-update >Submitter-Id: current-users >Arrival-Date: Sun Jul 05 15:20:03 UTC 2009 >Closed-Date: >Last-Modified: >Originator: Romain Tartiere >Release: FreeBSD 7.2-STABLE i386 >Organization: >Environment: System: FreeBSD marvin.blogreen.org 7.2-STABLE FreeBSD 7.2-STABLE #5 r194822M: Wed Jun 24 14:10:46 CEST 2009 root@marvin.blogreen.org:/usr/obj/usr/src/sys/MARVIN i386 >Description: The update to the 2.4.2 release makes patch-mono_mini_mini-x86.c useless (applied upstream). >How-To-Repeat: >Fix: --- mono.diff begins here --- diff -ruN /var/cache/portshaker/freebsd/lang/mono/Makefile /tmp/mono/Makefile --- /var/cache/portshaker/freebsd/lang/mono/Makefile 2009-06-22 09:55:46.000000000 +0200 +++ /tmp/mono/Makefile 2009-07-04 23:25:55.672516000 +0200 @@ -7,7 +7,7 @@ # PORTNAME= mono -PORTVERSION= 2.4 +PORTVERSION= 2.4.2 CATEGORIES= lang MASTER_SITES= http://ftp.novell.com/pub/mono/sources/${PORTNAME}/ diff -ruN /var/cache/portshaker/freebsd/lang/mono/distinfo /tmp/mono/distinfo --- /var/cache/portshaker/freebsd/lang/mono/distinfo 2009-06-22 09:55:46.000000000 +0200 +++ /tmp/mono/distinfo 2009-07-04 23:25:55.672516000 +0200 @@ -1,3 +1,3 @@ -MD5 (mono-2.4.tar.bz2) = da2bf1c0aba2958d26c5e8a9a49fd9d1 -SHA256 (mono-2.4.tar.bz2) = 653544a91374102bf473458a09f1e779955083b6d86682f171ab58a8446511c7 -SIZE (mono-2.4.tar.bz2) = 24861051 +MD5 (mono-2.4.2.tar.bz2) = f086227f3cd4cecb5c1fe0f566760f81 +SHA256 (mono-2.4.2.tar.bz2) = 994324e776af7b77c9feab5cd98eb28bffbf182cf07a17b282e7ec8e181904d1 +SIZE (mono-2.4.2.tar.bz2) = 24759918 diff -ruN /var/cache/portshaker/freebsd/lang/mono/files/patch-mono_mini_mini-x86.c /tmp/mono/files/patch-mono_mini_mini-x86.c --- /var/cache/portshaker/freebsd/lang/mono/files/patch-mono_mini_mini-x86.c 2009-06-22 09:55:47.000000000 +0200 +++ /tmp/mono/files/patch-mono_mini_mini-x86.c 1970-01-01 01:00:00.000000000 +0100 @@ -1,76 +0,0 @@ - -$FreeBSD: ports/lang/mono/files/patch-mono_mini_mini-x86.c,v 1.3 2009/06/22 07:55:47 flz Exp $ - ---- mono/mini/mini-x86.c.orig -+++ mono/mini/mini-x86.c -@@ -1068,26 +1068,15 @@ - } - - if (sig->ret && MONO_TYPE_ISSTRUCT (sig->ret)) { -- MonoInst *vtarg; -- - if (cinfo->ret.storage == ArgValuetypeInReg) { -- if (cinfo->ret.pair_storage [0] == ArgInIReg && cinfo->ret.pair_storage [1] == ArgNone) { - /* - * Tell the JIT to use a more efficient calling convention: call using - * OP_CALL, compute the result location after the call, and save the - * result there. - */ - call->vret_in_reg = TRUE; -- } else { -- /* -- * The valuetype is in EAX:EDX after the call, needs to be copied to -- * the stack. Save the address here, so the call instruction can -- * access it. -- */ -- MONO_INST_NEW (cfg, vtarg, OP_X86_PUSH); -- vtarg->sreg1 = call->vret_var->dreg; -- MONO_ADD_INS (cfg->cbb, vtarg); -- } -+ if (call->vret_var) -+ NULLIFY_INS (call->vret_var); - } - } - -@@ -1802,9 +1791,6 @@ - static guint8* - emit_move_return_value (MonoCompile *cfg, MonoInst *ins, guint8 *code) - { -- CallInfo *cinfo; -- int quad; -- - /* Move return value to the target register */ - switch (ins->opcode) { - case OP_CALL: -@@ -1813,31 +1799,6 @@ - if (ins->dreg != X86_EAX) - x86_mov_reg_reg (code, ins->dreg, X86_EAX, 4); - break; -- case OP_VCALL: -- case OP_VCALL_REG: -- case OP_VCALL_MEMBASE: -- case OP_VCALL2: -- case OP_VCALL2_REG: -- case OP_VCALL2_MEMBASE: -- cinfo = get_call_info (cfg->generic_sharing_context, cfg->mempool, ((MonoCallInst*)ins)->signature, FALSE); -- if (cinfo->ret.storage == ArgValuetypeInReg) { -- /* Pop the destination address from the stack */ -- x86_pop_reg (code, X86_ECX); -- -- for (quad = 0; quad < 2; quad ++) { -- switch (cinfo->ret.pair_storage [quad]) { -- case ArgInIReg: -- g_assert (cinfo->ret.pair_regs [quad] != X86_ECX); -- x86_mov_membase_reg (code, X86_ECX, (quad * sizeof (gpointer)), cinfo->ret.pair_regs [quad], sizeof (gpointer)); -- break; -- case ArgNone: -- break; -- default: -- g_assert_not_reached (); -- } -- } -- } -- break; - case OP_FCALL: { - MonoCallInst *call = (MonoCallInst*)ins; - if (call->method && !mono_method_signature (call->method)->ret->byref && mono_method_signature (call->method)->ret->type == MONO_TYPE_R4) { --- mono.diff ends here --- >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20090705151448.348A95C2EA>