Commit 72e1c643 authored by Alexandre Julliard's avatar Alexandre Julliard

Added list of symbols to ignore by default in winebuild.

Made the -i option support removing ignored symbols too. Removed the -noimport flag in spec files.
parent 93f85cba
......@@ -51,22 +51,22 @@
@ cdecl ?terminate@@YAXXZ() MSVCRT_terminate
@ cdecl ?unexpected@@YAXXZ() MSVCRT_unexpected
@ cdecl ?what@exception@@UBEPBDXZ(ptr) MSVCRT_what_exception
@ cdecl -noimport _CIacos() _CIacos
@ cdecl -noimport _CIasin() _CIasin
@ cdecl -noimport _CIatan() _CIatan
@ cdecl -noimport _CIatan2() _CIatan2
@ cdecl -noimport _CIcos() _CIcos
@ cdecl -noimport _CIcosh() _CIcosh
@ cdecl -noimport _CIexp() _CIexp
@ cdecl -noimport _CIfmod() _CIfmod
@ cdecl -noimport _CIlog() _CIlog
@ cdecl -noimport _CIlog10() _CIlog10
@ cdecl -noimport _CIpow() _CIpow
@ cdecl -noimport _CIsin() _CIsin
@ cdecl -noimport _CIsinh() _CIsinh
@ cdecl -noimport _CIsqrt() _CIsqrt
@ cdecl -noimport _CItan() _CItan
@ cdecl -noimport _CItanh() _CItanh
@ cdecl _CIacos() _CIacos
@ cdecl _CIasin() _CIasin
@ cdecl _CIatan() _CIatan
@ cdecl _CIatan2() _CIatan2
@ cdecl _CIcos() _CIcos
@ cdecl _CIcosh() _CIcosh
@ cdecl _CIexp() _CIexp
@ cdecl _CIfmod() _CIfmod
@ cdecl _CIlog() _CIlog
@ cdecl _CIlog10() _CIlog10
@ cdecl _CIpow() _CIpow
@ cdecl _CIsin() _CIsin
@ cdecl _CIsinh() _CIsinh
@ cdecl _CIsqrt() _CIsqrt
@ cdecl _CItan() _CItan
@ cdecl _CItanh() _CItanh
@ cdecl _CxxThrowException(long long) _CxxThrowException
@ cdecl -i386 -norelay _EH_prolog() _EH_prolog
@ cdecl _Getdays() _Getdays
......@@ -77,9 +77,9 @@
@ cdecl _XcptFilter(long ptr) _XcptFilter
@ cdecl -register -i386 __CxxFrameHandler(ptr ptr ptr ptr) __CxxFrameHandler
@ stub __CxxLongjmpUnwind
@ cdecl -noimport __RTCastToVoid(ptr) MSVCRT___RTCastToVoid
@ cdecl -noimport __RTDynamicCast(ptr long ptr ptr long) MSVCRT___RTDynamicCast
@ cdecl -noimport __RTtypeid(ptr) MSVCRT___RTtypeid
@ cdecl __RTCastToVoid(ptr) MSVCRT___RTCastToVoid
@ cdecl __RTDynamicCast(ptr long ptr ptr long) MSVCRT___RTDynamicCast
@ cdecl __RTtypeid(ptr) MSVCRT___RTtypeid
@ stub __STRINGTOLD
@ extern __argc MSVCRT___argc
@ extern __argv MSVCRT___argv
......@@ -177,7 +177,7 @@
@ cdecl _chdir(str) _chdir
@ cdecl _chdrive(long) _chdrive
@ cdecl _chgsign( double ) _chgsign
@ cdecl -noimport -i386 _chkesp() _chkesp
@ cdecl -i386 _chkesp() _chkesp
@ cdecl _chmod(str long) _chmod
@ stub _chsize #(long long)
@ cdecl _clearfp() _clearfp
......@@ -426,8 +426,8 @@
@ stub _set_error_mode #(long)
@ stub _set_sbh_threshold #(long)
@ stub _seterrormode #(long)
@ cdecl -register -noimport -i386 _setjmp(ptr) _MSVCRT__setjmp
@ cdecl -register -noimport -i386 _setjmp3(ptr long) _MSVCRT__setjmp3
@ cdecl -register -i386 _setjmp(ptr) _MSVCRT__setjmp
@ cdecl -register -i386 _setjmp3(ptr long) _MSVCRT__setjmp3
@ stub _setmaxstdio #(long)
@ cdecl _setmbcp(long) _setmbcp
@ cdecl _setmode(long long) _setmode
......@@ -568,29 +568,29 @@
@ cdecl _y1(double) _y1
@ cdecl _yn(long double ) _yn
@ cdecl abort() MSVCRT_abort
@ cdecl -noimport abs(long) abs
@ cdecl -noimport acos(double) acos
@ cdecl -noimport asctime(ptr) asctime
@ cdecl -noimport asin(double) asin
@ cdecl -noimport atan(double) atan
@ cdecl -noimport atan2(double double) atan2
@ cdecl abs(long) abs
@ cdecl acos(double) acos
@ cdecl asctime(ptr) asctime
@ cdecl asin(double) asin
@ cdecl atan(double) atan
@ cdecl atan2(double double) atan2
@ cdecl atexit(ptr) MSVCRT_atexit
@ cdecl -noimport atof(str) atof
@ cdecl -noimport atoi(str) atoi
@ cdecl -noimport atol(str) atol
@ cdecl -noimport bsearch(ptr ptr long long ptr) bsearch
@ cdecl atof(str) atof
@ cdecl atoi(str) atoi
@ cdecl atol(str) atol
@ cdecl bsearch(ptr ptr long long ptr) bsearch
@ cdecl calloc(long long) MSVCRT_calloc
@ cdecl -noimport ceil(double) ceil
@ cdecl ceil(double) ceil
@ cdecl clearerr(ptr) MSVCRT_clearerr
@ cdecl clock() MSVCRT_clock
@ cdecl -noimport cos(double) cos
@ cdecl -noimport cosh(double) cosh
@ cdecl -noimport ctime(ptr) ctime
@ cdecl cos(double) cos
@ cdecl cosh(double) cosh
@ cdecl ctime(ptr) ctime
@ cdecl difftime(long long) MSVCRT_difftime
@ cdecl -noimport div(long long) MSVCRT_div
@ cdecl div(long long) MSVCRT_div
@ cdecl exit(long) MSVCRT_exit
@ cdecl -noimport exp(double) exp
@ cdecl -noimport fabs(double) fabs
@ cdecl exp(double) exp
@ cdecl fabs(double) fabs
@ cdecl fclose(ptr) MSVCRT_fclose
@ cdecl feof(ptr) MSVCRT_feof
@ cdecl ferror(ptr) MSVCRT_ferror
......@@ -600,8 +600,8 @@
@ cdecl fgets(ptr long ptr) MSVCRT_fgets
@ cdecl fgetwc(ptr) MSVCRT_fgetwc
@ cdecl fgetws(ptr long ptr) MSVCRT_fgetws
@ cdecl -noimport floor(double) floor
@ cdecl -noimport fmod(double double) fmod
@ cdecl floor(double) floor
@ cdecl fmod(double double) fmod
@ cdecl fopen(str str) MSVCRT_fopen
@ varargs fprintf(ptr str) MSVCRT_fprintf
@ cdecl fputc(long ptr) MSVCRT_fputc
......@@ -611,7 +611,7 @@
@ cdecl fread(ptr long long ptr) MSVCRT_fread
@ cdecl free(ptr) MSVCRT_free
@ cdecl freopen(str str ptr) MSVCRT_freopen
@ cdecl -noimport frexp(double ptr) frexp
@ cdecl frexp(double ptr) frexp
@ varargs fscanf(ptr str) MSVCRT_fscanf
@ cdecl fseek(ptr long long) MSVCRT_fseek
@ cdecl fsetpos(ptr ptr) MSVCRT_fsetpos
......@@ -625,7 +625,7 @@
@ cdecl gets(str) MSVCRT_gets
@ cdecl getwc(ptr) MSVCRT_getwc
@ cdecl getwchar() MSVCRT_getwchar
@ cdecl -noimport gmtime(ptr) gmtime
@ cdecl gmtime(ptr) gmtime
@ forward is_wctype ntdll.iswctype
@ cdecl isalnum(long) MSVCRT_isalnum
@ cdecl isalpha(long) MSVCRT_isalpha
......@@ -652,34 +652,34 @@
@ cdecl iswupper(long) MSVCRT_iswupper
@ cdecl iswxdigit(long) MSVCRT_iswxdigit
@ cdecl isxdigit(long) MSVCRT_isxdigit
@ cdecl -noimport labs(long) labs
@ cdecl labs(long) labs
@ cdecl ldexp( double long) MSVCRT_ldexp
@ cdecl -noimport ldiv(long long) MSVCRT_ldiv
@ cdecl ldiv(long long) MSVCRT_ldiv
@ stub localeconv #()
@ cdecl -noimport localtime(ptr) localtime
@ cdecl -noimport log(double) log
@ cdecl -noimport log10(double) log10
@ cdecl -register -noimport -i386 longjmp(ptr long) _MSVCRT_longjmp
@ cdecl localtime(ptr) localtime
@ cdecl log(double) log
@ cdecl log10(double) log10
@ cdecl -register -i386 longjmp(ptr long) _MSVCRT_longjmp
@ cdecl malloc(long) MSVCRT_malloc
@ cdecl mblen(ptr long) MSVCRT_mblen
@ forward -noimport mbstowcs ntdll.mbstowcs
@ forward mbstowcs ntdll.mbstowcs
@ cdecl mbtowc(wstr str long) MSVCRT_mbtowc
@ cdecl -noimport memchr(ptr long long) memchr
@ cdecl -noimport memcmp(ptr ptr long) memcmp
@ cdecl -noimport memcpy(ptr ptr long) memcpy
@ cdecl -noimport memmove(ptr ptr long) memmove
@ cdecl -noimport memset(ptr long long) memset
@ cdecl memchr(ptr long long) memchr
@ cdecl memcmp(ptr ptr long) memcmp
@ cdecl memcpy(ptr ptr long) memcpy
@ cdecl memmove(ptr ptr long) memmove
@ cdecl memset(ptr long long) memset
@ cdecl mktime(ptr) MSVCRT_mktime
@ cdecl -noimport modf(double ptr) modf
@ cdecl modf(double ptr) modf
@ cdecl perror(str) MSVCRT_perror
@ cdecl -noimport pow(double double) pow
@ cdecl pow(double double) pow
@ varargs printf(str) MSVCRT_printf
@ cdecl putc(long ptr) MSVCRT_putc
@ cdecl putchar(long) MSVCRT_putchar
@ cdecl puts(str) MSVCRT_puts
@ cdecl putwc(long ptr) MSVCRT_fputwc
@ cdecl putwchar(long) _fputwchar
@ cdecl -noimport qsort(ptr long long ptr) qsort
@ cdecl qsort(ptr long long ptr) qsort
@ stub raise #(long)
@ cdecl rand() MSVCRT_rand
@ cdecl realloc(ptr long) MSVCRT_realloc
......@@ -691,43 +691,43 @@
@ cdecl setlocale(long str) MSVCRT_setlocale
@ cdecl setvbuf(ptr str long long) MSVCRT_setvbuf
@ cdecl signal(long long) MSVCRT_signal
@ cdecl -noimport sin(double) sin
@ cdecl -noimport sinh(double) sinh
@ cdecl sin(double) sin
@ cdecl sinh(double) sinh
@ varargs sprintf(ptr str) sprintf
@ cdecl -noimport sqrt(double) sqrt
@ cdecl -noimport srand(long) srand
@ cdecl sqrt(double) sqrt
@ cdecl srand(long) srand
@ varargs sscanf(str str) MSVCRT_sscanf
@ cdecl -noimport strcat(str str) strcat
@ cdecl -noimport strchr(str long) strchr
@ cdecl -noimport strcmp(str str) strcmp
@ cdecl -noimport strcoll(str str) strcoll
@ cdecl -noimport strcpy(ptr str) strcpy
@ cdecl -noimport strcspn(str str) strcspn
@ cdecl strcat(str str) strcat
@ cdecl strchr(str long) strchr
@ cdecl strcmp(str str) strcmp
@ cdecl strcoll(str str) strcoll
@ cdecl strcpy(ptr str) strcpy
@ cdecl strcspn(str str) strcspn
@ cdecl strerror(long) MSVCRT_strerror
@ cdecl -noimport strftime(str long str ptr) strftime
@ cdecl -noimport strlen(str) strlen
@ cdecl -noimport strncat(str str long) strncat
@ cdecl -noimport strncmp(str str long) strncmp
@ cdecl -noimport strncpy(ptr str long) strncpy
@ cdecl -noimport strpbrk(str str) strpbrk
@ cdecl -noimport strrchr(str long) strrchr
@ cdecl -noimport strspn(str str) strspn
@ cdecl -noimport strstr(str str) strstr
@ cdecl -noimport strtod(str ptr) strtod
@ cdecl -noimport strtok(str str) strtok
@ cdecl -noimport strtol(str ptr long) strtol
@ cdecl -noimport strtoul(str ptr long) strtoul
@ cdecl -noimport strxfrm(ptr str long) strxfrm
@ cdecl strftime(str long str ptr) strftime
@ cdecl strlen(str) strlen
@ cdecl strncat(str str long) strncat
@ cdecl strncmp(str str long) strncmp
@ cdecl strncpy(ptr str long) strncpy
@ cdecl strpbrk(str str) strpbrk
@ cdecl strrchr(str long) strrchr
@ cdecl strspn(str str) strspn
@ cdecl strstr(str str) strstr
@ cdecl strtod(str ptr) strtod
@ cdecl strtok(str str) strtok
@ cdecl strtol(str ptr long) strtol
@ cdecl strtoul(str ptr long) strtoul
@ cdecl strxfrm(ptr str long) strxfrm
@ forward swprintf ntdll.swprintf
@ varargs swscanf(wstr wstr) MSVCRT_swscanf
@ cdecl system(str) MSVCRT_system
@ cdecl -noimport tan(double) tan
@ cdecl -noimport tanh(double) tanh
@ cdecl tan(double) tan
@ cdecl tanh(double) tanh
@ cdecl time(ptr) MSVCRT_time
@ cdecl tmpfile() MSVCRT_tmpfile
@ cdecl tmpnam(str) MSVCRT_tmpnam
@ cdecl -noimport tolower(long) tolower
@ cdecl -noimport toupper(long) toupper
@ cdecl tolower(long) tolower
@ cdecl toupper(long) toupper
@ forward towlower ntdll.towlower
@ forward towupper ntdll.towupper
@ cdecl ungetc(long ptr) MSVCRT_ungetc
......
......@@ -914,14 +914,14 @@
@ cdecl _wcsupr(wstr) NTDLL__wcsupr
@ cdecl _wtoi(wstr) NTDLL__wtoi
@ cdecl _wtol(wstr) NTDLL__wtol
@ cdecl -noimport abs(long) abs
@ cdecl -noimport atan(double) atan
@ cdecl -noimport atoi(str) atoi
@ cdecl -noimport atol(str) atol
@ cdecl -noimport ceil(double) ceil
@ cdecl -noimport cos(double) cos
@ cdecl -noimport fabs(double) fabs
@ cdecl -noimport floor(double) floor
@ cdecl abs(long) abs
@ cdecl atan(double) atan
@ cdecl atoi(str) atoi
@ cdecl atol(str) atol
@ cdecl ceil(double) ceil
@ cdecl cos(double) cos
@ cdecl fabs(double) fabs
@ cdecl floor(double) floor
@ cdecl isalpha(long) isalpha
@ cdecl isdigit(long) isdigit
@ cdecl islower(long) islower
......@@ -931,42 +931,42 @@
@ cdecl iswalpha(long) NTDLL_iswalpha
@ cdecl iswctype(long long) NTDLL_iswctype
@ cdecl isxdigit(long) isxdigit
@ cdecl -noimport labs(long) labs
@ cdecl -noimport log(double) log
@ cdecl labs(long) labs
@ cdecl log(double) log
@ cdecl mbstowcs(ptr str long) NTDLL_mbstowcs
@ cdecl -noimport memchr(ptr long long) memchr
@ cdecl -noimport memcmp(ptr ptr long) memcmp
@ cdecl -noimport memcpy(ptr ptr long) memcpy
@ cdecl -noimport memmove(ptr ptr long) memmove
@ cdecl -noimport memset(ptr long long) memset
@ cdecl -noimport pow(double double) pow
@ cdecl -noimport qsort(ptr long long ptr) qsort
@ cdecl -noimport sin(double) sin
@ varargs -noimport sprintf(str str) sprintf
@ cdecl -noimport sqrt(double) sqrt
@ varargs -noimport sscanf(str str) sscanf
@ cdecl -noimport strcat(str str) strcat
@ cdecl -noimport strchr(str long) strchr
@ cdecl -noimport strcmp(str str) strcmp
@ cdecl -noimport strcpy(ptr str) strcpy
@ cdecl -noimport strcspn(str str) strcspn
@ cdecl -noimport strlen(str) strlen
@ cdecl -noimport strncat(str str long) strncat
@ cdecl -noimport strncmp(str str long) strncmp
@ cdecl -noimport strncpy(ptr str long) strncpy
@ cdecl -noimport strpbrk(str str) strpbrk
@ cdecl -noimport strrchr(str long) strrchr
@ cdecl -noimport strspn(str str) strspn
@ cdecl -noimport strstr(str str) strstr
@ cdecl -noimport strtol(str ptr long) strtol
@ cdecl -noimport strtoul(str ptr long) strtoul
@ cdecl memchr(ptr long long) memchr
@ cdecl memcmp(ptr ptr long) memcmp
@ cdecl memcpy(ptr ptr long) memcpy
@ cdecl memmove(ptr ptr long) memmove
@ cdecl memset(ptr long long) memset
@ cdecl pow(double double) pow
@ cdecl qsort(ptr long long ptr) qsort
@ cdecl sin(double) sin
@ varargs sprintf(str str) sprintf
@ cdecl sqrt(double) sqrt
@ varargs sscanf(str str) sscanf
@ cdecl strcat(str str) strcat
@ cdecl strchr(str long) strchr
@ cdecl strcmp(str str) strcmp
@ cdecl strcpy(ptr str) strcpy
@ cdecl strcspn(str str) strcspn
@ cdecl strlen(str) strlen
@ cdecl strncat(str str long) strncat
@ cdecl strncmp(str str long) strncmp
@ cdecl strncpy(ptr str long) strncpy
@ cdecl strpbrk(str str) strpbrk
@ cdecl strrchr(str long) strrchr
@ cdecl strspn(str str) strspn
@ cdecl strstr(str str) strstr
@ cdecl strtol(str ptr long) strtol
@ cdecl strtoul(str ptr long) strtoul
@ varargs swprintf(wstr wstr) NTDLL_swprintf
@ cdecl -noimport tan(double) tan
@ cdecl tan(double) tan
@ cdecl tolower(long) tolower
@ cdecl toupper(long) toupper
@ cdecl towlower(long) NTDLL_towlower
@ cdecl towupper(long) NTDLL_towupper
@ cdecl -noimport vsprintf(ptr str ptr) vsprintf
@ cdecl vsprintf(ptr str ptr) vsprintf
@ cdecl wcscat(wstr wstr) NTDLL_wcscat
@ cdecl wcschr(wstr long) NTDLL_wcschr
@ cdecl wcscmp(wstr wstr) NTDLL_wcscmp
......
......@@ -58,7 +58,7 @@
54 stdcall getprotobynumber(long) WS_getprotobynumber
55 stdcall getservbyname(str str) WS_getservbyname
56 stdcall getservbyport(long str) WS_getservbyport
57 stdcall -noimport gethostname(ptr long) WS_gethostname
57 stdcall gethostname(ptr long) WS_gethostname
58 stub WSAJoinLeaf
59 stub WSALookupServiceBeginA
60 stub WSALookupServiceBeginW
......
......@@ -27,7 +27,7 @@
54 forward getprotobynumber ws2_32.getprotobynumber
55 forward getservbyname ws2_32.getservbyname
56 forward getservbyport ws2_32.getservbyport
57 forward -noimport gethostname ws2_32.gethostname
57 forward gethostname ws2_32.gethostname
101 forward WSAAsyncSelect ws2_32.WSAAsyncSelect
102 forward WSAAsyncGetHostByAddr ws2_32.WSAAsyncGetHostByAddr
103 forward WSAAsyncGetHostByName ws2_32.WSAAsyncGetHostByName
......
......@@ -103,13 +103,12 @@ typedef struct
} ORDDEF;
/* entry point flags */
#define FLAG_NOIMPORT 0x01 /* don't make function available for importing */
#define FLAG_NORELAY 0x02 /* don't use relay debugging for this function */
#define FLAG_NONAME 0x04 /* don't import function by name */
#define FLAG_RET64 0x08 /* function returns a 64-bit value */
#define FLAG_I386 0x10 /* function is i386 only */
#define FLAG_REGISTER 0x20 /* use register calling convention */
#define FLAG_INTERRUPT 0x40 /* function is an interrupt handler */
#define FLAG_NORELAY 0x01 /* don't use relay debugging for this function */
#define FLAG_NONAME 0x02 /* don't import function by name */
#define FLAG_RET64 0x04 /* function returns a 64-bit value */
#define FLAG_I386 0x08 /* function is i386 only */
#define FLAG_REGISTER 0x10 /* use register calling convention */
#define FLAG_INTERRUPT 0x20 /* function is an interrupt handler */
/* Offset of a structure field relative to the start of the struct */
#define STRUCTOFFSET(type,field) ((int)&((type *)0)->field)
......
......@@ -65,6 +65,62 @@ static int nb_delayed = 0; /* number of delayed dlls */
static int total_imports = 0; /* total number of imported functions */
static int total_delayed = 0; /* total number of imported functions in delayed DLLs */
/* list of symbols that are ignored by default */
static const char * const default_ignored_symbols[] =
{
"abs",
"acos",
"asin",
"atan",
"atan2",
"atof",
"atoi",
"atol",
"bsearch",
"ceil",
"cos",
"cosh",
"div",
"exp",
"fabs",
"floor",
"fmod",
"frexp",
"labs",
"ldiv",
"log",
"log10",
"memchr",
"memcmp",
"memcpy",
"memmove",
"memset",
"modf",
"pow",
"qsort",
"sin",
"sinh",
"sprintf",
"sqrt",
"sscanf",
"strcat",
"strchr",
"strcmp",
"strcpy",
"strcspn",
"strlen",
"strncat",
"strncmp",
"strncpy",
"strpbrk",
"strrchr",
"strspn",
"strstr",
"tan",
"tanh",
"vsprintf"
};
/* compare function names; helper for resolve_imports */
static int name_cmp( const void *name, const void *entry )
{
......@@ -239,15 +295,55 @@ void add_import_dll( const char *name, int delay )
dll_imports[nb_imports++] = imp;
}
/* Add a symbol to the ignored symbol list */
/* initialize the list of ignored symbols */
static void init_ignored_symbols(void)
{
int i;
nb_ignore_symbols = sizeof(default_ignored_symbols)/sizeof(default_ignored_symbols[0]);
ignore_size = nb_ignore_symbols + 32;
ignore_symbols = xmalloc( ignore_size * sizeof(*ignore_symbols) );
for (i = 0; i < nb_ignore_symbols; i++)
ignore_symbols[i] = xstrdup( default_ignored_symbols[i] );
}
/* add a symbol to the ignored symbol list */
/* if the name starts with '-' the symbol is removed instead */
void add_ignore_symbol( const char *name )
{
int i;
if (!ignore_symbols) init_ignored_symbols(); /* first time around, fill list with defaults */
if (name[0] == '-') /* remove it */
{
if (!name[1]) /* remove everything */
{
for (i = 0; i < nb_ignore_symbols; i++) free( ignore_symbols[i] );
nb_ignore_symbols = 0;
}
else
{
for (i = 0; i < nb_ignore_symbols; i++)
{
if (!strcmp( ignore_symbols[i], name+1 ))
{
free( ignore_symbols[i] );
memmove( &ignore_symbols[i], &ignore_symbols[i+1], nb_ignore_symbols - i - 1 );
nb_ignore_symbols--;
}
}
}
}
else
{
if (nb_ignore_symbols == ignore_size)
{
ignore_size += 32;
ignore_symbols = xrealloc( ignore_symbols, ignore_size * sizeof(*ignore_symbols) );
}
ignore_symbols[nb_ignore_symbols++] = xstrdup( name );
}
}
/* add a function to the list of imports from a given dll */
......@@ -454,6 +550,7 @@ static void remove_ignored_symbols(void)
{
int i;
if (!ignore_symbols) init_ignored_symbols();
sort_symbols( ignore_symbols, nb_ignore_symbols );
for (i = 0; i < nb_undef_symbols; i++)
{
......
......@@ -57,7 +57,6 @@ static const char * const TypeNames[TYPE_NBTYPES] =
static const char * const FlagNames[] =
{
"noimport", /* FLAG_NOIMPORT */
"norelay", /* FLAG_NORELAY */
"noname", /* FLAG_NONAME */
"ret64", /* FLAG_RET64 */
......@@ -288,8 +287,6 @@ static void ParseExtern( ORDDEF *odp )
{
if (SpecType == SPEC_WIN16) fatal_error( "'extern' not supported for Win16\n" );
odp->link_name = xstrdup( GetToken(0) );
/* 'extern' definitions are not available for implicit import */
odp->flags |= FLAG_NOIMPORT;
}
......
......@@ -301,7 +301,6 @@ static int output_exports( FILE *outfile, int nr_exports )
for (i = 0; i < nb_names; i++)
{
if (Names[i]->flags & FLAG_NOIMPORT) continue;
/* check for invalid characters in the name */
for (p = Names[i]->name; *p; p++)
if (!isalnum(*p) && *p != '_' && *p != '.') break;
......@@ -318,7 +317,6 @@ static int output_exports( FILE *outfile, int nr_exports )
{
ORDDEF *odp = EntryPoints[i];
if (odp->flags & FLAG_NOIMPORT) continue;
if (odp->name || !odp->export_name) continue;
/* check for invalid characters in the name */
for (p = odp->export_name; *p; p++)
......@@ -867,9 +865,10 @@ void BuildDef32File(FILE *outfile)
for(i = 0; i < nb_entry_points; i++)
{
ORDDEF *odp = EntryPoints[i];
int is_data = 0;
if (!odp) continue;
if (odp->flags & (FLAG_NOIMPORT|FLAG_REGISTER)) continue;
if (odp->flags & FLAG_REGISTER) continue;
if (odp->type == TYPE_STUB) continue;
if (odp->name) name = odp->name;
......@@ -881,9 +880,11 @@ void BuildDef32File(FILE *outfile)
switch(odp->type)
{
case TYPE_EXTERN:
case TYPE_VARIABLE:
is_data = 1;
/* fall through */
case TYPE_VARARGS:
case TYPE_CDECL:
case TYPE_VARIABLE:
/* try to reduce output */
if(strcmp(name, odp->link_name))
fprintf(outfile, "=%s", odp->link_name);
......@@ -910,7 +911,8 @@ void BuildDef32File(FILE *outfile)
default:
assert(0);
}
fprintf(outfile, " @%d%s\n", odp->ordinal, odp->name ? "" : " NONAME" );
fprintf(outfile, " @%d%s%s\n", odp->ordinal,
odp->name ? "" : " NONAME", is_data ? " DATA" : "" );
}
}
......
......@@ -101,11 +101,13 @@ Win16 modules); default is no local heap.
.BI \-I\ directory
Ignored for compatibility with the C compiler.
.TP
.BI \-i\ symbol[,symbol]
.BI \-i\ [-]symbol[,[-]symbol]
Specify a list of symbols that should be ignored when resolving
undefined symbols against the imported libraries. This forces these
symbols to be resolved from the Unix C library (or from another Unix
library linked with the application).
library linked with the application). If a symbol is prefixed by '-'
it is removed from the list instead of being added; a stand-alone '-'
clears the whole list.
.TP
.BI \-K\ flags
Ignored for compatibility with the C compiler.
......@@ -213,10 +215,6 @@ is a series of optional flags, preceded by a '-' character. The
supported flags are:
.RS
.TP
.B -noimport
The entry point is not made available for importing from Winelib
applications (Win32 only).
.TP
.B -norelay
The entry point is not displayed in relay debugging traces (Win32
only).
......
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