From: Mike slavo5150@yahoo.com
--- tools/winebuild/spec32.c | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-)
diff --git a/tools/winebuild/spec32.c b/tools/winebuild/spec32.c index fb2ce884e28..cf33e9a47e4 100644 --- a/tools/winebuild/spec32.c +++ b/tools/winebuild/spec32.c @@ -98,6 +98,7 @@ static int has_relays( struct exports *exports ) { int i;
+ if (target.cpu == CPU_ARM64) return 0; if (target.cpu == CPU_ARM64EC) return 0;
for (i = exports->base; i <= exports->limit; i++) @@ -762,10 +763,32 @@ void output_module( DLLSPEC *spec ) break; default: output( "\n\t.section ".init","ax"\n" ); - output( "\tjmp 1f\n" ); + switch (target.cpu) + { + case CPU_i386: + case CPU_x86_64: + output( "\tjmp 1f\n" ); + break; + case CPU_ARM: + case CPU_ARM64: + case CPU_ARM64EC: + output( "\tb .L1\n" ); + break; + } output( "__wine_spec_pe_header:\n" ); output( "\t.skip %u\n", 65536 + page_size ); - output( "1:\n" ); + switch (target.cpu) + { + case CPU_i386: + case CPU_x86_64: + output( "1:\n" ); + break; + case CPU_ARM: + case CPU_ARM64: + case CPU_ARM64EC: + output( ".L1:\n" ); + break; + } break; }