Reactos

[OLDNAMES] Fix up for ucrtbase

Some old names redirect to functions that are not exported by ucrtbase. Place them into a seperate asm file, so that they don't get pulled in, when any of the other ones is referenced.

+190 -170
+8
dll/win32/ucrtbase/ucrtbase.spec
··· 391 391 @ cdecl _fseeki64_nolock(ptr int64 long) 392 392 @ cdecl _fsopen(str str long) 393 393 @ cdecl _fstat32(long ptr) 394 + @ cdecl -arch=win32 -impsym _fstat(long ptr) _fstat32 394 395 @ cdecl _fstat32i64(long ptr) 395 396 @ cdecl _fstat64(long ptr) 396 397 @ cdecl _fstat64i32(long ptr) 398 + @ cdecl -arch=win64 -impsym _fstat(long ptr) _fstat64i32 397 399 @ cdecl _ftell_nolock(ptr) 398 400 @ cdecl -ret64 _ftelli64(ptr) 399 401 @ cdecl -ret64 _ftelli64_nolock(ptr) 400 402 @ cdecl _ftime32(ptr) 403 + @ cdecl -arch=win32 -impsym _ftime(ptr) _ftime32 401 404 @ cdecl _ftime32_s(ptr) 402 405 @ cdecl _ftime64(ptr) 406 + @ cdecl -arch=win64 -impsym _ftime(ptr) _ftime64 403 407 @ cdecl _ftime64_s(ptr) 404 408 @ cdecl -arch=i386 -ret64 _ftol() 405 409 @ cdecl _fullpath(ptr str long) ··· 1975 1979 @ cdecl _splitpath(str ptr ptr ptr ptr) 1976 1980 @ cdecl _splitpath_s(str ptr long ptr long ptr long ptr long) 1977 1981 @ cdecl _stat32(str ptr) 1982 + @ cdecl -arch=win32 -impsym _stat(ptr) _stat32 1978 1983 @ cdecl _stat32i64(str ptr) 1979 1984 @ cdecl _stat64(str ptr) 1980 1985 @ cdecl _stat64i32(str ptr) 1986 + @ cdecl -arch=win64 -impsym _stat(ptr) _stat64i32 1981 1987 @ cdecl _statusfp() 1982 1988 @ cdecl -stub -arch=i386 _statusfp2(ptr ptr) 1983 1989 @ cdecl _strcoll_l(str str ptr) ··· 2064 2070 @ cdecl _unlock_file(ptr) 2065 2071 @ cdecl _unlock_locales() 2066 2072 @ cdecl _utime32(str ptr) 2073 + @ cdecl -arch=win32 -impsym _utime(str ptr) _utime32 2067 2074 @ cdecl _utime64(str ptr) 2075 + @ cdecl -arch=win64 -impsym _utime(str ptr) _utime64 2068 2076 @ cdecl _waccess(wstr long) 2069 2077 @ cdecl _waccess_s(wstr long) 2070 2078 @ cdecl _wasctime(ptr)
+58
sdk/include/asm/alias.inc
··· 1 + 2 + #ifdef _M_IX86 3 + #define SYM(name) _##name 4 + #define IMPSYM(name) __imp__##name 5 + #else 6 + #define SYM(name) name 7 + #define IMPSYM(name) __imp_##name 8 + #endif 9 + 10 + #if (defined(_M_IX86) || defined(_M_AMD64)) 11 + 12 + #include <asm.inc> 13 + 14 + MACRO(CREATE_ALIAS1, alias, target) 15 + #ifdef _USE_ML 16 + EXTERN SYM(&target):PROC 17 + ALIAS <SYM(&alias)> = <SYM(&target)> 18 + #else 19 + .weakref SYM(&alias), SYM(&target) 20 + #endif 21 + ENDM 22 + 23 + MACRO(CREATE_ALIAS2, alias, target) 24 + #ifdef _USE_ML 25 + EXTERN IMPSYM(&target):PROC 26 + ALIAS <IMPSYM(&alias)> = <IMPSYM(&target)> 27 + #else 28 + .weakref IMPSYM(&alias), IMPSYM(&target) 29 + #endif 30 + ENDM 31 + 32 + MACRO(CREATE_ALIAS, alias, target) 33 + CREATE_ALIAS1 &alias, &target 34 + CREATE_ALIAS2 &alias, &target 35 + ENDM 36 + 37 + #elif defined(_M_ARM) 38 + 39 + #include <kxarm.h> 40 + 41 + MACRO 42 + CREATE_ALIAS1 $alias, $target 43 + IMPORT SYM($alias), WEAK SYM($target) 44 + MEND 45 + 46 + MACRO 47 + CREATE_ALIAS2 $alias, $target 48 + IMPORT IMPSYM($alias), WEAK IMPSYM($target) 49 + MEND 50 + 51 + MACRO 52 + CREATE_ALIAS $alias, $target 53 + CREATE_ALIAS1 $alias, $target 54 + CREATE_ALIAS2 $alias, $target 55 + MEND 56 + #else 57 + #error "Unsupported platform." 58 + #endif
+118
sdk/lib/crt/oldnames-common.S
··· 1 + 2 + #include <alias.inc> 3 + 4 + /* Do not remove indentation, this would break ARM build! */ 5 + CREATE_ALIAS access, _access 6 + CREATE_ALIAS chdir, _chdir 7 + CREATE_ALIAS chmod, _chmod 8 + CREATE_ALIAS chsize, _chsize 9 + CREATE_ALIAS close, _close 10 + CREATE_ALIAS creat, _creat 11 + CREATE_ALIAS cwait, _cwait 12 + CREATE_ALIAS dup, _dup 13 + CREATE_ALIAS dup2, _dup2 14 + CREATE_ALIAS ecvt, _ecvt 15 + CREATE_ALIAS eof, _eof 16 + CREATE_ALIAS execl, _execl 17 + CREATE_ALIAS execle, _execle 18 + CREATE_ALIAS execlp, _execlp 19 + CREATE_ALIAS execlpe, _execlpe 20 + CREATE_ALIAS execv, _execv 21 + CREATE_ALIAS execve, _execve 22 + CREATE_ALIAS execvp, _execvp 23 + CREATE_ALIAS execvpe, _execvpe 24 + CREATE_ALIAS fcvt, _fcvt 25 + CREATE_ALIAS fdopen, _fdopen 26 + CREATE_ALIAS fgetchar, _fgetchar 27 + CREATE_ALIAS fgetwchar, _fgetwchar 28 + CREATE_ALIAS filelength, _filelength 29 + CREATE_ALIAS fileno, _fileno 30 + CREATE_ALIAS fpreset, _fpreset 31 + CREATE_ALIAS fputchar, _fputchar 32 + CREATE_ALIAS fputwchar, _fputwchar 33 + CREATE_ALIAS gcvt, _gcvt 34 + CREATE_ALIAS getch, _getch 35 + CREATE_ALIAS getche, _getche 36 + CREATE_ALIAS getcwd, _getcwd 37 + CREATE_ALIAS getpid, _getpid 38 + CREATE_ALIAS getw, _getw 39 + CREATE_ALIAS heapwalk, _heapwalk 40 + CREATE_ALIAS isatty, _isatty 41 + CREATE_ALIAS isascii, __isascii 42 + CREATE_ALIAS itoa, _itoa 43 + CREATE_ALIAS kbhit, _kbhit 44 + CREATE_ALIAS lfind, _lfind 45 + CREATE_ALIAS lsearch, _lsearch 46 + CREATE_ALIAS lseek, _lseek 47 + CREATE_ALIAS ltoa, _ltoa 48 + CREATE_ALIAS memccpy, _memccpy 49 + CREATE_ALIAS memicmp, _memicmp 50 + CREATE_ALIAS mkdir, _mkdir 51 + CREATE_ALIAS mktemp, _mktemp 52 + CREATE_ALIAS open, _open 53 + CREATE_ALIAS pclose, _pclose 54 + CREATE_ALIAS popen, _popen 55 + CREATE_ALIAS putch, _putch 56 + CREATE_ALIAS putenv, _putenv 57 + CREATE_ALIAS putw, _putw 58 + CREATE_ALIAS read, _read 59 + CREATE_ALIAS rmdir, _rmdir 60 + CREATE_ALIAS rmtmp, _rmtmp 61 + CREATE_ALIAS searchenv, _searchenv 62 + CREATE_ALIAS setmode, _setmode 63 + CREATE_ALIAS sopen, _sopen 64 + CREATE_ALIAS spawnl, _spawnl 65 + CREATE_ALIAS spawnle, _spawnle 66 + CREATE_ALIAS spawnlp, _spawnlp 67 + CREATE_ALIAS spawnlpe, _spawnlpe 68 + CREATE_ALIAS spawnv, _spawnv 69 + CREATE_ALIAS spawnve, _spawnve 70 + CREATE_ALIAS spawnvp, _spawnvp 71 + CREATE_ALIAS spawnvpe, _spawnvpe 72 + CREATE_ALIAS strdup, _strdup 73 + CREATE_ALIAS stricmp, _stricmp 74 + CREATE_ALIAS stricoll, _stricoll 75 + CREATE_ALIAS strlwr, _strlwr 76 + CREATE_ALIAS strnicmp, _strnicmp 77 + CREATE_ALIAS strnset, _strnset 78 + CREATE_ALIAS strrev, _strrev 79 + CREATE_ALIAS strset, _strset 80 + CREATE_ALIAS strupr, _strupr 81 + CREATE_ALIAS swab, _swab 82 + CREATE_ALIAS tell, _tell 83 + CREATE_ALIAS tempnam, _tempnam 84 + CREATE_ALIAS tzset, _tzset 85 + CREATE_ALIAS umask, _umask 86 + CREATE_ALIAS ungetch, _ungetch 87 + CREATE_ALIAS unlink, _unlink 88 + CREATE_ALIAS wcsdup, _wcsdup 89 + CREATE_ALIAS wcsicmp, _wcsicmp 90 + CREATE_ALIAS wcsicoll, _wcsicoll 91 + CREATE_ALIAS wcslwr, _wcslwr 92 + CREATE_ALIAS wcsnicmp, _wcsnicmp 93 + CREATE_ALIAS wcsnset, _wcsnset 94 + CREATE_ALIAS wcsrev, _wcsrev 95 + CREATE_ALIAS wcsset, _wcsset 96 + CREATE_ALIAS wcsupr, _wcsupr 97 + CREATE_ALIAS wpopen, _wpopen 98 + CREATE_ALIAS write, _write 99 + // non-ANSI functions declared in math.h 100 + CREATE_ALIAS j0, _j0 101 + CREATE_ALIAS j1, _j1 102 + CREATE_ALIAS jn, _jn 103 + CREATE_ALIAS y0, _y0 104 + CREATE_ALIAS y1, _y1 105 + CREATE_ALIAS yn, _yn 106 + CREATE_ALIAS chgsign, _chgsign 107 + CREATE_ALIAS scalb, _scalb 108 + CREATE_ALIAS finite, _finite 109 + CREATE_ALIAS fpclass, _fpclass 110 + 111 + // These do not exist as exports in ucrtbase, but as import symbols 112 + CREATE_ALIAS fstat, _fstat 113 + CREATE_ALIAS ftime, _ftime 114 + CREATE_ALIAS stat, _stat 115 + CREATE_ALIAS utime, _utime 116 + 117 + END 118 +
+5 -169
sdk/lib/crt/oldnames-msvcrt.S
··· 1 1 2 - #ifdef _M_IX86 3 - #define SYM(name) _##name 4 - #define IMPSYM(name) __imp__##name 5 - #else 6 - #define SYM(name) name 7 - #define IMPSYM(name) __imp_##name 8 - #endif 9 - 10 - #if (defined(_M_IX86) || defined(_M_AMD64)) 11 - 12 - #include <asm.inc> 13 - 14 - MACRO(CREATE_ALIAS1, alias, target) 15 - #ifdef _USE_ML 16 - EXTERN SYM(&target):PROC 17 - ALIAS <SYM(&alias)> = <SYM(&target)> 18 - #else 19 - .weakref SYM(&alias), SYM(&target) 20 - #endif 21 - ENDM 22 - 23 - MACRO(CREATE_ALIAS2, alias, target) 24 - #ifdef _USE_ML 25 - EXTERN IMPSYM(&target):PROC 26 - ALIAS <IMPSYM(&alias)> = <IMPSYM(&target)> 27 - #else 28 - .weakref IMPSYM(&alias), IMPSYM(&target) 29 - #endif 30 - ENDM 31 - 32 - MACRO(CREATE_ALIAS, alias, target) 33 - CREATE_ALIAS1 &alias, &target 34 - CREATE_ALIAS2 &alias, &target 35 - ENDM 36 - 37 - #elif defined(_M_ARM) 2 + #include <alias.inc> 38 3 39 - #include <kxarm.h> 40 - 41 - MACRO 42 - CREATE_ALIAS1 $alias, $target 43 - IMPORT SYM($alias), WEAK SYM($target) 44 - MEND 45 - 46 - MACRO 47 - CREATE_ALIAS2 $alias, $target 48 - IMPORT IMPSYM($alias), WEAK IMPSYM($target) 49 - MEND 50 - 51 - MACRO 52 - CREATE_ALIAS $alias, $target 53 - CREATE_ALIAS1 $alias, $target 54 - CREATE_ALIAS2 $alias, $target 55 - MEND 56 - #else 57 - #error "Unsupported platform." 58 - #endif 59 - 60 - /* Do not remove indentation, this would break ARM build! */ 61 - CREATE_ALIAS access, _access 62 - CREATE_ALIAS chdir, _chdir 63 - CREATE_ALIAS chmod, _chmod 64 - CREATE_ALIAS chsize, _chsize 65 - CREATE_ALIAS close, _close 66 - CREATE_ALIAS creat, _creat 67 - CREATE_ALIAS cwait, _cwait 4 + // These exports only exist in msvcrt.dll, not in ucrtbase.dll 5 + // Do not remove indentation, this would break ARM build! 68 6 CREATE_ALIAS2 daylight, _daylight 69 - CREATE_ALIAS dup, _dup 70 - CREATE_ALIAS dup2, _dup2 71 - CREATE_ALIAS ecvt, _ecvt 72 - CREATE_ALIAS eof, _eof 73 - CREATE_ALIAS execl, _execl 74 - CREATE_ALIAS execle, _execle 75 - CREATE_ALIAS execlp, _execlp 76 - CREATE_ALIAS execlpe, _execlpe 77 - CREATE_ALIAS execv, _execv 78 - CREATE_ALIAS execve, _execve 79 - CREATE_ALIAS execvp, _execvp 80 - CREATE_ALIAS execvpe, _execvpe 81 - CREATE_ALIAS fcvt, _fcvt 82 - CREATE_ALIAS fdopen, _fdopen 83 - CREATE_ALIAS fgetchar, _fgetchar 84 - CREATE_ALIAS fgetwchar, _fgetwchar 85 - CREATE_ALIAS filelength, _filelength 86 - CREATE_ALIAS fileno, _fileno 87 - CREATE_ALIAS fpreset, _fpreset 88 - CREATE_ALIAS fputchar, _fputchar 89 - CREATE_ALIAS fputwchar, _fputwchar 90 - CREATE_ALIAS fstat, _fstat 91 - CREATE_ALIAS ftime, _ftime 92 - CREATE_ALIAS gcvt, _gcvt 93 - CREATE_ALIAS getch, _getch 94 - CREATE_ALIAS getche, _getche 95 - CREATE_ALIAS getcwd, _getcwd 96 - CREATE_ALIAS getpid, _getpid 97 - CREATE_ALIAS getw, _getw 98 - CREATE_ALIAS heapwalk, _heapwalk 99 - CREATE_ALIAS isatty, _isatty 100 - CREATE_ALIAS isascii, __isascii 101 - CREATE_ALIAS itoa, _itoa 102 - CREATE_ALIAS kbhit, _kbhit 103 - CREATE_ALIAS lfind, _lfind 104 - CREATE_ALIAS lsearch, _lsearch 105 - CREATE_ALIAS lseek, _lseek 106 - CREATE_ALIAS ltoa, _ltoa 107 - CREATE_ALIAS memccpy, _memccpy 108 - CREATE_ALIAS memicmp, _memicmp 109 - CREATE_ALIAS mkdir, _mkdir 110 - CREATE_ALIAS mktemp, _mktemp 111 - CREATE_ALIAS open, _open 112 - CREATE_ALIAS pclose, _pclose 113 - CREATE_ALIAS popen, _popen 114 - CREATE_ALIAS putch, _putch 115 - CREATE_ALIAS putenv, _putenv 116 - CREATE_ALIAS putw, _putw 117 - CREATE_ALIAS read, _read 118 - CREATE_ALIAS rmdir, _rmdir 119 - CREATE_ALIAS rmtmp, _rmtmp 120 - CREATE_ALIAS searchenv, _searchenv 121 - CREATE_ALIAS setmode, _setmode 122 7 CREATE_ALIAS snprintf, _snprintf 123 - CREATE_ALIAS sopen, _sopen 124 - CREATE_ALIAS spawnl, _spawnl 125 - CREATE_ALIAS spawnle, _spawnle 126 - CREATE_ALIAS spawnlp, _spawnlp 127 - CREATE_ALIAS spawnlpe, _spawnlpe 128 - CREATE_ALIAS spawnv, _spawnv 129 - CREATE_ALIAS spawnve, _spawnve 130 - CREATE_ALIAS spawnvp, _spawnvp 131 - CREATE_ALIAS spawnvpe, _spawnvpe 132 - CREATE_ALIAS stat, _stat 133 8 CREATE_ALIAS strcmpi, _strcmpi 134 - CREATE_ALIAS strdup, _strdup 135 - CREATE_ALIAS stricmp, _stricmp 136 - CREATE_ALIAS stricoll, _stricoll 137 - CREATE_ALIAS strlwr, _strlwr 138 - CREATE_ALIAS strnicmp, _strnicmp 139 - CREATE_ALIAS strnset, _strnset 140 - CREATE_ALIAS strrev, _strrev 141 - CREATE_ALIAS strset, _strset 142 - CREATE_ALIAS strupr, _strupr 143 - CREATE_ALIAS swab, _swab 144 - CREATE_ALIAS tell, _tell 145 - CREATE_ALIAS tempnam, _tempnam 146 9 CREATE_ALIAS2 timezone, _timezone 147 10 CREATE_ALIAS2 tzname, _tzname 148 - CREATE_ALIAS tzset, _tzset 149 - CREATE_ALIAS umask, _umask 150 - CREATE_ALIAS ungetch, _ungetch 151 - CREATE_ALIAS unlink, _unlink 152 - CREATE_ALIAS utime, _utime 153 - CREATE_ALIAS wcsdup, _wcsdup 154 - CREATE_ALIAS wcsicmp, _wcsicmp 155 - CREATE_ALIAS wcsicoll, _wcsicoll 156 - CREATE_ALIAS wcslwr, _wcslwr 157 - CREATE_ALIAS wcsnicmp, _wcsnicmp 158 - CREATE_ALIAS wcsnset, _wcsnset 159 - CREATE_ALIAS wcsrev, _wcsrev 160 - CREATE_ALIAS wcsset, _wcsset 161 - CREATE_ALIAS wcsupr, _wcsupr 162 - CREATE_ALIAS wpopen, _wpopen 163 - CREATE_ALIAS write, _write 164 - // non-ANSI functions declared in math.h 165 - CREATE_ALIAS j0, _j0 166 - CREATE_ALIAS j1, _j1 167 - CREATE_ALIAS jn, _jn 168 - CREATE_ALIAS y0, _y0 169 - CREATE_ALIAS y1, _y1 170 - CREATE_ALIAS yn, _yn 171 - CREATE_ALIAS chgsign, _chgsign 172 - CREATE_ALIAS scalb, _scalb 173 - CREATE_ALIAS finite, _finite 174 - CREATE_ALIAS fpclass, _fpclass 175 - // C99 functions 11 + 12 + // C99 functions (already properly exported in ucrtbase.dll)) 176 13 CREATE_ALIAS cabs, _cabs 177 14 CREATE_ALIAS hypot, _hypot 178 15 CREATE_ALIAS logb, _logb 179 16 CREATE_ALIAS nextafter, _nextafter 180 17 181 18 END 182 -
+1 -1
sdk/lib/crt/oldnames.cmake
··· 17 17 _add_library(oldnames STATIC EXCLUDE_FROM_ALL ${LIBRARY_PRIVATE_DIR}/oldnames.a) 18 18 set_target_properties(oldnames PROPERTIES LINKER_LANGUAGE "C") 19 19 else() 20 - add_asm_files(oldnames_asm oldnames-msvcrt.S) 20 + add_asm_files(oldnames_asm oldnames-common.S oldnames-msvcrt.S) 21 21 add_library(oldnames ${oldnames_asm}) 22 22 set_target_properties(oldnames PROPERTIES LINKER_LANGUAGE "C") 23 23 endif()