Added support for APPMODE=<type>[:<mainFunc>]
Gregg Mattinson
gm138242 at scot.canada.sun.com
Tue Jul 2 15:06:56 CDT 2002
ChangeLog: dlls/Makedll.rules.in programs/Makeprog.rules.in
programs/expand/Makefile.in programs/expand/expand.c
programs/osversioncheck/Makefile.in
programs/osversioncheck/osversioncheck.c
programs/regsvr32/Makefile.in programs/regsvr32/regsvr32.c
programs/wcmd/Makefile.in programs/wcmd/wcmdmain.c
programs/winepath/Makefile.in programs/winepath/winepath.c
programs/winetest/Makefile.in programs/winetest/winetest.c
tools/winebuild/build.h tools/winebuild/import.c
tools/winebuild/main.c tools/winebuild/relay.c
tools/winebuild/spec16.c tools/winebuild/spec32.c
- .spec files can't be compiled with -g when using Forte C. This causes static
variables to have a "random" prefix attached to their name, and prevents the
assembly code from linking to them correctly.
- Forte C has linker issues, so cui executables with main() conflicted with
main() in $WINELOADER. Renaming main() to main2() solved the issue, so I added
support to winebuild to allow the main function name to be optionally specified
in the makefile.
- Forte C does not support .previous It was replaced with a .section statement
for the appropriate section
- '.section .text' is incorrect. It should be '.section ".text"'
Gregg Mattinson
Co-op Developer
Sun Microsystems of Canada
-------------- next part --------------
Index: dlls/Makedll.rules.in
===================================================================
RCS file: /opcom/comp/ws/wine/CVSROOT/wine/dlls/Makedll.rules.in,v
retrieving revision 1.1
diff -u -r1.1 Makedll.rules.in
--- /tmp/T0hga4IG Tue Jul 2 16:01:28 2002
+++ Makedll.rules.in Thu Jun 27 08:05:43 2002
@@ -27,6 +27,9 @@
$(MAINSPEC).c: $(MAINSPEC) $(RC_SRCS:.rc=.res) $(SYMBOLFILE) $(WINEBUILD)
$(LDPATH) $(WINEBUILD) $(DEFS) $(SYMBOLFILE:%=-sym %) -o $@ -spec $(SRCDIR)/$(MAINSPEC) $(RC_SRCS:%.rc=-res %.res) -L$(DLLDIR) $(DELAYIMPORTS:%=-dl%) $(IMPORTS:%=-l%)
+$(MAINSPEC).o: $(MAINSPEC).c
+ $(CC) -c -o $@ $(MAINSPEC).c
+
# Rules for .so files
$(MODULE).so: $(ALL_OBJS) Makefile.in
Index: programs/Makeprog.rules.in
===================================================================
RCS file: /opcom/comp/ws/wine/CVSROOT/wine/programs/Makeprog.rules.in,v
retrieving revision 1.1
diff -u -r1.1 Makeprog.rules.in
--- /tmp/T0OHaiSF Tue Jul 2 13:53:50 2002
+++ Makeprog.rules.in Thu Jun 27 09:57:43 2002
@@ -27,6 +27,9 @@
$(MODULE).spec.c: $(RC_SRCS:.rc=.res) $(SYMBOLFILE) $(WINEBUILD)
$(LDPATH) $(WINEBUILD) $(DEFS) $(SYMBOLFILE:%=-sym %) -o $@ -exe $(MODULE) $(APPMODE:%=-m%) $(RC_SRCS:%.rc=-res %.res) -L$(DLLDIR) $(DELAYIMPORTS:%=-dl%) $(IMPORTS:%=-l%)
+$(MODULE).spec.o: $(MODULE).spec.c
+ $(CC) -c -o $@ $(MODULE).spec.c
+
# Rules for .so main module
$(MODULE).so: $(MODULE).spec.o $(ALL_OBJS) Makefile.in
Index: programs/expand/Makefile.in
===================================================================
RCS file: /opcom/comp/ws/wine/CVSROOT/wine/programs/expand/Makefile.in,v
retrieving revision 1.1
diff -u -r1.1 Makefile.in
--- /tmp/T0AsaGSF Tue Jul 2 13:53:53 2002
+++ Makefile.in Fri Jun 28 09:43:52 2002
@@ -3,7 +3,7 @@
SRCDIR = @srcdir@
VPATH = @srcdir@
MODULE = expand.exe
-APPMODE = cui
+APPMODE = cui:main2
IMPORTS = lz32 kernel32
C_SRCS = expand.c
Index: programs/expand/expand.c
===================================================================
RCS file: /opcom/comp/ws/wine/CVSROOT/wine/programs/expand/expand.c,v
retrieving revision 1.1
diff -u -r1.1 expand.c
--- /tmp/T0vwa4SF Tue Jul 2 13:53:53 2002
+++ expand.c Fri Jun 28 09:43:59 2002
@@ -23,7 +23,7 @@
#include <windows.h>
#include <lzexpand.h>
-int main(int argc, char *argv[])
+int main2(int argc, char *argv[])
{
OFSTRUCT SourceOpenStruct1, SourceOpenStruct2;
DWORD dwreturn;
Index: programs/osversioncheck/Makefile.in
===================================================================
RCS file: /opcom/comp/ws/wine/CVSROOT/wine/programs/osversioncheck/Makefile.in,v
retrieving revision 1.1
diff -u -r1.1 Makefile.in
--- /tmp/T0JrayUF Tue Jul 2 13:53:57 2002
+++ Makefile.in Fri Jun 28 09:44:10 2002
@@ -3,7 +3,7 @@
SRCDIR = @srcdir@
VPATH = @srcdir@
MODULE = osversioncheck.exe
-APPMODE = cui
+APPMODE = cui:main2
IMPORTS = kernel32
C_SRCS = osversioncheck.c
Index: programs/osversioncheck/osversioncheck.c
===================================================================
RCS file: /opcom/comp/ws/wine/CVSROOT/wine/programs/osversioncheck/osversioncheck.c,v
retrieving revision 1.1
diff -u -r1.1 osversioncheck.c
--- /tmp/T0RwaWUF Tue Jul 2 13:53:57 2002
+++ osversioncheck.c Fri Jun 28 09:44:21 2002
@@ -54,7 +54,7 @@
}
int
-main(int argc, char ** argv)
+main2(int argc, char ** argv)
{
BOOL result;
Index: programs/regsvr32/Makefile.in
===================================================================
RCS file: /opcom/comp/ws/wine/CVSROOT/wine/programs/regsvr32/Makefile.in,v
retrieving revision 1.1
diff -u -r1.1 Makefile.in
--- /tmp/T0nRaGVF Tue Jul 2 13:54:03 2002
+++ Makefile.in Fri Jun 28 09:43:23 2002
@@ -4,7 +4,7 @@
SRCDIR = @srcdir@
VPATH = @srcdir@
MODULE = regsvr32.exe
-APPMODE = cui
+APPMODE = cui:main2
IMPORTS = msvcrt kernel32
C_SRCS = \
Index: programs/regsvr32/regsvr32.c
===================================================================
RCS file: /opcom/comp/ws/wine/CVSROOT/wine/programs/regsvr32/regsvr32.c,v
retrieving revision 1.1
diff -u -r1.1 regsvr32.c
--- /tmp/T0PXa4VF Tue Jul 2 13:54:03 2002
+++ regsvr32.c Fri Jun 28 09:43:32 2002
@@ -160,7 +160,7 @@
return 0;
}
-int main(int argc, char* argv[])
+int main2(int argc, char* argv[])
{
int i;
BOOL CallRegister = TRUE;
Index: programs/wcmd/Makefile.in
===================================================================
RCS file: /opcom/comp/ws/wine/CVSROOT/wine/programs/wcmd/Makefile.in,v
retrieving revision 1.1
diff -u -r1.1 Makefile.in
--- /tmp/T0HwaOWF Tue Jul 2 13:54:05 2002
+++ Makefile.in Fri Jun 28 09:44:35 2002
@@ -3,7 +3,7 @@
SRCDIR = @srcdir@
VPATH = @srcdir@
MODULE = wcmd.exe
-APPMODE = cui
+APPMODE = cui:main2
IMPORTS = shell32 user32 kernel32
C_SRCS = \
Index: programs/wcmd/wcmdmain.c
===================================================================
RCS file: /opcom/comp/ws/wine/CVSROOT/wine/programs/wcmd/wcmdmain.c,v
retrieving revision 1.1
diff -u -r1.1 wcmdmain.c
--- /tmp/T0uPaiXF Tue Jul 2 13:54:07 2002
+++ wcmdmain.c Fri Jun 28 09:44:47 2002
@@ -47,7 +47,7 @@
* winmain().
*/
-int main (int argc, char *argv[]) {
+int main2 (int argc, char *argv[]) {
char string[1024], args[MAX_PATH], param[MAX_PATH];
int status, i;
Index: programs/winepath/Makefile.in
===================================================================
RCS file: /opcom/comp/ws/wine/CVSROOT/wine/programs/winepath/Makefile.in,v
retrieving revision 1.1
diff -u -r1.1 Makefile.in
--- /tmp/T01faOYF Tue Jul 2 13:54:13 2002
+++ Makefile.in Fri Jun 28 09:44:58 2002
@@ -3,7 +3,7 @@
SRCDIR = @srcdir@
VPATH = @srcdir@
MODULE = winepath.exe
-APPMODE = cui
+APPMODE = cui:main2
IMPORTS = kernel32
C_SRCS = winepath.c
Index: programs/winepath/winepath.c
===================================================================
RCS file: /opcom/comp/ws/wine/CVSROOT/wine/programs/winepath/winepath.c,v
retrieving revision 1.1
diff -u -r1.1 winepath.c
--- /tmp/T0fnaaZF Tue Jul 2 13:54:13 2002
+++ winepath.c Fri Jun 28 09:45:06 2002
@@ -126,7 +126,7 @@
/*
* Main function
*/
-int main(int argc, char *argv[])
+int main2(int argc, char *argv[])
{
wine_get_unix_file_name_t wine_get_unix_file_name_ptr = NULL;
static char path[MAX_PATH];
Index: programs/winetest/Makefile.in
===================================================================
RCS file: /opcom/comp/ws/wine/CVSROOT/wine/programs/winetest/Makefile.in,v
retrieving revision 1.1
diff -u -r1.1 Makefile.in
--- /tmp/T0zyaGZF Tue Jul 2 13:54:14 2002
+++ Makefile.in Fri Jun 28 09:45:17 2002
@@ -7,7 +7,7 @@
SRCDIR = @srcdir@
VPATH = @srcdir@
MODULE = winetest.exe
-APPMODE = cui
+APPMODE = cui:main2
IMPORTS = kernel32
C_SRCS = winetest.c
Index: programs/winetest/winetest.c
===================================================================
RCS file: /opcom/comp/ws/wine/CVSROOT/wine/programs/winetest/winetest.c,v
retrieving revision 1.1
diff -u -r1.1 winetest.c
--- /tmp/T0cXay0F Tue Jul 2 13:54:15 2002
+++ winetest.c Fri Jun 28 09:45:47 2002
@@ -159,7 +159,7 @@
}
/* main function */
-int main( int argc, char **argv, char **envp )
+int main2( int argc, char **argv, char **envp )
{
PerlInterpreter *perl;
int status;
Index: tools/winebuild/build.h
===================================================================
RCS file: /opcom/comp/ws/wine/CVSROOT/wine/tools/winebuild/build.h,v
retrieving revision 1.1
diff -u -r1.1 build.h
--- /tmp/T0EOaq4F Tue Jul 2 13:54:48 2002
+++ build.h Thu Jun 27 11:08:02 2002
@@ -43,6 +43,12 @@
# define STRING ".ascii"
#endif
+#ifdef __SUNPRO_C
+# define SHORT ".half"
+#else
+# define SHORT ".short"
+#endif
+
typedef enum
{
TYPE_VARIABLE, /* variable */
Index: tools/winebuild/import.c
===================================================================
RCS file: /opcom/comp/ws/wine/CVSROOT/wine/tools/winebuild/import.c,v
retrieving revision 1.1
diff -u -r1.1 import.c
--- /tmp/T0mAaOqG Tue Jul 2 15:08:30 2002
+++ import.c Tue Jul 2 15:04:55 2002
@@ -532,7 +532,7 @@
}
pos += 4;
}
- fprintf( outfile, "\".previous\");\n#ifndef __GNUC__\n}\n#endif\n\n" );
+ fprintf( outfile, "\".section\t\\\".text\\\"\");\n#ifndef __GNUC__\n}\n#endif\n\n" );
done:
return nb_imm;
@@ -738,7 +738,7 @@
fprintf( outfile, "\"\n" );
}
}
- fprintf( outfile, "\".previous\");\n" );
+ fprintf( outfile, "\".section \\\".text\\\"\");\n" );
fprintf( outfile, "#ifndef __GNUC__\n" );
fprintf( outfile, "}\n" );
fprintf( outfile, "#endif\n" );
Index: tools/winebuild/main.c
===================================================================
RCS file: /opcom/comp/ws/wine/CVSROOT/wine/tools/winebuild/main.c,v
retrieving revision 1.1
diff -u -r1.1 main.c
--- /tmp/T0i.aa5F Tue Jul 2 13:54:49 2002
+++ main.c Fri Jun 28 09:49:30 2002
@@ -118,6 +118,7 @@
static void do_f_flags( const char *arg );
static void do_define( const char *arg );
static void do_include( const char *arg );
+static void do_k_flags( const char *arg );
static void do_exe_mode( const char *arg );
static void do_spec( const char *arg );
static void do_def( const char *arg );
@@ -141,6 +142,7 @@
{ "-f", 1, do_f_flags, "-f flags Compiler flags (only -fPIC is supported)" },
{ "-D", 1, do_define, "-D sym Ignored for C flags compatibility" },
{ "-I", 1, do_include, "-I dir Ignored for C flags compatibility" },
+ { "-K", 1, do_k_flags, "-K flags Compiler flags (only -KPIC is supported)" },
{ "-m", 1, do_exe_mode,"-m mode Set the executable mode (cui|gui|cuiw|guiw)" },
{ "-L", 1, do_lib, "-L directory Look for imports libraries in 'directory'" },
{ "-l", 1, do_import, "-l lib.dll Import the specified library" },
@@ -205,6 +207,13 @@
/* nothing */
}
+static void do_k_flags( const char *arg )
+{
+ /* Ignored, because cc generates correct code. */
+ /* if (!strcmp( arg, "PIC" )) UsePIC = 1; */
+ /* ignore all other flags */
+}
+
static void do_spec( const char *arg )
{
if (exec_mode != MODE_NONE || !arg[0]) do_usage();
@@ -235,6 +244,13 @@
static void do_exe_mode( const char *arg )
{
+ char *pFunc = strchr(arg, ':');
+
+ if (pFunc) {
+ *pFunc++ = 0;
+ init_func = pFunc;
+ }
+
if (!strcmp( arg, "gui" )) SpecMode = SPEC_MODE_GUIEXE;
else if (!strcmp( arg, "cui" )) SpecMode = SPEC_MODE_CUIEXE;
else if (!strcmp( arg, "guiw" )) SpecMode = SPEC_MODE_GUIEXE_UNICODE;
Index: tools/winebuild/relay.c
===================================================================
RCS file: /opcom/comp/ws/wine/CVSROOT/wine/tools/winebuild/relay.c,v
retrieving revision 1.1
diff -u -r1.1 relay.c
--- /tmp/T0ymay5F Tue Jul 2 13:54:50 2002
+++ relay.c Mon Jun 24 13:48:58 2002
@@ -28,7 +28,6 @@
#include <ctype.h>
#include "thread.h"
-#include "stackframe.h"
#include "build.h"
Index: tools/winebuild/spec16.c
===================================================================
RCS file: /opcom/comp/ws/wine/CVSROOT/wine/tools/winebuild/spec16.c,v
retrieving revision 1.1
diff -u -r1.1 spec16.c
--- /tmp/T0CAaW5F Tue Jul 2 13:54:51 2002
+++ spec16.c Tue Jun 25 15:15:56 2002
@@ -28,11 +28,9 @@
#include <assert.h>
#include <ctype.h>
-#include "wine/exception.h"
#include "wine/library.h"
#include "builtin16.h"
#include "module.h"
-#include "stackframe.h"
#include "build.h"
@@ -584,7 +582,7 @@
fprintf( outfile, " const void *info[15];\n" );
fprintf( outfile, " } rec;\n\n" );
fprintf( outfile, " extern void __stdcall RtlRaiseException( struct exc_record * );\n\n" );
- fprintf( outfile, " rec.code = 0x%08x;\n", EXCEPTION_WINE_STUB );
+ fprintf( outfile, " rec.code = 0x%08x;\n", 0x80000100 );
fprintf( outfile, " rec.flags = %d;\n", EH_NONCONTINUABLE );
fprintf( outfile, " rec.rec = 0;\n" );
fprintf( outfile, " rec.params = 2;\n" );
@@ -706,7 +704,9 @@
/* Output code segment */
+#ifndef __SUNPRO_C
fprintf( outfile, "\n#include \"pshpack1.h\"\n" );
+#endif
fprintf( outfile, "\nstatic struct code_segment\n{\n" );
fprintf( outfile, " struct {\n" );
#ifdef __i386__
@@ -856,8 +856,9 @@
res_size = output_res16_data( outfile );
/* Output the DLL descriptor */
-
+#ifndef __SUNPRO_C
fprintf( outfile, "#include \"poppack.h\"\n\n" );
+#endif
fprintf( outfile, "static const struct dll_descriptor\n{\n" );
fprintf( outfile, " unsigned char *module_start;\n" );
@@ -887,11 +888,11 @@
make_c_identifier(DLLName) );
fprintf( outfile, " \"\\t.previous\\n\");\n" );
#elif defined(__sparc__)
- fprintf( outfile, "asm(\"\\t.section\t.init ,\\\"ax\\\"\\n\"\n" );
+ fprintf( outfile, "asm(\"\\t.section\t\\\".init\\\" ,\\\"ax\\\"\\n\"\n" );
fprintf( outfile, " \"\\tcall " PREFIX "__wine_spec_%s_init\\n\"\n",
make_c_identifier(DLLName) );
fprintf( outfile, " \"\\tnop\\n\"\n" );
- fprintf( outfile, " \"\\t.previous\\n\");\n" );
+ fprintf( outfile, " \"\\t.section\t\\\".text\\\"\\n\");\n" );
#elif defined(__PPC__)
fprintf( outfile, "asm(\"\\t.section\t.init ,\\\"ax\\\"\\n\"\n" );
fprintf( outfile, " \"\\tbl " PREFIX "__wine_spec_%s_init\\n\"\n",
Index: tools/winebuild/spec32.c
===================================================================
RCS file: /opcom/comp/ws/wine/CVSROOT/wine/tools/winebuild/spec32.c,v
retrieving revision 1.1
diff -u -r1.1 spec32.c
--- /tmp/T0ZtaisG Tue Jul 2 15:12:44 2002
+++ spec32.c Tue Jul 2 15:11:17 2002
@@ -30,7 +30,6 @@
#include <string.h>
#include "winbase.h"
-#include "wine/exception.h"
#include "build.h"
@@ -208,10 +207,14 @@
/* output the function names */
- fprintf( outfile, " \"\\t.text 1\\n\"\n" );
+ fprintf( outfile, " \"\\t.text\\n\"\n" );
fprintf( outfile, " \"__wine_spec_exp_names:\\n\"\n" );
for (i = 0; i < nb_names; i++)
+#ifdef __SUNPRO_C
+ fprintf( outfile, " \"\\t" STRING " \\\"%s\\\\0\\\"\\n\"\n", Names[i]->name );
+#else
fprintf( outfile, " \"\\t" STRING " \\\"%s\\\"\\n\"\n", Names[i]->name );
+#endif
fprintf( outfile, " \"\\t.data\\n\"\n" );
/* output the function ordinals */
@@ -219,12 +222,12 @@
fprintf( outfile, " \"__wine_spec_exp_ordinals:\\n\"\n" );
for (i = 0; i < nb_names; i++)
{
- fprintf( outfile, " \"\\t.short %d\\n\"\n", Names[i]->ordinal - Base );
+ fprintf( outfile, " \"\\t" SHORT " %d\\n\"\n", Names[i]->ordinal - Base );
}
total_size += nb_names * sizeof(short);
if (nb_names % 2)
{
- fprintf( outfile, " \"\\t.short 0\\n\"\n" );
+ fprintf( outfile, " \"\\t" SHORT " 0\\n\"\n" );
total_size += sizeof(short);
}
}
@@ -238,7 +241,11 @@
{
ORDDEF *odp = Ordinals[i];
if (odp && odp->type == TYPE_FORWARD)
+#ifdef __SUNPRO_C
+ fprintf( outfile, " \"\\t" STRING " \\\"%s\\\\0\\\"\\n\"\n", odp->link_name );
+#else
fprintf( outfile, " \"\\t" STRING " \\\"%s\\\"\\n\"\n", odp->link_name );
+#endif
}
fprintf( outfile, " \"\\t.align %d\\n\"\n", get_alignment(4) );
total_size += (fwd_size + 3) & ~3;
@@ -286,7 +293,7 @@
case TYPE_CDECL:
fprintf( outfile, " \"\\tjmp " PREFIX "%s\\n\"\n", name );
fprintf( outfile, " \"\\tret\\n\"\n" );
- fprintf( outfile, " \"\\t.short 0x%04x\\n\"\n", args );
+ fprintf( outfile, " \"\\t" SHORT " 0x%04x\\n\"\n", args );
fprintf( outfile, " \"\\t.long " PREFIX "%s,0x%08x\\n\"\n", name, mask );
break;
default:
@@ -335,6 +342,8 @@
}
}
+ fprintf( outfile, " \"\\t.text\\n\"\n" );
+ fprintf( outfile, " \"\\t.align 4\\n\"\n" );
fprintf( outfile, ");\n\n" );
return total_size;
@@ -366,7 +375,7 @@
fprintf( outfile, "extern void __stdcall RtlRaiseException( struct exc_record * );\n\n" );
fprintf( outfile, "static void __wine_unimplemented( const char *func )\n{\n" );
fprintf( outfile, " struct exc_record rec;\n" );
- fprintf( outfile, " rec.code = 0x%08x;\n", EXCEPTION_WINE_STUB );
+ fprintf( outfile, " rec.code = 0x%08x;\n", 0x80000100 );
fprintf( outfile, " rec.flags = %d;\n", EH_NONCONTINUABLE );
fprintf( outfile, " rec.rec = 0;\n" );
fprintf( outfile, " rec.params = 2;\n" );
@@ -460,9 +469,18 @@
/* Reserve some space for the PE header */
fprintf( outfile, "extern char pe_header[];\n" );
- fprintf( outfile, "asm(\".section .text\\n\\t\"\n" );
+
+ fprintf( outfile, "#ifndef __GNUC__\n" );
+ fprintf( outfile, "static void __asm__dummy_header(void) {\n" );
+ fprintf( outfile, "#endif /* !defined(__GNUC__) */\n" );
+
+ fprintf( outfile, "asm(\".section \\\".text\\\"\\n\\t\"\n" );
fprintf( outfile, " \".align %d\\n\"\n", get_alignment(page_size) );
- fprintf( outfile, " \"" PREFIX "pe_header:\\t.fill %ld,1,0\\n\\t\");\n", page_size );
+ fprintf( outfile, " \"" PREFIX "pe_header:\\t.skip %ld\\n\\t\");\n", page_size );
+
+ fprintf( outfile, "#ifndef __GNUC__\n" );
+ fprintf( outfile, "}\n" );
+ fprintf( outfile, "#endif /* !defined(__GNUC__) */\n" );
fprintf( outfile, "static const char dllname[] = \"%s\";\n\n", DLLName );
fprintf( outfile, "extern int __wine_spec_exports[];\n\n" );
@@ -722,11 +740,11 @@
make_c_identifier(DLLName) );
fprintf( outfile, " \"\\t.previous\\n\");\n" );
#elif defined(__sparc__)
- fprintf( outfile, "asm(\"\\t.section\t.init ,\\\"ax\\\"\\n\"\n" );
+ fprintf( outfile, "asm(\"\\t.section\t\\\".init\\\" ,\\\"ax\\\"\\n\"\n" );
fprintf( outfile, " \"\\tcall " PREFIX "__wine_spec_%s_init\\n\"\n",
make_c_identifier(DLLName) );
fprintf( outfile, " \"\\tnop\\n\"\n" );
- fprintf( outfile, " \"\\t.previous\\n\");\n" );
+ fprintf( outfile, " \"\\t.text\\n\");\n" );
#elif defined(__PPC__)
fprintf( outfile, "asm(\"\\t.section\t.init ,\\\"ax\\\"\\n\"\n" );
fprintf( outfile, " \"\\tbl " PREFIX "__wine_spec_%s_init\\n\"\n",
@@ -861,14 +879,13 @@
fprintf( outfile, " \"\\tcall " PREFIX "__wine_dbg_%s_fini\\n\"\n", prefix );
fprintf( outfile, " \"\\t.previous\\n\");\n" );
#elif defined(__sparc__)
- fprintf( outfile, "asm(\"\\t.section\t.init ,\\\"ax\\\"\\n\"\n" );
+ fprintf( outfile, "asm(\"\\t.section\t\\\".init\\\" ,\\\"ax\\\"\\n\"\n" );
fprintf( outfile, " \"\\tcall " PREFIX "__wine_dbg_%s_init\\n\"\n", prefix );
- fprintf( outfile, " \"\\tnop\\n\"\n" );
- fprintf( outfile, " \"\\t.previous\\n\");\n" );
- fprintf( outfile, "asm(\"\\t.section\t.fini ,\\\"ax\\\"\\n\"\n" );
+ fprintf( outfile, " \"\\tnop\\n\");\n" );
+ fprintf( outfile, "asm(\"\\t.section\t\\\".fini\\\" ,\\\"ax\\\"\\n\"\n" );
fprintf( outfile, " \"\\tcall " PREFIX "__wine_dbg_%s_fini\\n\"\n", prefix );
fprintf( outfile, " \"\\tnop\\n\"\n" );
- fprintf( outfile, " \"\\t.previous\\n\");\n" );
+ fprintf( outfile, " \"\\t.section\t\\\".text\\\"\\n\");\n" );
#elif defined(__PPC__)
fprintf( outfile, "asm(\"\\t.section\t.init ,\\\"ax\\\"\\n\"\n" );
fprintf( outfile, " \"\\tbl " PREFIX "__wine_dbg_%s_init\\n\"\n", prefix );
More information about the wine-patches
mailing list