Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-cw
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-cw
Commits
10e4a55b
Commit
10e4a55b
authored
Jan 16, 2010
by
Alexandre Julliard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
winebuild: Output the asm relay functions as needed and get rid of --relay32 mode.
parent
102dd9e9
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
18 additions
and
44 deletions
+18
-44
Makefile.in
dlls/ntdll/Makefile.in
+0
-5
build.h
tools/winebuild/build.h
+3
-1
import.c
tools/winebuild/import.c
+6
-2
main.c
tools/winebuild/main.c
+0
-11
relay.c
tools/winebuild/relay.c
+8
-21
spec32.c
tools/winebuild/spec32.c
+1
-0
winebuild.man.in
tools/winebuild/winebuild.man.in
+0
-4
No files found.
dlls/ntdll/Makefile.in
View file @
10e4a55b
...
...
@@ -56,11 +56,6 @@ C_SRCS = \
RC_SRCS
=
version.rc
EXTRA_OBJS
=
relay32.o
@MAKE_DLL_RULES@
relay32.o
:
$(WINEBUILD)
$(WINEBUILD)
$(WINEBUILDFLAGS)
-o
$@
--relay32
@DEPENDENCIES@
# everything below this line is overwritten by make depend
tools/winebuild/build.h
View file @
10e4a55b
...
...
@@ -244,7 +244,8 @@ extern void add_delayed_import( const char *name );
extern
void
add_ignore_symbol
(
const
char
*
name
);
extern
void
add_extra_ld_symbol
(
const
char
*
name
);
extern
void
read_undef_symbols
(
DLLSPEC
*
spec
,
char
**
argv
);
extern
int
resolve_imports
(
DLLSPEC
*
spec
);
extern
void
resolve_imports
(
DLLSPEC
*
spec
);
extern
int
is_undefined
(
const
char
*
name
);
extern
int
has_imports
(
void
);
extern
int
has_relays
(
DLLSPEC
*
spec
);
extern
void
output_get_pc_thunk
(
void
);
...
...
@@ -266,6 +267,7 @@ extern void output_bin_res16_directory( DLLSPEC *spec, unsigned int data_offset
extern
void
output_spec16_file
(
DLLSPEC
*
spec
);
extern
void
output_fake_module16
(
DLLSPEC
*
spec16
);
extern
void
output_res_o_file
(
DLLSPEC
*
spec
);
extern
void
output_asm_relays
(
void
);
extern
void
BuildRelays16
(
void
);
extern
void
BuildRelays32
(
void
);
...
...
tools/winebuild/import.c
View file @
10e4a55b
...
...
@@ -585,7 +585,7 @@ void read_undef_symbols( DLLSPEC *spec, char **argv )
}
/* resolve the imports for a Win32 module */
int
resolve_imports
(
DLLSPEC
*
spec
)
void
resolve_imports
(
DLLSPEC
*
spec
)
{
int
i
;
unsigned
int
j
,
removed
;
...
...
@@ -628,8 +628,12 @@ int resolve_imports( DLLSPEC *spec )
sort_names
(
&
undef_symbols
);
check_undefined_exports
(
spec
);
}
return
1
;
/* check if symbol is still undefined */
int
is_undefined
(
const
char
*
name
)
{
return
find_name
(
name
,
&
undef_symbols
)
!=
NULL
;
}
/* output the get_pc thunk if needed */
...
...
tools/winebuild/main.c
View file @
10e4a55b
...
...
@@ -102,7 +102,6 @@ enum exec_mode_values
MODE_DEF
,
MODE_IMPLIB
,
MODE_RELAY16
,
MODE_RELAY32
,
MODE_RESOURCES
};
...
...
@@ -271,7 +270,6 @@ static const char usage_str[] =
" --exe Build a .c file for an executable
\n
"
" --implib Build an import library
\n
"
" --relay16 Build the 16-bit relay assembly routines
\n
"
" --relay32 Build the 32-bit relay assembly routines
\n
"
" --resources Build a .o file for the resource files
\n\n
"
"The mode options are mutually exclusive; you must specify one and only one.
\n\n
"
;
...
...
@@ -289,7 +287,6 @@ enum long_options_values
LONG_OPT_NMCMD
,
LONG_OPT_NXCOMPAT
,
LONG_OPT_RELAY16
,
LONG_OPT_RELAY32
,
LONG_OPT_RESOURCES
,
LONG_OPT_SAVE_TEMPS
,
LONG_OPT_SUBSYSTEM
,
...
...
@@ -312,7 +309,6 @@ static const struct option long_options[] =
{
"nm-cmd"
,
1
,
0
,
LONG_OPT_NMCMD
},
{
"nxcompat"
,
1
,
0
,
LONG_OPT_NXCOMPAT
},
{
"relay16"
,
0
,
0
,
LONG_OPT_RELAY16
},
{
"relay32"
,
0
,
0
,
LONG_OPT_RELAY32
},
{
"resources"
,
0
,
0
,
LONG_OPT_RESOURCES
},
{
"save-temps"
,
0
,
0
,
LONG_OPT_SAVE_TEMPS
},
{
"subsystem"
,
1
,
0
,
LONG_OPT_SUBSYSTEM
},
...
...
@@ -507,9 +503,6 @@ static char **parse_options( int argc, char **argv, DLLSPEC *spec )
case
LONG_OPT_RELAY16
:
set_exec_mode
(
MODE_RELAY16
);
break
;
case
LONG_OPT_RELAY32
:
set_exec_mode
(
MODE_RELAY32
);
break
;
case
LONG_OPT_RESOURCES
:
set_exec_mode
(
MODE_RESOURCES
);
break
;
...
...
@@ -671,10 +664,6 @@ int main(int argc, char **argv)
if
(
argv
[
0
])
fatal_error
(
"file argument '%s' not allowed in this mode
\n
"
,
argv
[
0
]
);
BuildRelays16
();
break
;
case
MODE_RELAY32
:
if
(
argv
[
0
])
fatal_error
(
"file argument '%s' not allowed in this mode
\n
"
,
argv
[
0
]
);
BuildRelays32
();
break
;
case
MODE_RESOURCES
:
load_resources
(
argv
,
spec
);
output_res_o_file
(
spec
);
...
...
tools/winebuild/relay.c
View file @
10e4a55b
...
...
@@ -721,7 +721,7 @@ static void BuildCallTo32CBClient( int isEx )
/*******************************************************************
*
BuildCallFrom32Regs
*
build_call_from_regs_x86
*
* Build a 32-bit-to-Wine call-back function for a 'register' function.
* 'args' is the number of dword arguments.
...
...
@@ -746,7 +746,7 @@ static void BuildCallTo32CBClient( int isEx )
* pointer on return (with the return address and arguments already
* removed).
*/
static
void
BuildCallFrom32Regs
(
void
)
static
void
build_call_from_regs_x86
(
void
)
{
static
const
int
STACK_SPACE
=
128
+
0x2cc
/* sizeof(CONTEXT86) */
;
...
...
@@ -962,7 +962,7 @@ void BuildRelays16(void)
output
(
"
\t
.text
\n
"
);
output
(
"%s:
\n\n
"
,
asm_name
(
"__wine_spec_thunk_text_32"
)
);
BuildCallFrom32Regs
();
build_call_from_regs_x86
();
output_function_size
(
"__wine_spec_thunk_text_32"
);
output_gnu_stack_note
();
...
...
@@ -1150,34 +1150,21 @@ static void build_call_from_regs_x86_64(void)
/*******************************************************************
*
BuildRelays32
*
output_asm_relays
*
* Build all the
32-bit
relay callbacks
* Build all the
assembly
relay callbacks
*/
void
BuildRelays32
(
void
)
void
output_asm_relays
(
void
)
{
switch
(
target_cpu
)
{
case
CPU_x86
:
output
(
"/* File generated automatically. Do not edit! */
\n\n
"
);
output
(
"
\t
.text
\n
"
);
output
(
"%s:
\n\n
"
,
asm_name
(
"__wine_spec_thunk_text_32"
)
);
/* 32-bit register entry point */
BuildCallFrom32Regs
();
output_function_size
(
"__wine_spec_thunk_text_32"
);
output_gnu_stack_note
();
build_call_from_regs_x86
();
break
;
case
CPU_x86_64
:
output
(
"/* File generated automatically. Do not edit! */
\n\n
"
);
build_call_from_regs_x86_64
();
output_gnu_stack_note
();
break
;
default:
output
(
"/* File not used with this architecture. Do not edit! */
\n\n
"
);
return
;
break
;
}
}
tools/winebuild/spec32.c
View file @
10e4a55b
...
...
@@ -554,6 +554,7 @@ void BuildSpec32File( DLLSPEC *spec )
output_stubs
(
spec
);
output_exports
(
spec
);
output_imports
(
spec
);
if
(
is_undefined
(
"__wine_call_from_regs"
))
output_asm_relays
();
output_resources
(
spec
);
output_gnu_stack_note
();
}
...
...
tools/winebuild/winebuild.man.in
View file @
10e4a55b
...
...
@@ -54,10 +54,6 @@ specified via the -E option.
Generate the assembly code for the 16-bit relay routines. This is for
Wine internal usage only, you should never need to use this option.
.TP
.B \--relay32
Generate the assembly code for the 32-bit relay routines. This is for
Wine internal usage only, you should never need to use this option.
.TP
.B \--resources
Generate a .o file containing all the input resources. This is useful
when building with a PE compiler, since the PE binutils cannot handle
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment