[Mplayer-cvslog] CVS: main mplayer_wine.spec.c,NONE,1.1 mplayer_wine.spec,NONE,1.1 Makefile,1.228,1.229

Arpi of Ize arpi at mplayerhq.hu
Fri Nov 1 00:37:41 CET 2002


Update of /cvsroot/mplayer/main
In directory mail:/var/tmp.root/cvs-serv16331

Modified Files:
	Makefile 
Added Files:
	mplayer_wine.spec.c mplayer_wine.spec 
Log Message:
including source and precompiled .spec for libwine support


--- NEW FILE ---
/* File generated automatically from mplayer_wine.spec; do not edit! */
/* This file can be copied, modified and distributed without restriction. */

extern char pe_header[];
asm(".section .text\n\t"
    ".align 4096\n"
    "pe_header:\t.fill 4096,1,0\n\t");
static const char dllname[] = "mplayer_wine";

extern int __wine_spec_exports[];

#define __stdcall __attribute__((__stdcall__))


static struct {
  struct {
    void        *OriginalFirstThunk;
    unsigned int TimeDateStamp;
    unsigned int ForwarderChain;
    const char  *Name;
    void        *FirstThunk;
  } imp[3];
  const char *data[8];
} imports = {
  {
    { 0, 0, 0, "kernel32.dll", &imports.data[0] },
    { 0, 0, 0, "ntdll.dll", &imports.data[5] },
    { 0, 0, 0, 0, 0 },
  },
  {
    /* kernel32.dll */
    "\0\0ExitProcess",
    "\0\0FreeLibrary",
    "\0\0GetProcAddress",
    "\0\0LoadLibraryA",
    0,
    /* ntdll.dll */
    "\0\0RtlRaiseException",
    "\0\0__wine_get_main_args",
    0,
  }
};

#ifndef __GNUC__
static void __asm__dummy_import(void) {
#endif

asm(".data\n\t.align 8\n"
    "\t.type ExitProcess, at function\n"
    "\t.globl ExitProcess\n"
    "ExitProcess:\n\tjmp *(imports+60)\n\tmovl %esi,%esi\n"
    "\t.type FreeLibrary, at function\n"
    "\t.globl FreeLibrary\n"
    "FreeLibrary:\n\tjmp *(imports+64)\n\tmovl %esi,%esi\n"
    "\t.type GetProcAddress, at function\n"
    "\t.globl GetProcAddress\n"
    "GetProcAddress:\n\tjmp *(imports+68)\n\tmovl %esi,%esi\n"
    "\t.type LoadLibraryA, at function\n"
    "\t.globl LoadLibraryA\n"
    "LoadLibraryA:\n\tjmp *(imports+72)\n\tmovl %esi,%esi\n"
    "\t.type RtlRaiseException, at function\n"
    "\t.globl RtlRaiseException\n"
    "RtlRaiseException:\n\tjmp *(imports+80)\n\tmovl %esi,%esi\n"
    "\t.type __wine_get_main_args, at function\n"
    "\t.globl __wine_get_main_args\n"
    "__wine_get_main_args:\n\tjmp *(imports+84)\n\tmovl %esi,%esi\n"
".previous");
#ifndef __GNUC__
}
#endif


int _ARGC;
char **_ARGV;
extern void __stdcall ExitProcess(int);
static void __wine_exe_main(void)
{
    extern int main( int argc, char *argv[] );
    extern int __wine_get_main_args( char ***argv );
    _ARGC = __wine_get_main_args( &_ARGV );
    ExitProcess( main( _ARGC, _ARGV ) );
}

static const struct image_nt_headers
{
  int Signature;
  struct file_header {
    short Machine;
    short NumberOfSections;
    int   TimeDateStamp;
    void *PointerToSymbolTable;
    int   NumberOfSymbols;
    short SizeOfOptionalHeader;
    short Characteristics;
  } FileHeader;
  struct opt_header {
    short Magic;
    char  MajorLinkerVersion, MinorLinkerVersion;
    int   SizeOfCode;
    int   SizeOfInitializedData;
    int   SizeOfUninitializedData;
    void *AddressOfEntryPoint;
    void *BaseOfCode;
    void *BaseOfData;
    void *ImageBase;
    int   SectionAlignment;
    int   FileAlignment;
    short MajorOperatingSystemVersion;
    short MinorOperatingSystemVersion;
    short MajorImageVersion;
    short MinorImageVersion;
    short MajorSubsystemVersion;
    short MinorSubsystemVersion;
    int   Win32VersionValue;
    int   SizeOfImage;
    int   SizeOfHeaders;
    int   CheckSum;
    short Subsystem;
    short DllCharacteristics;
    int   SizeOfStackReserve;
    int   SizeOfStackCommit;
    int   SizeOfHeapReserve;
    int   SizeOfHeapCommit;
    int   LoaderFlags;
    int   NumberOfRvaAndSizes;
    struct { const void *VirtualAddress; int Size; } DataDirectory[16];
  } OptionalHeader;
} nt_header = {
  0x4550,
  { 0x014c,
    0, 0, 0, 0,
    sizeof(nt_header.OptionalHeader),
    0x0000 },
  { 0x010b,
    0, 0,
    0, 0, 0,
    __wine_exe_main,
    0, 0,
    pe_header,
    4096,
    4096,
    1, 0,
    0, 0,
    4, 0,
    0,
    4096,
    4096,
    0,
    0x0003,
    0,
    0, 0,
    0, 0,
    0,
    16,
    {
      { 0, 0 },
      { &imports, sizeof(imports) },
      { 0, 0 },
    }
  }
};

#ifndef __GNUC__
static void __asm__dummy_dll_init(void) {
#endif /* defined(__GNUC__) */
asm("\t.section	.init ,\"ax\"\n"
    "\tcall __wine_spec_mplayer_wine_init\n"
    "\t.previous\n");
#ifndef __GNUC__
}
#endif /* defined(__GNUC__) */

void __wine_spec_mplayer_wine_init(void)
{
    extern void __wine_dll_register( const struct image_nt_headers *, const char * );
    extern void *__wine_dbg_register( char * const *, int );
    __wine_dll_register( &nt_header, "mplayer_wine.exe" );
}

--- NEW FILE ---
name	mplayer_wine
mode	cuiexe
type	win32

import	kernel32.dll
import	ntdll.dll

Index: Makefile
===================================================================
RCS file: /cvsroot/mplayer/main/Makefile,v
retrieving revision 1.228
retrieving revision 1.229
diff -u -r1.228 -r1.229
--- Makefile	31 Oct 2002 23:26:35 -0000	1.228
+++ Makefile	31 Oct 2002 23:37:38 -0000	1.229
@@ -190,7 +190,7 @@
 
 mplayer_wine.so:	$(MPLAYER_DEP)
 	./darwinfixlib.sh $(MPLAYER_DEP)
-	$(CC) $(CFLAGS) -shared -Wl,-Bsymbolic -o mplayer_wine.so mplayer_wine.spec.o $(OBJS_MPLAYER) libvo/libvo.a libao2/libao2.a $(VIDIX_LIBS) $(GUI_LIBS) $(COMMON_LIBS) $(GTK_LIBS) $(VO_LIBS) $(AO_LIBS) $(EXTRA_LIB) $(LIRC_LIB) $(STATIC_LIB) -lwine $(ARCH_LIB) -lm
+	$(CC) $(CFLAGS) -shared -Wl,-Bsymbolic -o mplayer_wine.so mplayer_wine.spec.c $(OBJS_MPLAYER) libvo/libvo.a libao2/libao2.a $(VIDIX_LIBS) $(GUI_LIBS) $(COMMON_LIBS) $(GTK_LIBS) $(VO_LIBS) $(AO_LIBS) $(EXTRA_LIB) $(LIRC_LIB) $(STATIC_LIB) -lwine $(ARCH_LIB) -lm
 
 $(PRG_FIBMAP): fibmap_mplayer.o
 	$(CC) -o $(PRG_FIBMAP) fibmap_mplayer.o




More information about the MPlayer-cvslog mailing list