=?UTF-8?Q?Andr=C3=A9=20Hentschel=20?=: winebuild: Put the PE header into the text section on ARM.

Alexandre Julliard julliard at winehq.org
Mon Jun 25 13:24:11 CDT 2012


Module: wine
Branch: master
Commit: e7730053f3c859b53df277386105967044a7848d
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=e7730053f3c859b53df277386105967044a7848d

Author: André Hentschel <nerv at dawncrow.de>
Date:   Mon Jun 25 00:20:50 2012 +0200

winebuild: Put the PE header into the text section on ARM.

---

 tools/winebuild/spec32.c |   14 ++++++++------
 1 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/tools/winebuild/spec32.c b/tools/winebuild/spec32.c
index 7743acc..3dff304 100644
--- a/tools/winebuild/spec32.c
+++ b/tools/winebuild/spec32.c
@@ -403,22 +403,24 @@ static void output_asm_constructor( const char *constructor )
     }
     else
     {
-        output( "\n\t.section \".init\",\"ax\"\n" );
         switch(target_cpu)
         {
         case CPU_x86:
         case CPU_x86_64:
+            output( "\n\t.section \".init\",\"ax\"\n" );
             output( "\tcall %s\n", asm_name(constructor) );
             break;
         case CPU_SPARC:
+            output( "\n\t.section \".init\",\"ax\"\n" );
             output( "\tcall %s\n", asm_name(constructor) );
             output( "\tnop\n" );
             break;
         case CPU_ARM:
+            output( "\n\t.section \".text\",\"ax\"\n" );
             output( "\tblx %s\n", asm_name(constructor) );
-            output( "\t.arm\n" );
             break;
         case CPU_POWERPC:
+            output( "\n\t.section \".init\",\"ax\"\n" );
             output( "\tbl %s\n", asm_name(constructor) );
             break;
         }
@@ -452,20 +454,20 @@ void output_module( DLLSPEC *spec )
         output( "\t.skip %u\n", 65536 + page_size );
         break;
     default:
-        output( "\n\t.section \".init\",\"ax\"\n" );
         switch(target_cpu)
         {
         case CPU_x86:
         case CPU_x86_64:
         case CPU_SPARC:
+            output( "\n\t.section \".init\",\"ax\"\n" );
             output( "\tjmp 1f\n" );
             break;
         case CPU_ARM:
-            output( "\n\t.syntax unified\n" );
-            output( "\n\t.thumb\n" );
-            output( "\tb.w 1f\n" );
+            output( "\n\t.section \".text\",\"ax\"\n" );
+            output( "\tb 1f\n" );
             break;
         case CPU_POWERPC:
+            output( "\n\t.section \".init\",\"ax\"\n" );
             output( "\tb 1f\n" );
             break;
         }




More information about the wine-cvs mailing list