Commit 6306a173 authored by Alexandre Julliard's avatar Alexandre Julliard

winebuild: Add support for excluding a specific CPU architecture.

parent bd7ba264
......@@ -470,7 +470,7 @@ static int parse_spec_extern( ORDDEF *odp, DLLSPEC *spec )
*/
static const char *parse_spec_flags( DLLSPEC *spec, ORDDEF *odp )
{
unsigned int i;
unsigned int i, cpu_mask = 0;
const char *token;
do
......@@ -493,13 +493,14 @@ static const char *parse_spec_flags( DLLSPEC *spec, ORDDEF *odp )
odp->flags |= FLAG_CPU_WIN64;
else
{
int cpu = get_cpu_from_name( cpu_name );
int cpu = get_cpu_from_name( cpu_name + (cpu_name[0] == '!') );
if (cpu == -1)
{
error( "Unknown architecture '%s'\n", cpu_name );
return NULL;
}
odp->flags |= FLAG_CPU( cpu );
if (cpu_name[0] == '!') cpu_mask |= FLAG_CPU( cpu );
else odp->flags |= FLAG_CPU( cpu );
}
cpu_name = strtok( NULL, "," );
}
......@@ -537,6 +538,7 @@ static const char *parse_spec_flags( DLLSPEC *spec, ORDDEF *odp )
token = GetToken(0);
} while (token && *token == '-');
if (cpu_mask) odp->flags |= FLAG_CPU_MASK & ~cpu_mask;
return token;
}
......
......@@ -326,13 +326,14 @@ of a
specification when an application expects to find the function's
implementation inside the dll.
.TP
.RE
.BI -arch= cpu\fR[\fB,\fIcpu\fR]
.B -arch=\fR[\fB!\fR]\fIcpu\fR[\fB,\fIcpu\fR]
The entry point is only available on the specified CPU
architecture(s). The names \fBwin32\fR and \fBwin64\fR match all
32-bit or 64-bit CPU architectures respectively. In 16-bit dlls,
specifying \fB-arch=win32\fR causes the entry point to be exported
from the 32-bit wrapper module.
from the 32-bit wrapper module. A CPU name can be prefixed with
\fB!\fR to exclude only that specific architecture.
.RE
.SS "Function ordinals"
Syntax:
.br
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment