~ubuntu-branches/ubuntu/maverick/pygame/maverick

« back to all changes in this revision

Viewing changes to msys_link_VC_2008_dlls.py

  • Committer: Bazaar Package Importer
  • Author(s): Sebastien Bacher
  • Date: 2010-01-14 17:02:11 UTC
  • mfrom: (1.3.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20100114170211-21eop2ja7mr9vdcr
Tags: 1.9.1release-0ubuntu1
* New upstream version (lp: #433304)
* debian/control:
  - build-depends on libportmidi-dev

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#!/usr/bin/env python
 
2
# -*- coding: ascii -*-
 
3
# Program msys_link_VC_2008_dlls.py
 
4
# Requires Python 2.4 or later and win32api.
 
5
 
 
6
"""Link dependency DLLs against the Visual C 2008 run-time using MinGW and MSYS
 
7
 
 
8
Configured for Pygame 1.8 and Python 2.6 and up.
 
9
 
 
10
By default the DLLs and export libraries are installed in directory ./lib_VC_2008.
 
11
msys_build_deps.py must run first to build the static libaries.
 
12
 
 
13
This program can be run from a Windows cmd.exe or MSYS terminal.
 
14
 
 
15
The recognized, and optional, environment variables are:
 
16
  SHELL - MSYS shell program path - already defined in the MSYS terminal
 
17
  LDFLAGS - linker options - prepended to flags set by the program
 
18
  LIBRARY_PATH - library directory paths - appended to those used by this
 
19
                 program
 
20
 
 
21
To get a list of command line options run
 
22
 
 
23
python build_deps.py --help
 
24
 
 
25
This program has been tested against the following libraries:
 
26
 
 
27
SDL 1.2 (.13) revision 4114 from SVN 
 
28
SDL_image 1.2.6
 
29
SDL_mixer 1.2 (.8) revision 3942 from SVN
 
30
SDL_ttf 2.0.9
 
31
smpeg revision 370 from SVN
 
32
freetype 2.3.7
 
33
libogg 1.1.3
 
34
libvorbis 1.2.0
 
35
FLAC 1.2.1
 
36
tiff 3.8.2
 
37
libpng 1.2.32
 
38
jpeg 6b
 
39
zlib 1.2.3
 
40
 
 
41
The build environment used:
 
42
 
 
43
gcc-core-3.4.5
 
44
binutils-2.17.50
 
45
mingwrt-3.15.1
 
46
win32api-3.12
 
47
pexports 0.43
 
48
MSYS-1.0.10
 
49
 
 
50
Builds have been performed on Windows 98 and XP.
 
51
 
 
52
Build issues:
 
53
  For pre-2007 computers:  MSYS bug "[ 1170716 ] executing a shell scripts
 
54
    gives a memory leak" (http://sourceforge.net/tracker/
 
55
    index.php?func=detail&aid=1170716&group_id=2435&atid=102435)
 
56
    
 
57
    It may not be possible to use the --all option to build all Pygame
 
58
    dependencies in one session. Instead the job may need to be split into two
 
59
    or more sessions, with a reboot of the operatingsystem between each. Use
 
60
    the --help-args option to list the libraries in the their proper build
 
61
    order.
 
62
"""
 
63
 
 
64
import msys
 
65
 
 
66
from optparse import OptionParser, Option, OptionValueError
 
67
import os
 
68
import sys
 
69
import time
 
70
import re
 
71
import copy
 
72
 
 
73
DEFAULT_DEST_DIR_NAME = 'lib_VC_2008'
 
74
 
 
75
def print_(*args, **kwds):
 
76
    msys.msys_print(*args, **kwds)
 
77
 
 
78
def merge_strings(*args, **kwds):
 
79
    """Returns non empty string joined by sep
 
80
 
 
81
    The default separator is an empty string.
 
82
    """
 
83
 
 
84
    sep = kwds.get('sep', '')
 
85
    return sep.join([s for s in args if s])
 
86
 
 
87
class BuildError(StandardError):
 
88
    """Raised for missing source paths and failed script runs"""
 
89
    pass
 
90
 
 
91
class Dependency(object):
 
92
    """Builds a library"""
 
93
    
 
94
    def __init__(self, name, dlls, shell_script):
 
95
        self.name = name
 
96
        self.dlls = dlls
 
97
        self.shell_script = shell_script
 
98
 
 
99
    def build(self, msys):
 
100
        return_code = msys.run_shell_script(self.shell_script)
 
101
        if return_code != 0:
 
102
            raise BuildError("The build for %s failed with code %d" %
 
103
                             (self.name, return_code))
 
104
 
 
105
class Preparation(object):
 
106
    """Perform necessary build environment preperations"""
 
107
    
 
108
    def __init__(self, name, shell_script):
 
109
        self.name = name
 
110
        self.path = ''
 
111
        self.paths = []
 
112
        self.dlls = []
 
113
        self.shell_script = shell_script
 
114
 
 
115
    def build(self, msys):
 
116
        return_code = msys.run_shell_script(self.shell_script)
 
117
        if return_code != 0:
 
118
            raise BuildError("Preparation '%s' failed with code %d" %
 
119
                             (self.name, return_code))
 
120
 
 
121
def build(dependencies, msys):
 
122
    """Execute that shell scripts for all dependencies"""
 
123
    
 
124
    for dep in dependencies:
 
125
        dep.build(msys)
 
126
 
 
127
def check_directory_path(option, opt, value):
 
128
    # Remove those double quotes that Windows won't.
 
129
    if re.match(r'([A-Za-z]:){0,1}[^"<>:|?*]+$', value) is None:
 
130
        raise OptionValueError("option %s: invalid path" % value)
 
131
    return value
 
132
 
 
133
class MyOption(Option):
 
134
    TYPES = Option.TYPES + ("dir",)
 
135
    TYPE_CHECKER = copy.copy(Option.TYPE_CHECKER)
 
136
    TYPE_CHECKER["dir"] = check_directory_path
 
137
 
 
138
def command_line():
 
139
    """Process the command line and return the options"""
 
140
    
 
141
    usage = ("usage: %prog [options] --all\n"
 
142
             "       %prog [options] [args]\n"
 
143
             "\n"
 
144
             "Build the Pygame dependencies. The args, if given, are\n"
 
145
             "libraries to include or exclude.\n"
 
146
             "\n"
 
147
             "At startup this program may prompt for missing information.\n"
 
148
             "Be aware of this before redirecting output or leaving the\n"
 
149
             "program unattended. Once the 'Starting build' message appears\n"
 
150
             "no more user input is required. The build process will"
 
151
             "abort on the first error, as library build order is important.\n"
 
152
             "\n"
 
153
             "See --include and --help-args.\n"
 
154
             "\n"
 
155
             "For more details see the program's document string\n")
 
156
    
 
157
    parser = OptionParser(usage, option_class=MyOption)
 
158
    parser.add_option('-a', '--all', action='store_true', dest='build_all',
 
159
                      help="Include all libraries in the build")
 
160
    parser.set_defaults(build_all=False)
 
161
    parser.add_option('--console', action='store_true', dest='console',
 
162
                      help="Link with the console subsystem:"
 
163
                           " defaults to Win32 GUI")
 
164
    parser.set_defaults(console=False)
 
165
    parser.add_option('--no-strip', action='store_false', dest='strip',
 
166
                      help="Do not strip the library")
 
167
    parser.set_defaults(strip=True)
 
168
    parser.add_option('-e', '--exclude', action='store_true', dest='exclude',
 
169
                      help="Exclude the specified libraries")
 
170
    parser.set_defaults(exclude=False)
 
171
    parser.add_option('-d', '--destination-dir', type='dir',
 
172
                      dest='destination_dir',
 
173
                      help="Where the DLLs and export libraries will go",
 
174
                      metavar='PATH')
 
175
    parser.set_defaults(destination_dir=DEFAULT_DEST_DIR_NAME)
 
176
    parser.add_option('-m', '--msys-root', action='store', type='dir',
 
177
                      dest='msys_directory',
 
178
                      help="MSYS directory path, which may include"
 
179
                           " the 1.x subdirectory")
 
180
    parser.add_option('--help-args', action='store_true', dest='arg_help',
 
181
                      help="Show a list of recognised libraries,"
 
182
                           " in build order, and exit")
 
183
    parser.set_defaults(arg_help=False)
 
184
    return parser.parse_args()
 
185
 
 
186
def set_environment_variables(msys, options):
 
187
    """Set the environment variables used by the scripts"""
 
188
    
 
189
    environ = msys.environ
 
190
    msys_root = msys.msys_root
 
191
    destination_dir = os.path.abspath(options.destination_dir)
 
192
    environ['BDWD'] = msys.windows_to_msys(destination_dir)
 
193
    environ['BDBIN'] = '/usr/local/bin'
 
194
    environ['BDLIB'] = '/usr/local/lib'
 
195
    subsystem = '-mwindows'
 
196
    if options.console:
 
197
        subsystem = '-mconsole'
 
198
    strip = ''
 
199
    if options.strip:
 
200
        strip = '-Wl,--strip-all'
 
201
    environ['LDFLAGS'] = merge_strings(environ.get('LDFLAGS', ''),
 
202
                                       subsystem,
 
203
                                       strip,
 
204
                                       sep=' ')
 
205
    library_path = os.path.join(msys_root, 'local', 'lib')
 
206
    msvcr90_path = os.path.join(destination_dir, 'msvcr90')
 
207
    environ['DBMSVCR90'] = msys.windows_to_msys(msvcr90_path)
 
208
    # For dependency libraries and msvcrt hiding.
 
209
    environ['LIBRARY_PATH'] = merge_strings(msvcr90_path,
 
210
                                            environ.get('LIBRARY_PATH', ''),
 
211
                                            sep=';')
 
212
 
 
213
class ChooseError(StandardError):
 
214
    """Failer to select dependencies"""
 
215
    pass
 
216
 
 
217
def choose_dependencies(dependencies, options, args):
 
218
    """Return the dependencies to actually build"""
 
219
 
 
220
    if options.build_all:
 
221
        if args:
 
222
            raise ChooseError("No library names are accepted"
 
223
                              " for the --all option.")
 
224
        if options.exclude:
 
225
            return []
 
226
        else:
 
227
            return dependencies
 
228
 
 
229
    if args:
 
230
        names = [d.name for d in dependencies]
 
231
        args = [a.upper() for a in args]
 
232
        for a in args:
 
233
            if a not in names:
 
234
                msg = ["%s is an unknown library; valid choices are:" % a]
 
235
                msg.extend(names)
 
236
                raise ChooseError('\n'.join(msg))
 
237
        if options.exclude:
 
238
            return [d for d in dependencies if d.name not in args]
 
239
        return [d for d in dependencies if d.name in args]
 
240
 
 
241
    return []
 
242
    
 
243
def summary(dependencies, msys, start_time, chosen_deps, options):
 
244
    """Display a summary report of new, existing and missing DLLs"""
 
245
 
 
246
    import datetime
 
247
 
 
248
    print_("\n\n=== Summary ===")
 
249
    if start_time is not None:
 
250
        print_("  Elapse time:",
 
251
               datetime.timedelta(seconds=time.time()-start_time))
 
252
    bin_dir = options.destination_dir
 
253
    for d in dependencies:
 
254
        name = d.name
 
255
        dlls = d.dlls
 
256
        for dll in dlls:
 
257
            dll_path = os.path.join(bin_dir, dll)
 
258
            try:
 
259
                mod_time = os.path.getmtime(dll_path)
 
260
            except:
 
261
                msg = "No DLL"
 
262
            else:
 
263
                if mod_time >= start_time:
 
264
                    msg = "Installed new DLL %s" % dll_path
 
265
                else:
 
266
                    msg = "-- (old DLL %s)" % dll_path
 
267
            print_("  %-10s: %s" % (name, msg))
 
268
    
 
269
def main(dependencies, msvcr90_preparation, msys_preparation):
 
270
    """Build the dependencies according to the command line options."""
 
271
 
 
272
    options, args = command_line()
 
273
    if options.arg_help:
 
274
        print_("These are the Pygame library dependencies:")
 
275
        for dep in dependencies:
 
276
            print_(" ", dep.name)
 
277
        return 0
 
278
    try:
 
279
        chosen_deps = choose_dependencies(dependencies, options, args)
 
280
    except ChooseError, e:
 
281
        print_(e)
 
282
        return 1
 
283
    print_("Destination directory:", options.destination_dir)
 
284
    if not chosen_deps:
 
285
        if not args:
 
286
            print_("No libraries specified.")
 
287
        elif options.build_all:
 
288
            print_("All libraries excluded")
 
289
    chosen_deps.insert(0, msvcr90_preparation)
 
290
    chosen_deps.insert(0, msys_preparation)
 
291
    try:
 
292
        msys_directory = options.msys_directory
 
293
    except AttributeError:
 
294
        msys_directory = None
 
295
    try:
 
296
        m = msys.Msys(msys_directory)
 
297
    except msys.MsysException, e:
 
298
        print_(e)
 
299
        return 1
 
300
    start_time = None
 
301
    return_code = 1
 
302
    set_environment_variables(m, options)
 
303
    print_("\n=== Starting build ===")
 
304
    start_time = time.time()  # For file timestamp checks.
 
305
    try:
 
306
        build(chosen_deps, m)
 
307
    except BuildError, e:
 
308
        print_("Build aborted:", e)
 
309
    else:
 
310
        # A successful build!
 
311
        return_code = 0
 
312
    summary(dependencies, m, start_time, chosen_deps, options)
 
313
 
 
314
    return return_code
 
315
 
 
316
#
 
317
#   Build specific code
 
318
#
 
319
 
 
320
# This list includes the MSYS shell scripts to build each library. Each script
 
321
# runs in an environment where MINGW_ROOT_DIRECTORY is defined and the MinGW
 
322
# bin directory is in PATH. DBWD, is the working directory. A script will cd to
 
323
# it before doing anything else. BDBIN is the location of the dependency DLLs.
 
324
# BDLIB is the location of the dependency libraries. LDFLAGS are linker flags.
 
325
 
326
# The list order corresponds to build order. It is critical.
 
327
dependencies = [
 
328
    Dependency('SDL', ['SDL.dll'], """
 
329
 
 
330
set -e
 
331
cd "$BDWD"
 
332
 
 
333
pexports "$BDBIN/SDL.dll" >SDL.def
 
334
gcc -shared $LDFLAGS -o SDL.dll -def SDL.def "$BDLIB/libSDL.a" -lwinmm -ldxguid
 
335
dlltool -D SDL.dll -d SDL.def -l libSDL.dll.a
 
336
ranlib libSDL.dll.a
 
337
strip --strip-all SDL.dll
 
338
"""),
 
339
    Dependency('Z', ['zlib1.dll'], """
 
340
 
 
341
set -e
 
342
cd "$BDWD"
 
343
 
 
344
pexports "$BDBIN/zlib1.dll" >z.def
 
345
gcc -shared $LDFLAGS -o zlib1.dll -def z.def "$BDLIB/libz.a"
 
346
dlltool -D zlib1.dll -d z.def -l libz.dll.a
 
347
ranlib libz.dll.a
 
348
strip --strip-all zlib1.dll
 
349
"""),
 
350
    Dependency('FREETYPE', ['libfreetype-6.dll'], """
 
351
 
 
352
set -e
 
353
cd "$BDWD"
 
354
 
 
355
pexports "$BDBIN/libfreetype-6.dll" >freetype.def
 
356
gcc -shared $LDFLAGS -L. -o libfreetype-6.dll -def freetype.def \
 
357
  "$BDLIB/libfreetype.a" -lz
 
358
dlltool -D libfreetype-6.dll -d freetype.def -l libfreetype.dll.a
 
359
ranlib libfreetype.dll.a
 
360
strip --strip-all libfreetype-6.dll
 
361
"""),
 
362
    Dependency('FONT', ['SDL_ttf.dll'], """
 
363
 
 
364
set -e
 
365
cd "$BDWD"
 
366
 
 
367
pexports "$BDBIN/SDL_ttf.dll" >SDL_ttf.def
 
368
gcc -shared $LDFLAGS -L. "-L$BDLIB" -o SDL_ttf.dll -def SDL_ttf.def \
 
369
  "$BDLIB/libSDL_ttf.a" -lSDL -lfreetype
 
370
dlltool -D SDL_ttf.dll -d SDL_ttf.def -l libSDL_ttf.dll.a
 
371
ranlib libSDL_ttf.dll.a
 
372
strip --strip-all SDL_ttf.dll
 
373
"""),
 
374
    Dependency('PNG', ['libpng12-0.dll'], """
 
375
 
 
376
set -e
 
377
cd "$BDWD"
 
378
 
 
379
pexports "$BDBIN/libpng12-0.dll" >png.def
 
380
gcc -shared $LDFLAGS -L. -o libpng12-0.dll -def png.def "$BDLIB/libpng.a" -lz
 
381
dlltool -D libpng12-0.dll -d png.def -l libpng.dll.a
 
382
ranlib libpng.dll.a
 
383
strip --strip-all libpng12-0.dll
 
384
"""),
 
385
    Dependency('JPEG', ['jpeg.dll'], """
 
386
 
 
387
set -e
 
388
cd "$BDWD"
 
389
 
 
390
pexports "$BDBIN/jpeg.dll" >jpeg.def
 
391
gcc -shared $LDFLAGS -o jpeg.dll -def jpeg.def "$BDLIB/libjpeg.a"
 
392
dlltool -D jpeg.dll -d jpeg.def -l libjpeg.dll.a
 
393
ranlib libjpeg.dll.a
 
394
strip --strip-all jpeg.dll
 
395
"""),
 
396
    Dependency('TIFF', ['libtiff.dll'], """
 
397
 
 
398
set -e
 
399
cd "$BDWD"
 
400
 
 
401
pexports "$BDBIN/libtiff.dll" >tiff.def
 
402
gcc -shared $LDFLAGS -L. -o libtiff.dll -def tiff.def \
 
403
  "$BDLIB/libtiff.a" -ljpeg -lz
 
404
dlltool -D libtiff.dll -d tiff.def -l libtiff.dll.a
 
405
ranlib libtiff.dll.a
 
406
strip --strip-all libtiff.dll
 
407
"""),
 
408
    Dependency('IMAGE', ['SDL_image.dll'], """
 
409
 
 
410
set -e
 
411
cd "$BDWD"
 
412
 
 
413
pexports "$BDBIN/SDL_image.dll" >SDL_image.def
 
414
gcc -shared $LDFLAGS -L. -o SDL_image.dll -def SDL_image.def \
 
415
  "$BDLIB/libSDL_image.a" -lSDL -ljpeg -lpng -ltiff
 
416
dlltool -D SDL_image.dll -d SDL_image.def -l libSDL_image.dll.a
 
417
ranlib libSDL_image.dll.a
 
418
strip --strip-all SDL_image.dll
 
419
"""),
 
420
    Dependency('SMPEG', ['smpeg.dll'], """
 
421
 
 
422
set -e
 
423
cd "$BDWD"
 
424
 
 
425
pexports "$BDBIN/smpeg.dll" >smpeg.def
 
426
g++ -shared $LDFLAGS -L. -o smpeg.dll -def smpeg.def \
 
427
  "$BDLIB/libsmpeg.a" -lSDL
 
428
dlltool -D smpeg.dll -d smpeg.def -l libsmpeg.dll.a
 
429
ranlib libsmpeg.dll.a
 
430
strip --strip-all smpeg.dll
 
431
"""),
 
432
    Dependency('OGG', ['libogg-0.dll'], """
 
433
 
 
434
set -e
 
435
cd "$BDWD"
 
436
 
 
437
pexports "$BDBIN/libogg-0.dll" >ogg.def
 
438
gcc -shared $LDFLAGS -o libogg-0.dll -def ogg.def "$BDLIB/libogg.a"
 
439
dlltool -D libogg-0.dll -d ogg.def -l libogg.dll.a
 
440
ranlib libogg.dll.a
 
441
strip --strip-all libogg-0.dll
 
442
"""),
 
443
    Dependency('VORBIS', ['libvorbis-0.dll', 'libvorbisfile-3.dll'], """
 
444
 
 
445
set -e
 
446
cd "$BDWD"
 
447
 
 
448
pexports "$BDBIN/libvorbis-0.dll" >vorbis.def
 
449
gcc -shared $LDFLAGS -L. -o libvorbis-0.dll -def vorbis.def \
 
450
  "$BDLIB/libvorbis.a" -logg
 
451
dlltool -D libvorbis-0.dll -d vorbis.def -l libvorbis.dll.a
 
452
ranlib libvorbis.dll.a
 
453
strip --strip-all libvorbis-0.dll
 
454
 
 
455
pexports "$BDBIN/libvorbisfile-3.dll" >vorbisfile.def
 
456
gcc -shared $LDFLAGS -L. -o libvorbisfile-3.dll -def vorbisfile.def \
 
457
  "$BDLIB/libvorbisfile.a" -lvorbis -logg
 
458
dlltool -D libvorbisfile-3.dll -d vorbisfile.def -l libvorbisfile.dll.a
 
459
ranlib libvorbisfile.dll.a
 
460
strip --strip-all libvorbisfile-3.dll
 
461
"""),
 
462
    Dependency('MIXER', ['SDL_mixer.dll'], """
 
463
 
 
464
set -e
 
465
cd "$BDWD"
 
466
 
 
467
pexports "$BDBIN/SDL_mixer.dll" >SDL_mixer.def
 
468
gcc -shared $LDFLAGS -L. -L/usr/local/lib -o SDL_mixer.dll -def SDL_mixer.def \
 
469
  "$BDLIB/libSDL_mixer.a" -lSDL -lsmpeg -lvorbisfile -lFLAC -lWs2_32 -lwinmm
 
470
dlltool -D SDL_mixer.dll -d SDL_mixer.def -l libSDL_mixer.dll.a
 
471
ranlib libSDL_mixer.dll.a
 
472
strip --strip-all SDL_mixer.dll
 
473
"""),
 
474
    Dependency('PORTMIDI', ['portmidi.dll'], """
 
475
 
 
476
set -e
 
477
cd "$BDWD"
 
478
 
 
479
pexports "$BDBIN/portmidi.dll" >portmidi.def
 
480
gcc -shared $LDFLAGS -L. -L/usr/local/lib -o portmidi.dll -def portmidi.def \
 
481
  "$BDLIB/libportmidi.a" -lwinmm
 
482
dlltool -D portmidi.dll -d portmidi.def -l portmidi.dll.a
 
483
ranlib libSDL_mixer.dll.a
 
484
strip --strip-all portmidi.dll
 
485
"""),
 
486
    ]  # End dependencies = [.
 
487
 
 
488
 
 
489
msys_prep = Preparation('/usr/local', """
 
490
 
 
491
# Ensure destination directories exists.
 
492
mkdir -p "$BDWD"
 
493
mkdir -p "$DBMSVCR90"
 
494
""")
 
495
    
 
496
msvcr90_prep = Preparation('msvcr90.dll linkage', r"""
 
497
 
 
498
set -e
 
499
 
 
500
#
 
501
#   msvcr90.dll support
 
502
#
 
503
if [ ! -f "$DBMSVCR90/libmoldnamed.dll.a" ]; then
 
504
  OBJS='isascii.o iscsym.o iscsymf.o toascii.o
 
505
        strcasecmp.o strncasecmp.o wcscmpi.o'
 
506
  if [ ! -d /tmp/build_deps ]; then mkdir /tmp/build_deps; fi
 
507
  cd /tmp/build_deps
 
508
 
 
509
  # These definitions were generated with pexports on msvcr90.dll.
 
510
  # The C++ stuff at the beginning was removed. _onexit and atexit made
 
511
  # data entries.
 
512
  cat > msvcr90.def << 'THE_END'
 
513
EXPORTS
 
514
_CIacos
 
515
_CIasin
 
516
_CIatan
 
517
_CIatan2
 
518
_CIcos
 
519
_CIcosh
 
520
_CIexp
 
521
_CIfmod
 
522
_CIlog
 
523
_CIlog10
 
524
_CIpow
 
525
_CIsin
 
526
_CIsinh
 
527
_CIsqrt
 
528
_CItan
 
529
_CItanh
 
530
_CRT_RTC_INIT
 
531
_CRT_RTC_INITW
 
532
_CreateFrameInfo
 
533
_CxxThrowException
 
534
_EH_prolog
 
535
_FindAndUnlinkFrame
 
536
_Getdays
 
537
_Getmonths
 
538
_Gettnames
 
539
_HUGE DATA
 
540
_IsExceptionObjectToBeDestroyed
 
541
_NLG_Dispatch2
 
542
_NLG_Return
 
543
_NLG_Return2
 
544
_Strftime
 
545
_XcptFilter
 
546
__AdjustPointer
 
547
__BuildCatchObject
 
548
__BuildCatchObjectHelper
 
549
__CppXcptFilter
 
550
__CxxCallUnwindDelDtor
 
551
__CxxCallUnwindDtor
 
552
__CxxCallUnwindStdDelDtor
 
553
__CxxCallUnwindVecDtor
 
554
__CxxDetectRethrow
 
555
__CxxExceptionFilter
 
556
__CxxFrameHandler
 
557
__CxxFrameHandler2
 
558
__CxxFrameHandler3
 
559
__CxxLongjmpUnwind
 
560
__CxxQueryExceptionSize
 
561
__CxxRegisterExceptionObject
 
562
__CxxUnregisterExceptionObject
 
563
__DestructExceptionObject
 
564
__FrameUnwindFilter
 
565
__RTCastToVoid
 
566
__RTDynamicCast
 
567
__RTtypeid
 
568
__STRINGTOLD
 
569
__STRINGTOLD_L
 
570
__TypeMatch
 
571
___fls_getvalue@4
 
572
___fls_setvalue@8
 
573
___lc_codepage_func
 
574
___lc_collate_cp_func
 
575
___lc_handle_func
 
576
___mb_cur_max_func
 
577
___mb_cur_max_l_func
 
578
___setlc_active_func
 
579
___unguarded_readlc_active_add_func
 
580
__argc DATA
 
581
__argv DATA
 
582
__badioinfo DATA
 
583
__clean_type_info_names_internal
 
584
__control87_2
 
585
__create_locale
 
586
__crtCompareStringA
 
587
__crtCompareStringW
 
588
__crtGetLocaleInfoW
 
589
__crtGetStringTypeW
 
590
__crtLCMapStringA
 
591
__crtLCMapStringW
 
592
__daylight
 
593
__dllonexit
 
594
__doserrno
 
595
__dstbias
 
596
__fpecode
 
597
__free_locale
 
598
__get_app_type
 
599
__get_current_locale
 
600
__get_flsindex
 
601
__get_tlsindex
 
602
__getmainargs
 
603
__initenv DATA
 
604
__iob_func
 
605
__isascii
 
606
__iscsym
 
607
__iscsymf
 
608
__iswcsym
 
609
__iswcsymf
 
610
__lc_clike DATA
 
611
__lc_codepage DATA
 
612
__lc_collate_cp DATA
 
613
__lc_handle DATA
 
614
__lconv DATA
 
615
__lconv_init
 
616
__libm_sse2_acos
 
617
__libm_sse2_acosf
 
618
__libm_sse2_asin
 
619
__libm_sse2_asinf
 
620
__libm_sse2_atan
 
621
__libm_sse2_atan2
 
622
__libm_sse2_atanf
 
623
__libm_sse2_cos
 
624
__libm_sse2_cosf
 
625
__libm_sse2_exp
 
626
__libm_sse2_expf
 
627
__libm_sse2_log
 
628
__libm_sse2_log10
 
629
__libm_sse2_log10f
 
630
__libm_sse2_logf
 
631
__libm_sse2_pow
 
632
__libm_sse2_powf
 
633
__libm_sse2_sin
 
634
__libm_sse2_sinf
 
635
__libm_sse2_tan
 
636
__libm_sse2_tanf
 
637
__mb_cur_max DATA
 
638
__p___argc
 
639
__p___argv
 
640
__p___initenv
 
641
__p___mb_cur_max
 
642
__p___wargv
 
643
__p___winitenv
 
644
__p__acmdln
 
645
__p__amblksiz
 
646
__p__commode
 
647
__p__daylight
 
648
__p__dstbias
 
649
__p__environ
 
650
__p__fmode
 
651
__p__iob
 
652
__p__mbcasemap
 
653
__p__mbctype
 
654
__p__pctype
 
655
__p__pgmptr
 
656
__p__pwctype
 
657
__p__timezone
 
658
__p__tzname
 
659
__p__wcmdln
 
660
__p__wenviron
 
661
__p__wpgmptr
 
662
__pctype_func
 
663
__pioinfo DATA
 
664
__pwctype_func
 
665
__pxcptinfoptrs
 
666
__report_gsfailure
 
667
__set_app_type
 
668
__set_flsgetvalue
 
669
__setlc_active DATA
 
670
__setusermatherr
 
671
__strncnt
 
672
__swprintf_l
 
673
__sys_errlist
 
674
__sys_nerr
 
675
__threadhandle
 
676
__threadid
 
677
__timezone
 
678
__toascii
 
679
__tzname
 
680
__unDName
 
681
__unDNameEx
 
682
__unDNameHelper
 
683
__uncaught_exception
 
684
__unguarded_readlc_active DATA
 
685
__vswprintf_l
 
686
__wargv DATA
 
687
__wcserror
 
688
__wcserror_s
 
689
__wcsncnt
 
690
__wgetmainargs
 
691
__winitenv DATA
 
692
_abnormal_termination
 
693
_abs64
 
694
_access
 
695
_access_s
 
696
_acmdln DATA
 
697
_adj_fdiv_m16i
 
698
_adj_fdiv_m32
 
699
_adj_fdiv_m32i
 
700
_adj_fdiv_m64
 
701
_adj_fdiv_r
 
702
_adj_fdivr_m16i
 
703
_adj_fdivr_m32
 
704
_adj_fdivr_m32i
 
705
_adj_fdivr_m64
 
706
_adj_fpatan
 
707
_adj_fprem
 
708
_adj_fprem1
 
709
_adj_fptan
 
710
_adjust_fdiv DATA
 
711
_aexit_rtn DATA
 
712
_aligned_free
 
713
_aligned_malloc
 
714
_aligned_msize
 
715
_aligned_offset_malloc
 
716
_aligned_offset_realloc
 
717
_aligned_offset_recalloc
 
718
_aligned_realloc
 
719
_aligned_recalloc
 
720
_amsg_exit
 
721
_assert
 
722
_atodbl
 
723
_atodbl_l
 
724
_atof_l
 
725
_atoflt
 
726
_atoflt_l
 
727
_atoi64
 
728
_atoi64_l
 
729
_atoi_l
 
730
_atol_l
 
731
_atoldbl
 
732
_atoldbl_l
 
733
_beep
 
734
_beginthread
 
735
_beginthreadex
 
736
_byteswap_uint64
 
737
_byteswap_ulong
 
738
_byteswap_ushort
 
739
_c_exit
 
740
_cabs
 
741
_callnewh
 
742
_calloc_crt
 
743
_cexit
 
744
_cgets
 
745
_cgets_s
 
746
_cgetws
 
747
_cgetws_s
 
748
_chdir
 
749
_chdrive
 
750
_chgsign
 
751
_chkesp
 
752
_chmod
 
753
_chsize
 
754
_chsize_s
 
755
_clearfp
 
756
_close
 
757
_commit
 
758
_commode DATA
 
759
_configthreadlocale
 
760
_control87
 
761
_controlfp
 
762
_controlfp_s
 
763
_copysign
 
764
_cprintf
 
765
_cprintf_l
 
766
_cprintf_p
 
767
_cprintf_p_l
 
768
_cprintf_s
 
769
_cprintf_s_l
 
770
_cputs
 
771
_cputws
 
772
_creat
 
773
_create_locale
 
774
_crt_debugger_hook
 
775
_cscanf
 
776
_cscanf_l
 
777
_cscanf_s
 
778
_cscanf_s_l
 
779
_ctime32
 
780
_ctime32_s
 
781
_ctime64
 
782
_ctime64_s
 
783
_cwait
 
784
_cwprintf
 
785
_cwprintf_l
 
786
_cwprintf_p
 
787
_cwprintf_p_l
 
788
_cwprintf_s
 
789
_cwprintf_s_l
 
790
_cwscanf
 
791
_cwscanf_l
 
792
_cwscanf_s
 
793
_cwscanf_s_l
 
794
_daylight DATA
 
795
_decode_pointer
 
796
_difftime32
 
797
_difftime64
 
798
_dosmaperr
 
799
_dstbias DATA
 
800
_dup
 
801
_dup2
 
802
_dupenv_s
 
803
_ecvt
 
804
_ecvt_s
 
805
_encode_pointer
 
806
_encoded_null
 
807
_endthread
 
808
_endthreadex
 
809
_environ DATA
 
810
_eof
 
811
_errno
 
812
_except_handler2
 
813
_except_handler3
 
814
_except_handler4_common
 
815
_execl
 
816
_execle
 
817
_execlp
 
818
_execlpe
 
819
_execv
 
820
_execve
 
821
_execvp
 
822
_execvpe
 
823
_exit
 
824
_expand
 
825
_fclose_nolock
 
826
_fcloseall
 
827
_fcvt
 
828
_fcvt_s
 
829
_fdopen
 
830
_fflush_nolock
 
831
_fgetchar
 
832
_fgetwc_nolock
 
833
_fgetwchar
 
834
_filbuf
 
835
_filelength
 
836
_filelengthi64
 
837
_fileno
 
838
_findclose
 
839
_findfirst32
 
840
_findfirst32i64
 
841
_findfirst64
 
842
_findfirst64i32
 
843
_findnext32
 
844
_findnext32i64
 
845
_findnext64
 
846
_findnext64i32
 
847
_finite
 
848
_flsbuf
 
849
_flushall
 
850
_fmode DATA
 
851
_fpclass
 
852
_fpieee_flt
 
853
_fpreset
 
854
_fprintf_l
 
855
_fprintf_p
 
856
_fprintf_p_l
 
857
_fprintf_s_l
 
858
_fputchar
 
859
_fputwc_nolock
 
860
_fputwchar
 
861
_fread_nolock
 
862
_fread_nolock_s
 
863
_free_locale
 
864
_freea
 
865
_freea_s
 
866
_freefls
 
867
_fscanf_l
 
868
_fscanf_s_l
 
869
_fseek_nolock
 
870
_fseeki64
 
871
_fseeki64_nolock
 
872
_fsopen
 
873
_fstat32
 
874
_fstat32i64
 
875
_fstat64
 
876
_fstat64i32
 
877
_ftell_nolock
 
878
_ftelli64
 
879
_ftelli64_nolock
 
880
_ftime32
 
881
_ftime32_s
 
882
_ftime64
 
883
_ftime64_s
 
884
_ftol
 
885
_fullpath
 
886
_futime32
 
887
_futime64
 
888
_fwprintf_l
 
889
_fwprintf_p
 
890
_fwprintf_p_l
 
891
_fwprintf_s_l
 
892
_fwrite_nolock
 
893
_fwscanf_l
 
894
_fwscanf_s_l
 
895
_gcvt
 
896
_gcvt_s
 
897
_get_amblksiz
 
898
_get_current_locale
 
899
_get_daylight
 
900
_get_doserrno
 
901
_get_dstbias
 
902
_get_errno
 
903
_get_fmode
 
904
_get_heap_handle
 
905
_get_invalid_parameter_handler
 
906
_get_osfhandle
 
907
_get_output_format
 
908
_get_pgmptr
 
909
_get_printf_count_output
 
910
_get_purecall_handler
 
911
_get_sbh_threshold
 
912
_get_terminate
 
913
_get_timezone
 
914
_get_tzname
 
915
_get_unexpected
 
916
_get_wpgmptr
 
917
_getc_nolock
 
918
_getch
 
919
_getch_nolock
 
920
_getche
 
921
_getche_nolock
 
922
_getcwd
 
923
_getdcwd
 
924
_getdcwd_nolock
 
925
_getdiskfree
 
926
_getdllprocaddr
 
927
_getdrive
 
928
_getdrives
 
929
_getmaxstdio
 
930
_getmbcp
 
931
_getpid
 
932
_getptd
 
933
_getsystime
 
934
_getw
 
935
_getwch
 
936
_getwch_nolock
 
937
_getwche
 
938
_getwche_nolock
 
939
_getws
 
940
_getws_s
 
941
_global_unwind2
 
942
_gmtime32
 
943
_gmtime32_s
 
944
_gmtime64
 
945
_gmtime64_s
 
946
_heapadd
 
947
_heapchk
 
948
_heapmin
 
949
_heapset
 
950
_heapused
 
951
_heapwalk
 
952
_hypot
 
953
_hypotf
 
954
_i64toa
 
955
_i64toa_s
 
956
_i64tow
 
957
_i64tow_s
 
958
_initptd
 
959
_initterm
 
960
_initterm_e
 
961
_inp
 
962
_inpd
 
963
_inpw
 
964
_invalid_parameter
 
965
_invalid_parameter_noinfo
 
966
_invoke_watson
 
967
_iob DATA
 
968
_isalnum_l
 
969
_isalpha_l
 
970
_isatty
 
971
_iscntrl_l
 
972
_isctype
 
973
_isctype_l
 
974
_isdigit_l
 
975
_isgraph_l
 
976
_isleadbyte_l
 
977
_islower_l
 
978
_ismbbalnum
 
979
_ismbbalnum_l
 
980
_ismbbalpha
 
981
_ismbbalpha_l
 
982
_ismbbgraph
 
983
_ismbbgraph_l
 
984
_ismbbkalnum
 
985
_ismbbkalnum_l
 
986
_ismbbkana
 
987
_ismbbkana_l
 
988
_ismbbkprint
 
989
_ismbbkprint_l
 
990
_ismbbkpunct
 
991
_ismbbkpunct_l
 
992
_ismbblead
 
993
_ismbblead_l
 
994
_ismbbprint
 
995
_ismbbprint_l
 
996
_ismbbpunct
 
997
_ismbbpunct_l
 
998
_ismbbtrail
 
999
_ismbbtrail_l
 
1000
_ismbcalnum
 
1001
_ismbcalnum_l
 
1002
_ismbcalpha
 
1003
_ismbcalpha_l
 
1004
_ismbcdigit
 
1005
_ismbcdigit_l
 
1006
_ismbcgraph
 
1007
_ismbcgraph_l
 
1008
_ismbchira
 
1009
_ismbchira_l
 
1010
_ismbckata
 
1011
_ismbckata_l
 
1012
_ismbcl0
 
1013
_ismbcl0_l
 
1014
_ismbcl1
 
1015
_ismbcl1_l
 
1016
_ismbcl2
 
1017
_ismbcl2_l
 
1018
_ismbclegal
 
1019
_ismbclegal_l
 
1020
_ismbclower
 
1021
_ismbclower_l
 
1022
_ismbcprint
 
1023
_ismbcprint_l
 
1024
_ismbcpunct
 
1025
_ismbcpunct_l
 
1026
_ismbcspace
 
1027
_ismbcspace_l
 
1028
_ismbcsymbol
 
1029
_ismbcsymbol_l
 
1030
_ismbcupper
 
1031
_ismbcupper_l
 
1032
_ismbslead
 
1033
_ismbslead_l
 
1034
_ismbstrail
 
1035
_ismbstrail_l
 
1036
_isnan
 
1037
_isprint_l
 
1038
_ispunct_l
 
1039
_isspace_l
 
1040
_isupper_l
 
1041
_iswalnum_l
 
1042
_iswalpha_l
 
1043
_iswcntrl_l
 
1044
_iswcsym_l
 
1045
_iswcsymf_l
 
1046
_iswctype_l
 
1047
_iswdigit_l
 
1048
_iswgraph_l
 
1049
_iswlower_l
 
1050
_iswprint_l
 
1051
_iswpunct_l
 
1052
_iswspace_l
 
1053
_iswupper_l
 
1054
_iswxdigit_l
 
1055
_isxdigit_l
 
1056
_itoa
 
1057
_itoa_s
 
1058
_itow
 
1059
_itow_s
 
1060
_j0
 
1061
_j1
 
1062
_jn
 
1063
_kbhit
 
1064
_lfind
 
1065
_lfind_s
 
1066
_loaddll
 
1067
_local_unwind2
 
1068
_local_unwind4
 
1069
_localtime32
 
1070
_localtime32_s
 
1071
_localtime64
 
1072
_localtime64_s
 
1073
_lock
 
1074
_lock_file
 
1075
_locking
 
1076
_logb
 
1077
_longjmpex
 
1078
_lrotl
 
1079
_lrotr
 
1080
_lsearch
 
1081
_lsearch_s
 
1082
_lseek
 
1083
_lseeki64
 
1084
_ltoa
 
1085
_ltoa_s
 
1086
_ltow
 
1087
_ltow_s
 
1088
_makepath
 
1089
_makepath_s
 
1090
_malloc_crt
 
1091
_mbbtombc
 
1092
_mbbtombc_l
 
1093
_mbbtype
 
1094
_mbbtype_l
 
1095
_mbcasemap DATA
 
1096
_mbccpy
 
1097
_mbccpy_l
 
1098
_mbccpy_s
 
1099
_mbccpy_s_l
 
1100
_mbcjistojms
 
1101
_mbcjistojms_l
 
1102
_mbcjmstojis
 
1103
_mbcjmstojis_l
 
1104
_mbclen
 
1105
_mbclen_l
 
1106
_mbctohira
 
1107
_mbctohira_l
 
1108
_mbctokata
 
1109
_mbctokata_l
 
1110
_mbctolower
 
1111
_mbctolower_l
 
1112
_mbctombb
 
1113
_mbctombb_l
 
1114
_mbctoupper
 
1115
_mbctoupper_l
 
1116
_mbctype DATA
 
1117
_mblen_l
 
1118
_mbsbtype
 
1119
_mbsbtype_l
 
1120
_mbscat_s
 
1121
_mbscat_s_l
 
1122
_mbschr
 
1123
_mbschr_l
 
1124
_mbscmp
 
1125
_mbscmp_l
 
1126
_mbscoll
 
1127
_mbscoll_l
 
1128
_mbscpy_s
 
1129
_mbscpy_s_l
 
1130
_mbscspn
 
1131
_mbscspn_l
 
1132
_mbsdec
 
1133
_mbsdec_l
 
1134
_mbsicmp
 
1135
_mbsicmp_l
 
1136
_mbsicoll
 
1137
_mbsicoll_l
 
1138
_mbsinc
 
1139
_mbsinc_l
 
1140
_mbslen
 
1141
_mbslen_l
 
1142
_mbslwr
 
1143
_mbslwr_l
 
1144
_mbslwr_s
 
1145
_mbslwr_s_l
 
1146
_mbsnbcat
 
1147
_mbsnbcat_l
 
1148
_mbsnbcat_s
 
1149
_mbsnbcat_s_l
 
1150
_mbsnbcmp
 
1151
_mbsnbcmp_l
 
1152
_mbsnbcnt
 
1153
_mbsnbcnt_l
 
1154
_mbsnbcoll
 
1155
_mbsnbcoll_l
 
1156
_mbsnbcpy
 
1157
_mbsnbcpy_l
 
1158
_mbsnbcpy_s
 
1159
_mbsnbcpy_s_l
 
1160
_mbsnbicmp
 
1161
_mbsnbicmp_l
 
1162
_mbsnbicoll
 
1163
_mbsnbicoll_l
 
1164
_mbsnbset
 
1165
_mbsnbset_l
 
1166
_mbsnbset_s
 
1167
_mbsnbset_s_l
 
1168
_mbsncat
 
1169
_mbsncat_l
 
1170
_mbsncat_s
 
1171
_mbsncat_s_l
 
1172
_mbsnccnt
 
1173
_mbsnccnt_l
 
1174
_mbsncmp
 
1175
_mbsncmp_l
 
1176
_mbsncoll
 
1177
_mbsncoll_l
 
1178
_mbsncpy
 
1179
_mbsncpy_l
 
1180
_mbsncpy_s
 
1181
_mbsncpy_s_l
 
1182
_mbsnextc
 
1183
_mbsnextc_l
 
1184
_mbsnicmp
 
1185
_mbsnicmp_l
 
1186
_mbsnicoll
 
1187
_mbsnicoll_l
 
1188
_mbsninc
 
1189
_mbsninc_l
 
1190
_mbsnlen
 
1191
_mbsnlen_l
 
1192
_mbsnset
 
1193
_mbsnset_l
 
1194
_mbsnset_s
 
1195
_mbsnset_s_l
 
1196
_mbspbrk
 
1197
_mbspbrk_l
 
1198
_mbsrchr
 
1199
_mbsrchr_l
 
1200
_mbsrev
 
1201
_mbsrev_l
 
1202
_mbsset
 
1203
_mbsset_l
 
1204
_mbsset_s
 
1205
_mbsset_s_l
 
1206
_mbsspn
 
1207
_mbsspn_l
 
1208
_mbsspnp
 
1209
_mbsspnp_l
 
1210
_mbsstr
 
1211
_mbsstr_l
 
1212
_mbstok
 
1213
_mbstok_l
 
1214
_mbstok_s
 
1215
_mbstok_s_l
 
1216
_mbstowcs_l
 
1217
_mbstowcs_s_l
 
1218
_mbstrlen
 
1219
_mbstrlen_l
 
1220
_mbstrnlen
 
1221
_mbstrnlen_l
 
1222
_mbsupr
 
1223
_mbsupr_l
 
1224
_mbsupr_s
 
1225
_mbsupr_s_l
 
1226
_mbtowc_l
 
1227
_memccpy
 
1228
_memicmp
 
1229
_memicmp_l
 
1230
_mkdir
 
1231
_mkgmtime32
 
1232
_mkgmtime64
 
1233
_mktemp
 
1234
_mktemp_s
 
1235
_mktime32
 
1236
_mktime64
 
1237
_msize
 
1238
_nextafter
 
1239
_onexit DATA
 
1240
_open
 
1241
_open_osfhandle
 
1242
_outp
 
1243
_outpd
 
1244
_outpw
 
1245
_pclose
 
1246
_pctype DATA
 
1247
_pgmptr DATA
 
1248
_pipe
 
1249
_popen
 
1250
_printf_l
 
1251
_printf_p
 
1252
_printf_p_l
 
1253
_printf_s_l
 
1254
_purecall
 
1255
_putch
 
1256
_putch_nolock
 
1257
_putenv
 
1258
_putenv_s
 
1259
_putw
 
1260
_putwch
 
1261
_putwch_nolock
 
1262
_putws
 
1263
_pwctype DATA
 
1264
_read
 
1265
_realloc_crt
 
1266
_recalloc
 
1267
_recalloc_crt
 
1268
_resetstkoflw
 
1269
_rmdir
 
1270
_rmtmp
 
1271
_rotl
 
1272
_rotl64
 
1273
_rotr
 
1274
_rotr64
 
1275
_safe_fdiv
 
1276
_safe_fdivr
 
1277
_safe_fprem
 
1278
_safe_fprem1
 
1279
_scalb
 
1280
_scanf_l
 
1281
_scanf_s_l
 
1282
_scprintf
 
1283
_scprintf_l
 
1284
_scprintf_p
 
1285
_scprintf_p_l
 
1286
_scwprintf
 
1287
_scwprintf_l
 
1288
_scwprintf_p
 
1289
_scwprintf_p_l
 
1290
_searchenv
 
1291
_searchenv_s
 
1292
_seh_longjmp_unwind
 
1293
_seh_longjmp_unwind4
 
1294
_set_SSE2_enable
 
1295
_set_abort_behavior
 
1296
_set_amblksiz
 
1297
_set_controlfp
 
1298
_set_doserrno
 
1299
_set_errno
 
1300
_set_error_mode
 
1301
_set_fmode
 
1302
_set_invalid_parameter_handler
 
1303
_set_malloc_crt_max_wait
 
1304
_set_output_format
 
1305
_set_printf_count_output
 
1306
_set_purecall_handler
 
1307
_set_sbh_threshold
 
1308
_seterrormode
 
1309
_setjmp
 
1310
_setjmp3
 
1311
_setmaxstdio
 
1312
_setmbcp
 
1313
_setmode
 
1314
_setsystime
 
1315
_sleep
 
1316
_snprintf
 
1317
_snprintf_c
 
1318
_snprintf_c_l
 
1319
_snprintf_l
 
1320
_snprintf_s
 
1321
_snprintf_s_l
 
1322
_snscanf
 
1323
_snscanf_l
 
1324
_snscanf_s
 
1325
_snscanf_s_l
 
1326
_snwprintf
 
1327
_snwprintf_l
 
1328
_snwprintf_s
 
1329
_snwprintf_s_l
 
1330
_snwscanf
 
1331
_snwscanf_l
 
1332
_snwscanf_s
 
1333
_snwscanf_s_l
 
1334
_sopen
 
1335
_sopen_s
 
1336
_spawnl
 
1337
_spawnle
 
1338
_spawnlp
 
1339
_spawnlpe
 
1340
_spawnv
 
1341
_spawnve
 
1342
_spawnvp
 
1343
_spawnvpe
 
1344
_splitpath
 
1345
_splitpath_s
 
1346
_sprintf_l
 
1347
_sprintf_p
 
1348
_sprintf_p_l
 
1349
_sprintf_s_l
 
1350
_sscanf_l
 
1351
_sscanf_s_l
 
1352
_stat32
 
1353
_stat32i64
 
1354
_stat64
 
1355
_stat64i32
 
1356
_statusfp
 
1357
_statusfp2
 
1358
_strcoll_l
 
1359
_strdate
 
1360
_strdate_s
 
1361
_strdup
 
1362
_strerror
 
1363
_strerror_s
 
1364
_strftime_l
 
1365
_stricmp
 
1366
_stricmp_l
 
1367
_stricoll
 
1368
_stricoll_l
 
1369
_strlwr
 
1370
_strlwr_l
 
1371
_strlwr_s
 
1372
_strlwr_s_l
 
1373
_strncoll
 
1374
_strncoll_l
 
1375
_strnicmp
 
1376
_strnicmp_l
 
1377
_strnicoll
 
1378
_strnicoll_l
 
1379
_strnset
 
1380
_strnset_s
 
1381
_strrev
 
1382
_strset
 
1383
_strset_s
 
1384
_strtime
 
1385
_strtime_s
 
1386
_strtod_l
 
1387
_strtoi64
 
1388
_strtoi64_l
 
1389
_strtol_l
 
1390
_strtoui64
 
1391
_strtoui64_l
 
1392
_strtoul_l
 
1393
_strupr
 
1394
_strupr_l
 
1395
_strupr_s
 
1396
_strupr_s_l
 
1397
_strxfrm_l
 
1398
_swab
 
1399
_swprintf
 
1400
_swprintf_c
 
1401
_swprintf_c_l
 
1402
_swprintf_p
 
1403
_swprintf_p_l
 
1404
_swprintf_s_l
 
1405
_swscanf_l
 
1406
_swscanf_s_l
 
1407
_sys_errlist DATA
 
1408
_sys_nerr DATA
 
1409
_tell
 
1410
_telli64
 
1411
_tempnam
 
1412
_time32
 
1413
_time64
 
1414
_timezone DATA
 
1415
_tolower
 
1416
_tolower_l
 
1417
_toupper
 
1418
_toupper_l
 
1419
_towlower_l
 
1420
_towupper_l
 
1421
_tzname DATA
 
1422
_tzset
 
1423
_ui64toa
 
1424
_ui64toa_s
 
1425
_ui64tow
 
1426
_ui64tow_s
 
1427
_ultoa
 
1428
_ultoa_s
 
1429
_ultow
 
1430
_ultow_s
 
1431
_umask
 
1432
_umask_s
 
1433
_ungetc_nolock
 
1434
_ungetch
 
1435
_ungetch_nolock
 
1436
_ungetwc_nolock
 
1437
_ungetwch
 
1438
_ungetwch_nolock
 
1439
_unlink
 
1440
_unloaddll
 
1441
_unlock
 
1442
_unlock_file
 
1443
_utime32
 
1444
_utime64
 
1445
_vcprintf
 
1446
_vcprintf_l
 
1447
_vcprintf_p
 
1448
_vcprintf_p_l
 
1449
_vcprintf_s
 
1450
_vcprintf_s_l
 
1451
_vcwprintf
 
1452
_vcwprintf_l
 
1453
_vcwprintf_p
 
1454
_vcwprintf_p_l
 
1455
_vcwprintf_s
 
1456
_vcwprintf_s_l
 
1457
_vfprintf_l
 
1458
_vfprintf_p
 
1459
_vfprintf_p_l
 
1460
_vfprintf_s_l
 
1461
_vfwprintf_l
 
1462
_vfwprintf_p
 
1463
_vfwprintf_p_l
 
1464
_vfwprintf_s_l
 
1465
_vprintf_l
 
1466
_vprintf_p
 
1467
_vprintf_p_l
 
1468
_vprintf_s_l
 
1469
_vscprintf
 
1470
_vscprintf_l
 
1471
_vscprintf_p
 
1472
_vscprintf_p_l
 
1473
_vscwprintf
 
1474
_vscwprintf_l
 
1475
_vscwprintf_p
 
1476
_vscwprintf_p_l
 
1477
_vsnprintf
 
1478
_vsnprintf_c
 
1479
_vsnprintf_c_l
 
1480
_vsnprintf_l
 
1481
_vsnprintf_s
 
1482
_vsnprintf_s_l
 
1483
_vsnwprintf
 
1484
_vsnwprintf_l
 
1485
_vsnwprintf_s
 
1486
_vsnwprintf_s_l
 
1487
_vsprintf_l
 
1488
_vsprintf_p
 
1489
_vsprintf_p_l
 
1490
_vsprintf_s_l
 
1491
_vswprintf
 
1492
_vswprintf_c
 
1493
_vswprintf_c_l
 
1494
_vswprintf_l
 
1495
_vswprintf_p
 
1496
_vswprintf_p_l
 
1497
_vswprintf_s_l
 
1498
_vwprintf_l
 
1499
_vwprintf_p
 
1500
_vwprintf_p_l
 
1501
_vwprintf_s_l
 
1502
_waccess
 
1503
_waccess_s
 
1504
_wasctime
 
1505
_wasctime_s
 
1506
_wassert
 
1507
_wchdir
 
1508
_wchmod
 
1509
_wcmdln DATA
 
1510
_wcreat
 
1511
_wcscoll_l
 
1512
_wcsdup
 
1513
_wcserror
 
1514
_wcserror_s
 
1515
_wcsftime_l
 
1516
_wcsicmp
 
1517
_wcsicmp_l
 
1518
_wcsicoll
 
1519
_wcsicoll_l
 
1520
_wcslwr
 
1521
_wcslwr_l
 
1522
_wcslwr_s
 
1523
_wcslwr_s_l
 
1524
_wcsncoll
 
1525
_wcsncoll_l
 
1526
_wcsnicmp
 
1527
_wcsnicmp_l
 
1528
_wcsnicoll
 
1529
_wcsnicoll_l
 
1530
_wcsnset
 
1531
_wcsnset_s
 
1532
_wcsrev
 
1533
_wcsset
 
1534
_wcsset_s
 
1535
_wcstod_l
 
1536
_wcstoi64
 
1537
_wcstoi64_l
 
1538
_wcstol_l
 
1539
_wcstombs_l
 
1540
_wcstombs_s_l
 
1541
_wcstoui64
 
1542
_wcstoui64_l
 
1543
_wcstoul_l
 
1544
_wcsupr
 
1545
_wcsupr_l
 
1546
_wcsupr_s
 
1547
_wcsupr_s_l
 
1548
_wcsxfrm_l
 
1549
_wctime32
 
1550
_wctime32_s
 
1551
_wctime64
 
1552
_wctime64_s
 
1553
_wctomb_l
 
1554
_wctomb_s_l
 
1555
_wctype
 
1556
_wdupenv_s
 
1557
_wenviron DATA
 
1558
_wexecl
 
1559
_wexecle
 
1560
_wexeclp
 
1561
_wexeclpe
 
1562
_wexecv
 
1563
_wexecve
 
1564
_wexecvp
 
1565
_wexecvpe
 
1566
_wfdopen
 
1567
_wfindfirst32
 
1568
_wfindfirst32i64
 
1569
_wfindfirst64
 
1570
_wfindfirst64i32
 
1571
_wfindnext32
 
1572
_wfindnext32i64
 
1573
_wfindnext64
 
1574
_wfindnext64i32
 
1575
_wfopen
 
1576
_wfopen_s
 
1577
_wfreopen
 
1578
_wfreopen_s
 
1579
_wfsopen
 
1580
_wfullpath
 
1581
_wgetcwd
 
1582
_wgetdcwd
 
1583
_wgetdcwd_nolock
 
1584
_wgetenv
 
1585
_wgetenv_s
 
1586
_wmakepath
 
1587
_wmakepath_s
 
1588
_wmkdir
 
1589
_wmktemp
 
1590
_wmktemp_s
 
1591
_wopen
 
1592
_wperror
 
1593
_wpgmptr DATA
 
1594
_wpopen
 
1595
_wprintf_l
 
1596
_wprintf_p
 
1597
_wprintf_p_l
 
1598
_wprintf_s_l
 
1599
_wputenv
 
1600
_wputenv_s
 
1601
_wremove
 
1602
_wrename
 
1603
_write
 
1604
_wrmdir
 
1605
_wscanf_l
 
1606
_wscanf_s_l
 
1607
_wsearchenv
 
1608
_wsearchenv_s
 
1609
_wsetlocale
 
1610
_wsopen
 
1611
_wsopen_s
 
1612
_wspawnl
 
1613
_wspawnle
 
1614
_wspawnlp
 
1615
_wspawnlpe
 
1616
_wspawnv
 
1617
_wspawnve
 
1618
_wspawnvp
 
1619
_wspawnvpe
 
1620
_wsplitpath
 
1621
_wsplitpath_s
 
1622
_wstat32
 
1623
_wstat32i64
 
1624
_wstat64
 
1625
_wstat64i32
 
1626
_wstrdate
 
1627
_wstrdate_s
 
1628
_wstrtime
 
1629
_wstrtime_s
 
1630
_wsystem
 
1631
_wtempnam
 
1632
_wtmpnam
 
1633
_wtmpnam_s
 
1634
_wtof
 
1635
_wtof_l
 
1636
_wtoi
 
1637
_wtoi64
 
1638
_wtoi64_l
 
1639
_wtoi_l
 
1640
_wtol
 
1641
_wtol_l
 
1642
_wunlink
 
1643
_wutime32
 
1644
_wutime64
 
1645
_y0
 
1646
_y1
 
1647
_yn
 
1648
abort
 
1649
abs
 
1650
acos
 
1651
asctime
 
1652
asctime_s
 
1653
asin
 
1654
atan
 
1655
atan2
 
1656
atexit DATA
 
1657
atof
 
1658
atoi
 
1659
atol
 
1660
bsearch
 
1661
bsearch_s
 
1662
btowc
 
1663
calloc
 
1664
ceil
 
1665
clearerr
 
1666
clearerr_s
 
1667
clock
 
1668
cos
 
1669
cosh
 
1670
div
 
1671
exit
 
1672
exp
 
1673
fabs
 
1674
fclose
 
1675
feof
 
1676
ferror
 
1677
fflush
 
1678
fgetc
 
1679
fgetpos
 
1680
fgets
 
1681
fgetwc
 
1682
fgetws
 
1683
floor
 
1684
fmod
 
1685
fopen
 
1686
fopen_s
 
1687
fprintf
 
1688
fprintf_s
 
1689
fputc
 
1690
fputs
 
1691
fputwc
 
1692
fputws
 
1693
fread
 
1694
fread_s
 
1695
free
 
1696
freopen
 
1697
freopen_s
 
1698
frexp
 
1699
fscanf
 
1700
fscanf_s
 
1701
fseek
 
1702
fsetpos
 
1703
ftell
 
1704
fwprintf
 
1705
fwprintf_s
 
1706
fwrite
 
1707
fwscanf
 
1708
fwscanf_s
 
1709
getc
 
1710
getchar
 
1711
getenv
 
1712
getenv_s
 
1713
gets
 
1714
gets_s
 
1715
getwc
 
1716
getwchar
 
1717
is_wctype
 
1718
isalnum
 
1719
isalpha
 
1720
iscntrl
 
1721
isdigit
 
1722
isgraph
 
1723
isleadbyte
 
1724
islower
 
1725
isprint
 
1726
ispunct
 
1727
isspace
 
1728
isupper
 
1729
iswalnum
 
1730
iswalpha
 
1731
iswascii
 
1732
iswcntrl
 
1733
iswctype
 
1734
iswdigit
 
1735
iswgraph
 
1736
iswlower
 
1737
iswprint
 
1738
iswpunct
 
1739
iswspace
 
1740
iswupper
 
1741
iswxdigit
 
1742
isxdigit
 
1743
labs
 
1744
ldexp
 
1745
ldiv
 
1746
localeconv
 
1747
log
 
1748
log10
 
1749
longjmp
 
1750
malloc
 
1751
mblen
 
1752
mbrlen
 
1753
mbrtowc
 
1754
mbsrtowcs
 
1755
mbsrtowcs_s
 
1756
mbstowcs
 
1757
mbstowcs_s
 
1758
mbtowc
 
1759
memchr
 
1760
memcmp
 
1761
memcpy
 
1762
memcpy_s
 
1763
memmove
 
1764
memmove_s
 
1765
memset
 
1766
modf
 
1767
perror
 
1768
pow
 
1769
printf
 
1770
printf_s
 
1771
putc
 
1772
putchar
 
1773
puts
 
1774
putwc
 
1775
putwchar
 
1776
qsort
 
1777
qsort_s
 
1778
raise
 
1779
rand
 
1780
rand_s
 
1781
realloc
 
1782
remove
 
1783
rename
 
1784
rewind
 
1785
scanf
 
1786
scanf_s
 
1787
setbuf
 
1788
setlocale
 
1789
setvbuf
 
1790
signal
 
1791
sin
 
1792
sinh
 
1793
sprintf
 
1794
sprintf_s
 
1795
sqrt
 
1796
srand
 
1797
sscanf
 
1798
sscanf_s
 
1799
strcat
 
1800
strcat_s
 
1801
strchr
 
1802
strcmp
 
1803
strcoll
 
1804
strcpy
 
1805
strcpy_s
 
1806
strcspn
 
1807
strerror
 
1808
strerror_s
 
1809
strftime
 
1810
strlen
 
1811
strncat
 
1812
strncat_s
 
1813
strncmp
 
1814
strncpy
 
1815
strncpy_s
 
1816
strnlen
 
1817
strpbrk
 
1818
strrchr
 
1819
strspn
 
1820
strstr
 
1821
strtod
 
1822
strtok
 
1823
strtok_s
 
1824
strtol
 
1825
strtoul
 
1826
strxfrm
 
1827
swprintf_s
 
1828
swscanf
 
1829
swscanf_s
 
1830
system
 
1831
tan
 
1832
tanh
 
1833
tmpfile
 
1834
tmpfile_s
 
1835
tmpnam
 
1836
tmpnam_s
 
1837
tolower
 
1838
toupper
 
1839
towlower
 
1840
towupper
 
1841
ungetc
 
1842
ungetwc
 
1843
vfprintf
 
1844
vfprintf_s
 
1845
vfwprintf
 
1846
vfwprintf_s
 
1847
vprintf
 
1848
vprintf_s
 
1849
vsprintf
 
1850
vsprintf_s
 
1851
vswprintf_s
 
1852
vwprintf
 
1853
vwprintf_s
 
1854
wcrtomb
 
1855
wcrtomb_s
 
1856
wcscat
 
1857
wcscat_s
 
1858
wcschr
 
1859
wcscmp
 
1860
wcscoll
 
1861
wcscpy
 
1862
wcscpy_s
 
1863
wcscspn
 
1864
wcsftime
 
1865
wcslen
 
1866
wcsncat
 
1867
wcsncat_s
 
1868
wcsncmp
 
1869
wcsncpy
 
1870
wcsncpy_s
 
1871
wcsnlen
 
1872
wcspbrk
 
1873
wcsrchr
 
1874
wcsrtombs
 
1875
wcsrtombs_s
 
1876
wcsspn
 
1877
wcsstr
 
1878
wcstod
 
1879
wcstok
 
1880
wcstok_s
 
1881
wcstol
 
1882
wcstombs
 
1883
wcstombs_s
 
1884
wcstoul
 
1885
wcsxfrm
 
1886
wctob
 
1887
wctomb
 
1888
wctomb_s
 
1889
wprintf
 
1890
wprintf_s
 
1891
wscanf
 
1892
wscanf_s
 
1893
THE_END
 
1894
 
 
1895
  # Provide the gmtime stub required by PNG.
 
1896
  cat > gmtime.c << 'THE_END'
 
1897
/* Stub function for gmtime.
 
1898
 * This is an inline function in Visual C 2008 so is missing from msvcr90.dll
 
1899
 */
 
1900
#include <time.h>
 
1901
 
 
1902
struct tm* _gmtime32(const time_t *timer);
 
1903
 
 
1904
struct tm* gmtime(const time_t *timer)
 
1905
{
 
1906
    return _gmtime32(timer);                                    
 
1907
}
 
1908
THE_END
 
1909
 
 
1910
  # Provide the _ftime stub required by numpy.random.mtrand.
 
1911
  cat > _ftime.c << 'THE_END'
 
1912
/* Stub function for _ftime.
 
1913
 * This is an inline function in Visual C 2008 so is missing from msvcr90.dll
 
1914
 */
 
1915
#include <sys/types.h>
 
1916
#include <sys/timeb.h>
 
1917
 
 
1918
void _ftime32(struct _timeb *timeptr);
 
1919
 
 
1920
void _ftime(struct _timeb *timeptr)
 
1921
{
 
1922
    _ftime32(timeptr);                                    
 
1923
}
 
1924
THE_END
 
1925
 
 
1926
  # Provide the time stub required by Numeric.RNG.
 
1927
  cat > time.c << 'THE_END'
 
1928
/* Stub function for time.
 
1929
 * This is an inline function in Visual C 2008 so is missing from msvcr90.dll
 
1930
 */
 
1931
#include <time.h>
 
1932
 
 
1933
time_t _time32(time_t *timer);
 
1934
 
 
1935
time_t time(time_t *timer)
 
1936
{
 
1937
    return _time32(timer);                                    
 
1938
}
 
1939
THE_END
 
1940
 
 
1941
  gcc -c -O2 gmtime.c _ftime.c time.c
 
1942
  dlltool -d msvcr90.def -D msvcr90.dll -l libmsvcr90.dll.a
 
1943
  ar rc libmsvcr90.dll.a gmtime.o _ftime.o time.o
 
1944
  ranlib libmsvcr90.dll.a
 
1945
  cp -f libmsvcr90.dll.a "$DBMSVCR90"
 
1946
  mv -f libmsvcr90.dll.a "$DBMSVCR90/libmsvcrt.dll.a"
 
1947
  gcc -c -g gmtime.c
 
1948
  dlltool -d msvcr90.def -D msvcr90d.dll -l libmsvcr90d.dll.a
 
1949
  ar rc libmsvcr90d.dll.a gmtime.o
 
1950
  ranlib libmsvcr90d.dll.a
 
1951
  cp -f libmsvcr90d.dll.a "$DBMSVCR90"
 
1952
  mv -f libmsvcr90d.dll.a "$DBMSVCR90/libmsvcrtd.dll.a"
 
1953
  
 
1954
  # These definitions are taken from mingw-runtime-3.12 .
 
1955
  # The file was generated with the following command:
 
1956
  #
 
1957
  # gcc -DRUNTIME=msvcrt -D__FILENAME__=moldname-msvcrt.def
 
1958
  #   -D__MSVCRT__ -C -E -P -xc-header moldname.def.in >moldname-msvcrt.def
 
1959
  # It then had fstat deleted to match with msvcr90.dll.
 
1960
  cat > moldname-msvcrt.def << 'THE_END'
 
1961
EXPORTS
 
1962
access
 
1963
chdir
 
1964
chmod
 
1965
chsize
 
1966
close
 
1967
creat
 
1968
cwait
 
1969
 
 
1970
daylight DATA
 
1971
 
 
1972
dup
 
1973
dup2
 
1974
ecvt
 
1975
eof
 
1976
execl
 
1977
execle
 
1978
execlp
 
1979
execlpe
 
1980
execv
 
1981
execve
 
1982
execvp
 
1983
execvpe
 
1984
fcvt
 
1985
fdopen
 
1986
fgetchar
 
1987
fgetwchar
 
1988
filelength
 
1989
fileno
 
1990
; Alias fpreset is set in CRT_fp10,c and CRT_fp8.c.
 
1991
; fpreset
 
1992
fputchar
 
1993
fputwchar
 
1994
ftime
 
1995
gcvt
 
1996
getch
 
1997
getche
 
1998
getcwd
 
1999
getpid
 
2000
getw
 
2001
heapwalk
 
2002
isatty
 
2003
itoa
 
2004
kbhit
 
2005
lfind
 
2006
lsearch
 
2007
lseek
 
2008
ltoa
 
2009
memccpy
 
2010
memicmp
 
2011
mkdir
 
2012
mktemp
 
2013
open
 
2014
pclose
 
2015
popen
 
2016
putch
 
2017
putenv
 
2018
putw
 
2019
read
 
2020
rmdir
 
2021
rmtmp
 
2022
searchenv
 
2023
setmode
 
2024
sopen
 
2025
spawnl
 
2026
spawnle
 
2027
spawnlp
 
2028
spawnlpe
 
2029
spawnv
 
2030
spawnve
 
2031
spawnvp
 
2032
spawnvpe
 
2033
stat
 
2034
strcmpi
 
2035
strdup
 
2036
stricmp
 
2037
stricoll
 
2038
strlwr
 
2039
strnicmp
 
2040
strnset
 
2041
strrev
 
2042
strset
 
2043
strupr
 
2044
swab
 
2045
tell
 
2046
tempnam
 
2047
 
 
2048
timezone DATA
 
2049
 
 
2050
; export tzname for both. See <time.h>
 
2051
tzname DATA
 
2052
tzset
 
2053
umask
 
2054
ungetch
 
2055
unlink
 
2056
utime
 
2057
wcsdup
 
2058
wcsicmp
 
2059
wcsicoll
 
2060
wcslwr
 
2061
wcsnicmp
 
2062
wcsnset
 
2063
wcsrev
 
2064
wcsset
 
2065
wcsupr
 
2066
 
 
2067
wpopen
 
2068
 
 
2069
write
 
2070
; non-ANSI functions declared in math.h
 
2071
j0
 
2072
j1
 
2073
jn
 
2074
y0
 
2075
y1
 
2076
yn
 
2077
chgsign
 
2078
scalb
 
2079
finite
 
2080
fpclass
 
2081
; C99 functions
 
2082
cabs
 
2083
hypot
 
2084
logb
 
2085
nextafter
 
2086
THE_END
 
2087
 
 
2088
  # Provide the fstat stub required by TIFF.
 
2089
  cat > fstat.c << 'THE_END'
 
2090
/* Stub function for fstat.
 
2091
 * This is an inlined functions in Visual C 2008 so is missing from msvcr90.dll
 
2092
 */
 
2093
#include <sys/stat.h>
 
2094
 
 
2095
int _fstat32(int fd, struct stat *buffer);
 
2096
 
 
2097
int fstat(int fd, struct stat *buffer)
 
2098
{
 
2099
    return _fstat32(fd, buffer);
 
2100
}
 
2101
THE_END
 
2102
 
 
2103
  mkdir -p "$DBMSVCR90"
 
2104
  gcc -c -O2 fstat.c
 
2105
  ar x /mingw/lib/libmoldname90.a $OBJS
 
2106
  dlltool --as as -k -U \
 
2107
     --dllname msvcr90.dll \
 
2108
     --def moldname-msvcrt.def \
 
2109
     --output-lib libmoldname.dll.a
 
2110
  ar rc libmoldname.dll.a $OBJS fstat.o
 
2111
  ranlib libmoldname.dll.a
 
2112
  mv -f libmoldname.dll.a "$DBMSVCR90"
 
2113
  gcc -c -g fstat.c
 
2114
  ar x /mingw/lib/libmoldname90d.a $OBJS
 
2115
  dlltool --as as -k -U \
 
2116
     --dllname msvcr90.dll \
 
2117
     --def moldname-msvcrt.def \
 
2118
     --output-lib libmoldnamed.dll.a
 
2119
  ar rc libmoldnamed.dll.a $OBJS fstat.o
 
2120
  ranlib libmoldnamed.dll.a
 
2121
  mv -f libmoldnamed.dll.a "$DBMSVCR90"
 
2122
  rm -f ./*
 
2123
  cd "$OLDPWD"
 
2124
  rmdir /tmp/build_deps
 
2125
fi
 
2126
""")
 
2127
 
 
2128
if __name__ == '__main__':
 
2129
    sys.exit(main(dependencies, msvcr90_prep, msys_prep))