Alexandre Julliard : winebuild: Generate MS-style imports using the OriginalFirstThunk field.
Alexandre Julliard
julliard at winehq.org
Fri Sep 5 06:57:40 CDT 2008
Module: wine
Branch: master
Commit: 1abf80909981c9424b8bcc47ea363d02f585bf4f
URL: http://source.winehq.org/git/wine.git/?a=commit;h=1abf80909981c9424b8bcc47ea363d02f585bf4f
Author: Alexandre Julliard <julliard at winehq.org>
Date: Thu Sep 4 21:52:58 2008 +0200
winebuild: Generate MS-style imports using the OriginalFirstThunk field.
---
tools/winebuild/import.c | 12 ++++++++++--
1 files changed, 10 insertions(+), 2 deletions(-)
diff --git a/tools/winebuild/import.c b/tools/winebuild/import.c
index 5e0c172..4f6b5ba 100644
--- a/tools/winebuild/import.c
+++ b/tools/winebuild/import.c
@@ -746,7 +746,8 @@ static void output_immediate_imports(void)
{
if (dll_imports[i]->delay) continue;
dll_name = make_c_identifier( dll_imports[i]->spec->file_name );
- output( "\t.long 0\n" ); /* OriginalFirstThunk */
+ output( "\t.long .L__wine_spec_import_data_names+%d-.L__wine_spec_rva_base\n", /* OriginalFirstThunk */
+ j * get_ptr_size() );
output( "\t.long 0\n" ); /* TimeDateStamp */
output( "\t.long 0\n" ); /* ForwarderChain */
output( "\t.long .L__wine_spec_import_name_%s-.L__wine_spec_rva_base\n", /* Name */
@@ -762,7 +763,7 @@ static void output_immediate_imports(void)
output( "\t.long 0\n" ); /* FirstThunk */
output( "\n\t.align %d\n", get_alignment(get_ptr_size()) );
- output( ".L__wine_spec_import_data_ptrs:\n" );
+ output( ".L__wine_spec_import_data_names:\n" );
for (i = 0; i < nb_imports; i++)
{
if (dll_imports[i]->delay) continue;
@@ -783,6 +784,13 @@ static void output_immediate_imports(void)
}
output( "\t%s 0\n", get_asm_ptr_keyword() );
}
+ output( ".L__wine_spec_import_data_ptrs:\n" );
+ for (i = 0; i < nb_imports; i++)
+ {
+ if (dll_imports[i]->delay) continue;
+ for (j = 0; j < dll_imports[i]->nb_imports; j++) output( "\t%s 0\n", get_asm_ptr_keyword() );
+ output( "\t%s 0\n", get_asm_ptr_keyword() );
+ }
output( ".L__wine_spec_imports_end:\n" );
for (i = 0; i < nb_imports; i++)
More information about the wine-cvs
mailing list