+Instructions to build Bacula using the MinGW32 on Linux
+=======================================================
-This file documents the tools (scripts) we use for building
-Bacula for Microsoft Windows using the cross-compiler tools on a
-Linux system.
-
-We don't officially support this script, but it is what we use, and it should
-build on any Linux machine if you carefully follow the instructions and have
-all the prerequisite programs loaded on your machine. We expect that there
-will be problems on other distributions (FreeBSD, Mac OS X, ...), where you
-are pretty much on your own. However, we will try to provide responses to
-your questions on the bacula-devel list, but that we don't guarantee
-anything.
-
-The basic directory structure you need to have is:
-
- bacula-top top level directory -- any name
- bacula top level Bacula source directory -- any name
- src
- win32 main directory where the Windows version is built.
-
- depkgs-mingw32 3rd Party Dependencies
- bin --
- include |
- lib |
- man | Created by script
- nsis |-- ..../bacula/src/win32/build-depkgs-mingw32
- scons |
- share |
- src |
- ssl --
- vss
- inc A copy of the Windows VSS/inc directory
-
- cross-tools Cross compilation tools (gcc, g++, mingw32, ...)
- binutils-mingw32 --
- gcc-mingw32 | Created by script
- mingw32 |-- ..../bacula/src/win32/build-win32-cross-tools
- mingw-utils |
- source --
+This file documents the tools (scripts) we use for building Bacula for
+Microsoft Windows using the cross-compiler tools on a Linux system. We
+use Fedora Core 5 and SuSE so those should definitely work. But there
+shouldn't be any issues on other Linux distributions.
+
+We don't officially support this script, but it is what we use, and it should
+build on any Linux machine if you carefully follow the instructions and have
+all the prerequisite programs loaded on your machine.
+
+It has also been tested on other systems such as FreeBSD and CentOS. We
+expect that there may be problems on systems other than Linux where you
+are pretty much on your own. However, we will try to provide responses to
+your questions on the bacula-devel list, but we can't guarantee anything.
One-time Setup
==============
If you're reading this file you've probably already enlisted in the CVS tree or
extracted the contents of the source tar. If not you need to do that first.
+You also need to download one of the doc tar balls and extract to your
+top level Bacula directory. It is referred to as bacula-top in the
+diagram located in README.win32. It will be signified in this file as ...
+
+The extracted doc directory name will be bacula-docs-version where version
+is the version number. The directory must be renamed to docs (ie remove
+the leading bacula- and the -version portion of the name).
+
Once the source is on your system, change to the win32 directory
- cd ..../bacula/src/win32
+ cd .../bacula/src/win32
Download and build the cross compiler tools
./build-win32-cross-tools
Normally the files will be installed in:
- c:/Program Files/Microsoft/VSSSDK72
+ c:\Program Files\Microsoft\VSSSDK72
-You only need to copy everything under the c:/Program Files/Microsoft/VSSSDK72/inc
-directory into ..../depkgs-mingw32/vss/inc.
+You only need to copy everything under the c:\Program Files\Microsoft\VSSSDK72\inc
+directory into .../depkgs-mingw32/vss/inc.
-The above only needs to be done once unless we change the cross-tools
+The above only needs to be done once unless we change the cross-tools
or the dependencies versions. In general, you can run the script multiple
times with no problem. For it to work, you must have at a minimum the
following:
wget
texinfo
bison
- man2html (in man rpm on Fedora, not available on SuSE, must
- manually build and install)
and possibly other packages.
+
Building
========
Finally, to build the Microsoft Windows version of Bacula, do the following:
- cd ..../bacula/src/win32
- make
+ cd .../bacula/src/win32
+ make
If all goes well, you will end with all the executables in the
-..../bacula/src/win32/release directory.
+.../bacula/src/win32/release directory.
If you have an older build environment, you might do the following
to ensure that you pick up all the new Win32 changes:
- cd <bacula>
- make clean
- cvs update
- cd src/win32
- make
-
-Building the Installer
-======================
+ cd .../bacula
+ make clean
+ cvs -q update -d -P
+ cd src/win32
+ make
-The installer is now build as part of the default rule when you
+The installer is now built as part of the default rule when you
say "make" in the src/win32 directory.
Updating the 3rd party package patches
-======================================
+======================================
+
+If one of the patches changes in .../bacula/src/win32/patches, you will
+need to update the corresponding dependency. You can install new patches
+by doing the following (we assume the patch in question is for openssl).
+
+ cd .../bacula/src/win32
+ ./build-depkgs-mingw32 -C openssl
+
+NOTE: The -C means clobber. Any local changes to the source code in
+ the .../depkgs-mingw32/src directory will be lost. The source
+ will be reextracted from the archive and the current patches
+ will be applied.
+
+
+Adding a new global function or global data
+===========================================
+
+bacula.dll
+----------
+
+The code from the following directories is built into bacula.dll:
-If one of the patches change in src/win32/patches, you shouldn't
-need to update the cross-tools or dependencies for it to build.
-You can install new patches by doing the following (we assume the patch
-in question is for openssl):
+ .../bacula/src/lib
+ .../bacula/src/libfind
+ .../bacula/src/win32/compat
- cd <bacula-source>/src/win32
- ./build-depkgs-mingw32 -C openssl
+A new function or data variable which must be accessed from outside
+of bacula.dll requires special treatment. It must be specifically
+exported.
-NOTE: The -C means clobber. Any local changes to the source code in
-the depkgs-mingw32/src directory will be lost. The source will be
-reextracted from the archive and the current patches will be applied.
+New data variables are exported by adding the macro DLL_IMP_EXP to
+the variable declaration in the header file. All exported variables
+must be declared in a header file and MUST NOT be declared in a
+source file referencing the variable.
-If you add a new subroutine, external or global symbol in the CATS library
-=================================================================
-Edit src/win32/cats/bacula_cats.def and update it appropriately.
-The output of a link will tell you the C++ mangled subroutine name
-to add, and for global symbols, it is rather easy. See the file.
+Exporting a function requires a bit more work. You must determine the
+C++ mangled name of the new function.
-There are also dlls for other libraries: src/win32/dll/bacula.def
-For this file, if you have an undefined symbol, do:
+ strings .../bacula/src/win32/dll/<file>.o | grep <symbol>
- strings src/lib/libbac.a | grep <symbol>
+Replace <file> with the base part of the name of the source code file
+which contains the new function. Replace <symbol> with the name of
+the new function. Remove the leading underscore and place the result
+in the .../bacula/src/win32/dll/bacula.def file.
-then enter it in the appropriate place.
+bacula_cats.dll
+---------------
+The code from the .../bacula/src/cats directory is built into database
+provider specific libraries of the form cats_<db>.dll.
-Structure of the new Win32 build environment
-============================================
+The database specific portion <db> is mysql for MySQL, pgsql for
+PostgreSQL, sqlite for SQLite, and bdb for the built-in Bacula database.
+
+During installation of the Director, one of the database libraries is
+copied to the system and renamed bacula_cats.dll.
+
+A new function or data variable which must be accessed from outside
+of bacula_cats.dll requires special treatment. It must be specifically
+exported.
+
+New data variables are exported by placing their name in the file
+.../bacula/src/win32/cats/bacula_cats.def.
+
+Exporting a function requires a bit more work. You must determine the
+C++ mangled name of the new function.
+
+ strings .../bacula/src/win32/cats/cats_*/<file>.o | grep <symbol>
+
+Replace <file> with the base part of the name of the source code file
+which contains the new function. Replace <symbol> with the name of
+the new function. Remove the leading underscore and place the result
+in the .../bacula/src/win32/cats/bacula_cats.def file.
+
+
+Structure of the MinGW32 build environment
+==========================================
The basic strategy is each Makefile in the various subdirectories includes
Makefile.inc, defines variables and rules specific to what is being built,
then includes Makefile.rules which defines all the rules.
-
+
Makefile.inc defines the locations of all the dependencies and the compiler
and linker flags. It is automatically created from Makefile.inc.in. Any
changes must be made to Makefile.inc.in not Makefile.inc or they will be
overwritten the next time Makefile.inc.in is updated.
-
+
Makefile.rules defines a bunch of macros to simplify building. It also
includes all the basic rules for building objects, GUI and console
executables, etc.
-
+
Makefile.template is a template for creating new Makefiles, if you are
creating a new directory, copy Makefile.template to Makefile in that
directory and edit to suit.
-
-Instructions to build Bacula with Microsoft Visual C++ 2005
+Instructions to build Bacula with Microsoft Visual C++ 2005
===========================================================
Using the Express Edition (free version)
----------------------------------------
- Download instructions:
+ Download instructions:
- Visual C++ 2005 Express Edition (2MB + 66MB)
- http://msdn.microsoft.com/vstudio/express/visualc/download/
- NOTE: You may want to download the whole CD for offline usage
+ http://msdn.microsoft.com/vstudio/express/visualc/download/
+ NOTE: You may want to download the whole CD for offline usage
instead of the web installer, as Microsoft will
- start to charge for VC++ one year after the product launch
+ start to charge for VC++ one year after the product launch
(launch was in November 2005, see VC++ FAQ).
- Windows® Server 2003 SP1 Platform SDK Full Download (385MB)
http://www.microsoft.com/downloads/details.aspx?FamilyId=A55B6B43-E24F-4EA3-A93E-40C0EC4F68E5&displaylang=en
NOTE: choose "Full Download" version on the bottom of that page.
- Installation instructions:
+ Installation instructions:
- Visual C++ Express Edition Beta 2:
+ Run vcsetup.exe.
- + When asked for Installation Options, only check "Graphical IDE"
+ + When asked for Installation Options, only check "Graphical IDE"
(MSDN Library is NOT needed).
+ Remember where you install it (e.g. E:\Microsoft Visual Studio 8\)
- Windows® Server 2003 SP1 Platform SDK Full Download
- + Run psdk-full.exe, type the directory where you downloaded the cab
+ + Run psdk-full.exe, type the directory where you downloaded the cab
files.
+ In a command prompt, run "PSDK-full.bat <temp directory>"
(e.g. "PSDK-full.bat E:\temp")
+ Run <temp directory>\setup.exe
- + When asked for the installation directory, choose
- <vc++ install dir>\VC\PlatformSDK (e.g.
+ + When asked for the installation directory, choose
+ <vc++ install dir>\VC\PlatformSDK (e.g.
E:\Microsoft Visual Studio 8\VC\PlatformSDK\)
- + When asked for components, you can safely remove documentation,
- samples, and all 64-bit tools and libs if you want to save disk
+ + When asked for components, you can safely remove documentation,
+ samples, and all 64-bit tools and libs if you want to save disk
space.
-Getting the Bacula files
-------------------------
- You will also need to checkout the latest Bacula source files:
- + latest source from the CVS (into <dev dir>\bacula)
-
- You need to download one of the doc tar balls and extract to <dev dir>.
- The directory name will be bacula-docs-version where version is the
- version number. The directory must be renamed to docs (ie remove the
- leading bacula- and the -version portion of the name).
- + docs
-
-Build instructions
-------------------
- The script build-depkgs-msvc.cmd is used to download and build all the
- third party dependencies required by Bacula. In order to build the
- dependencies you need the following utilities. Only the binaries listed
- in parenthesis are required. Perl must be listed in the PATH, the other
- utilities can either be on the PATH or copied to
- <dev dir>\depkgs-msvc\tools.
-
- Perl (Normal Install, with binaries in the PATH)
- http://downloads.activestate.com/ActivePerl/Windows/5.8/ActivePerl-5.8.8.819-MSWin32-x86-267479.msi
-
- 7-Zip (7z.exe)
- http://prdownloads.sourceforge.net/sevenzip/7za443.zip?download
-
- NASM (nasmw.exe)
- http://prdownloads.sourceforge.net/nasm/nasm-0.98.39-win32.zip?download
-
- patch (patch.exe)
- http://prdownloads.sourceforge.net/gnuwin32/patch-2.5.9-6-bin.zip?download
-
- sed (sed.exe) Depends on libintl, libiconv
- http://prdownloads.sourceforge.net/gnuwin32/sed-4.1.4-bin.zip?download
-
- tee (tee.exe) Depends on libintl, libiconv
- http://prdownloads.sourceforge.net/gnuwin32/coreutils-5.3.0-bin.zip?download
-
- wget (wget.exe) Depends on libintl, libiconv, openssl
- http://prdownloads.sourceforge.net/gnuwin32/wget-1.10.1-bin.zip?download
-
- libintl (libintl3.dll) Dependency of sed, tee, wget
- http://prdownloads.sourceforge.net/gnuwin32/libintl-0.14.4-bin.zip?download
-
- libiconv (libiconv2.dll) Dependency of sed, tee, wget
- http://prdownloads.sourceforge.net/gnuwin32/libiconv-1.9.2-1-bin.zip?download
-
- openssl (libeay32.dll, ssleay32.dll) Dependency of wget
- http://prdownloads.sourceforge.net/gnuwin32/openssl-0.9.7c-bin.zip?download
-
- Once the utilities are installed continue with the next steps.
-
- + Start VC++ 2005 command prompt (in the start menu)
-
- + Change to the bacula\src\win32 directory.
-
- Only if you are using Microsoft Visual C++ Express
-
- + run "%VCINSTALLDIR%\PlatformSDK\SetEnv"
-
- The following step should only need to be done the first time and whenever
- the dependencies change.
-
- + run build-depkgs-msvc
-
- At this point all of the dependencies should have been downloaded and built.
-
- To build the debug version
-
- + run build-msvc "Debug|Win32"
-
- To build the release version
-
- + run build-msvc "Release|Win32"
-
- To cleanup all the built files
-
- + run build-msvc /c
-
- To cleanup only the debug built files
-
- + run build-msvc /c "Debug|Win32"
-
- To rebuild the debug version
-
- + run build-msvc /r "Debug|Win32"
+One-time Setup
+==============
+
+If you're reading this file you've probably already enlisted in the CVS
+tree or extracted the contents of the source tar. If not you need to do
+that first.
+
+You also need to download one of the doc tar balls and extract to your
+top level Bacula directory. It is referred to as bacula-top in the
+diagram located in README.win32. It will be signified in this file as ...
+
+The extracted doc directory name will be bacula-docs-version where
+version is the version number. The directory must be renamed to docs
+(ie remove the leading bacula- and the trailing -version portion of the
+name).
+
+The script build-depkgs-msvc.cmd is used to download and build all the
+third party dependencies required by Bacula. In order to build the
+dependencies you need the following utilities. Only the binaries listed
+in parenthesis are required. Perl must be listed in the PATH, the other
+utilities can either be on the PATH or copied to ...\depkgs-msvc\tools.
+
+ Perl (Normal Install, with binaries in the PATH)
+ http://downloads.activestate.com/ActivePerl/Windows/5.8/ActivePerl-5.8.8.819-MSWin32-x86-267479.msi
+
+ 7-Zip (7z.exe)
+ http://prdownloads.sourceforge.net/sevenzip/7za443.zip?download
+
+ NASM (nasmw.exe)
+ http://prdownloads.sourceforge.net/nasm/nasm-0.98.39-win32.zip?download
+
+ patch (patch.exe)
+ http://prdownloads.sourceforge.net/gnuwin32/patch-2.5.9-6-bin.zip?download
+
+ sed (sed.exe) Depends on libintl, libiconv
+ http://prdownloads.sourceforge.net/gnuwin32/sed-4.1.4-bin.zip?download
+
+ tee (tee.exe) Depends on libintl, libiconv
+ http://prdownloads.sourceforge.net/gnuwin32/coreutils-5.3.0-bin.zip?download
+
+ wget (wget.exe) Depends on libintl, libiconv, openssl
+ http://prdownloads.sourceforge.net/gnuwin32/wget-1.10.1-bin.zip?download
+
+ libintl (libintl3.dll) Dependency of sed, tee, wget
+ http://prdownloads.sourceforge.net/gnuwin32/libintl-0.14.4-bin.zip?download
+
+ libiconv (libiconv2.dll) Dependency of sed, tee, wget
+ http://prdownloads.sourceforge.net/gnuwin32/libiconv-1.9.2-1-bin.zip?download
+
+ openssl (libeay32.dll, ssleay32.dll) Dependency of wget
+ http://prdownloads.sourceforge.net/gnuwin32/openssl-0.9.7c-bin.zip?download
+
+Once the utilities are installed continue with the next steps.
+
+Start VC++ 2005 command prompt (in the start menu)
+
+ cd ...\bacula\src\win32 directory.
+
+Only if you are using Microsoft Visual C++ Express
+
+ "%VCINSTALLDIR%\PlatformSDK\SetEnv"
+
+The following step should only need to be done the first time and
+whenever the dependencies change.
+
+ build-depkgs-msvc
+
+At this point all of the dependencies should have been downloaded and
+built. You need the header files from the Microsoft VSS SDK. You can
+find it on Microsoft's web-site at:
+
+http://www.microsoft.com/downloads/details.aspx?FamilyID=0b4f56e4-0ccc-4626-826a-ed2c4c95c871&DisplayLang=en
+
+If that link doesn't work then go to http://www.microsoft.com and search
+for
+
+ "download volume shadow copy service sdk"
+
+Normally the files will be installed in:
+
+ C:\Program Files\Microsoft\VSSSDK72
+
+You only need to copy everything under the C:\Program Files\Microsoft\VSSSDK72\inc
+directory into .../depkgs-msvc/vss/inc.
+
+The above only needs to be done once unless we change the cross-tools or
+the dependencies versions. In general, you can run the script multiple
+times with no problem.
+
+Building
+========
+
+Start VC++ 2005 command prompt (in the start menu)
+
+ cd ...\bacula\src\win32
+
+If you are using Microsoft Visual C++ Express
+
+ "%VCINSTALLDIR%\PlatformSDK\SetEnv"
+
+To build the debug version
+
+ build-msvc "Debug|Win32"
+
+To build the release version
+
+ build-msvc "Release|Win32"
+
+To cleanup all the built files
+
+ build-msvc /c
+
+To cleanup only the debug built files
+
+ build-msvc /c "Debug|Win32"
+
+To rebuild the debug version
+
+ build-msvc /r "Debug|Win32"
+
+
+Updating the 3rd party package patches
+======================================
+
+If one of the patches changes in ...\bacula\src\win32\patches, you will
+need to update the corresponding dependency. You can install new patches
+by doing the following (we assume the patch in question is for openssl).
+
+ cd ...\bacula\src\win32
+ set CLOBBER_SOURCE=true
+ build-depkgs-msvc openssl
+ set CLOBBER_SOURCE=
+
+NOTE: Setting CLOBBER_SOURCE=true means that any local changes to the
+ source code in the .../depkgs-msvc/src directory will be lost.
+ The source will be reextracted from the archive and the current
+ patches will be applied.
+
+
+Adding a new global function or global data
+===========================================
+
+bacula.dll
+----------
+
+The code from the following directories is built into bacula.dll:
+
+ .../bacula/src/lib
+ .../bacula/src/libfind
+ .../bacula/src/win32/compat
+
+A new function or data variable which must be accessed from outside
+of bacula.dll requires special treatment. It must be specifically
+exported.
+
+New data variables are exported by adding the macro DLL_IMP_EXP to
+the variable declaration in the header file. All exported variables
+must be declared in a header file and MUST NOT be declared in a
+source file referencing the variable.
+
+Exporting a function requires a bit more work. You must determine the
+C++ mangled name of the new function. Fortunately it is displayed in
+parentheses in the linker error message. Place it in the
+.../bacula/src/win32/libbac/bacula.def file.
+
+bacula_cats.dll
+---------------
+
+The code from the src/cats directory is built into database provider
+specific libraries of the form cats_<db>.dll.
+
+The database specific portion <db> is mysql for MySQL, pgsql for
+PostgreSQL, sqlite for SQLite, and bdb for the built-in Bacula database.
+
+During installation of the Director, one of the database libraries is
+copied to the system and renamed bacula_cats.dll.
+
+A new function or data variable which must be accessed from outside
+of bacula_cats.dll requires special treatment. It must be specifically
+exported.
+
+New data variables and functions are exported by placing their mangled
+name in the file .../bacula/src/win32/cats/bacula_cats/bacula_cats.def.
+
+The mangled name is printed, surrounded by parentheses, in the Linker
+error message.
-
-This directory <bacula-src>/src/win32 contains the build
-environment for building the native Win32 Bacula File daemon,
-the native Win32 bconsole program and the wx-console GUI console
-program.
-
-The directory structure that you need to have is:
- bacula/src/win32 Makefiles and scripts
- baculafd Visual Studio Files
- Release Release objects, and bacula-fd.exe
- Debug Debug object, and bacula-fd.exe produced
- by VC++
- console Build of console program and bconsole.conf
- Release Release objects and bconsole.exe
- Debug Debug objects
- wx-console Buld of wx-console program and wx-console-conf
- Release Release objects and wx-console.exe
- Debug Debug objects.
- filed Links to core filed code
- findlib Links to core findlib code
- lib Links to core lib code
-
- docs Bacula documentation directory with pre-build
- doc files
-
- depkgs-win32
- pthreads The POSIX pthreads library (third party)
- zlib The zlib library (third party)
- wx The wxWidgets library (third party)
-
-depkgs-win32 is released in a separate .tar.gz file that contains the
-source for the above mentioned libraries needed to build the
-Win32 Bacula. It can be found in the Source Forge Bacula project
-release section. Docs is released as a separate tar file, which is
-created from the bacula CVS docs project (module).
-
-Instructions if you want to build bacula-fd with VSS
-(Volume Shadow Copy Service) support. Note, the non-VSS build is
-no longer supported though you may be able to get it to work by
-copy the file src/win32/baculafd/baculanovssfd.mak into
-src/win32/baculafd/baculafd.mak before running the "make" command
-below:
-
-- VSS support works for both WinXP machines and Win 2003 machines.
-- you need to get the VSS SDK:
- http://www.microsoft.com/downloads/details.aspx?FamilyID=0B4F56E4-0CCC-4626-826A-ED2C4C95C871&displaylang=en
-- copy the 'inc' and 'lib' directories from this SDK to
- 'bacula/src/win32/compat/vss'. Note, generally these files
- are installed in c:/Program\ Files/Microsoft/VSSSDK71
-- you should then have 'bacula/src/win32/compat/vss/inc' and
- 'bacula/src/win32/compat/vss/lib'
- both with 'Win2003' and 'WinXP' subdirectories
-- add 'WIN32_VSS' as preprocessor directive
-- you should get a single bacula-fd.exe that runs on all platforms and has
- VSS support for WinXP and 2003 enabled
-- Once you have added the VSS SDK files as a subdirectory to the build
- tree, follow the original instructions for building Bacula given
- below.
-
-To build it:
-- We are using Microsoft Visual Studio .NET 2003 as the compiler,
- but the build is done via scripting using the latest Cygwin
- environment.
-- For this version of Bacula, you must have msvcr71.dll
- installed in c:/windows/system32 (i.e. Windows VC++ 2003)
- The winbacula.nsi.in
- and pebuilder Makefile.in files have this hard coded in.
-- Make sure nmake is on your PATH.
-- Make sure your COMSPEC is properly setup (see full dump of
- my cygwin environment below).
-- Running the following command may help setup the environment
- variables used by VC++ (I don't use this command, but it might
- just solve your problems).
- run "<vc++ install dir>\VC\PlatformSDK\SetEnv.Cmd"
-- The build is done in an rxvt window under the latest version
- of cygwin.
-- You need the Platform SDK installed.
-- You need Visual Studio installed.
-- You need to load depkgs-win32, then
- (make the two patches described below to in Nicolas' notes to wx)
- cd depkgs-win32
- make
- (after building zlib and pthreads, it fails in wx)
- cd wx
- ./configure
- make
- (if it succeeds skip the next item, otherwise do it)
-- You may have to build wx with VC++.
- After starting VC++, use File->Open Workspace then
- open wx/src/wxWindows.dsw then use
- Build->Build All or Build->build wxmsw.lib should work too.
-- cd bacula
- ./configure --enable-client-only
- cd src/win32
-- ensure that the docs are copied into docs at the bacula
- directory level.
- make
-
-Here is the script that I use under cygwin to build it:
-==== build script =========
-#!/bin/sh
-cd bacula
-mkdir -p src/win32/compat/vss
-cp -a c:/Program\ Files/Microsoft/VSSSDK71/inc src/win32/compat/vss
-cp -a c:/Program\ Files/Microsoft/VSSSDK71/lib src/win32/compat/vss
-./configure \
- --enable-client-only \
- --sbindir=/bacula/bin \
- --sysconfdir=/bacula/bin \
- --enable-smartalloc \
- --enable-static-tools \
- --with-working-dir=/bacula/working \
- --with-pid-dir=/bacula/working \
- --with-subsys-dir=/bacula/working
-rm -rf docs
-cp -a ../docs .
-cd src/win32
-make
-VERSION=`sed -n -e 's/^.*VERSION.*"\(.*\)"$/\1/p' ../version.h`
-cp -pf winbacula-$VERSION.exe k:/home/kern/bacula/winbacula-vss-$VERSION.exe
-if test $? = 0 ; then
- echo "winbacula-$VERSION.exe copied to k:/home/kern/bacula/winbacula-vss-$VERSION.exe"
-else
- echo "Build failed ..."
-fi
-======== end build script ==============
-
-
-See License.txt for the License.
-
-The native Win32 interface code was written by:
-
- Christopher S. Hull, February 2004
-
-
-For more details of building wx, see depkgs-win32/wx/docs/msw/install.txt
-
-The easiest way to build this is to have a Visual Studio .NET 2003
-However, you can use the free Microsoft C++ compiler with a bit
-of additional work.
-
-Here are additional pointers on building wx-console supplied by Nicolas
-Boichat:
-
-
-Tools I used (I think the 3 first one are included in VStudio) :
-- VC++ toolkit : http://msdn.microsoft.com/visualc/vctoolkit2003/
-- Windows Platform SDK :
- http://www.microsoft.com/msdownload/platformsdk/sdkupdate/
- (Core SDK and Internet Development SDK)
-- nmake (it got it with .Net Framework SDK)
-- lib.exe found in the SDK-base/Bin/win64 directory (works fine
- on a 32 bit Windows).
-
-Instructions if you want to build wx-console :
-- wxWidgets 2.4.2 compilation
- + In include/wx/string.h, replace line 195 by
- #if defined(__VISUALC__) // && defined(_MT) && !defined(_DLL)
- + In src/common/string.cpp, replace line 167 by
- #if defined(__VISUALC__) // && defined(_MT) && !defined(_DLL)
- + Follow the instructions in docs/msw/install.txt
- (Visual C++ 6.0 compilation - Using makefiles)
-
-- Make sure that the environment variables are set as:
- - PATH includes the directories bin of both the C++ Toolkit and the SDK
- - INCLUDE includes the directories include of both the C++ Toolkit and the SDK
- - LIB includes the directories Lib of both the C++ Toolkit and the SDK
-
-- Compile bacula depkg-win32 with Visual Studio or try the
- supplied makefiles as described in the doc. I could not
- get this to work -- kes.
-
-- Compile wx-console with nmake -f wx-console.mak in
- src/win32/wx-console I could not get this to work
- kes.
-
-- Additional information on using the free Micrsosoft C++ see
- http://sapdb.2scale.net/moin.cgi/MS_20C_2b_2b_20Toolkit
-
-NOTE! I (Kern) cannot build wxWindows with the Makefile until after
-I do a ./configure. I can use VC Studio directly to do so
-following their instructions. Open VC Studio on the project
-file depkgs-win32/wx/src/WxWindows.vcproj. Then build it.
-Make sure you have selected the Release Unicode version under
-menu->Build->Configuration Manager. It will create the file:
-depkgs-win32/wx/lib/wxmswu.lib. At that point, you have
-what you need to build wx-console.
-
-Note, the paths given below have changed now that we switched
-to Microsoft Visual Studio .NET 2003 (VC++ 7.1).
-
-Getting all the environment variables setup properly is not always so obvious.
-Here is what I have when I do a "set" in a rxvt window, in which I build
-Bacula. Probably what is important are INCLUDE, LIB, PATH, and WXWIN, but note
-there are a zillion other things set:
-!::='::\'
-!C:='C:\cygwin\home\kern'
-ALLUSERSPROFILE='C:\Documents and Settings\All Users'
-APPDATA='C:\Documents and Settings\kern\Application Data'
-BASEMAKE='C:\Program Files\Microsoft SDK\Include\BKOffice.Mak'
-BASH=/usr/bin/bash
-BASH_VERSINFO=([0]="2" [1]="05b" [2]="0" [3]="1" [4]="release" [5]="i686-pc-cygwin")
-BASH_VERSION='2.05b.0(1)-release'
-BKOFFICE='C:\Program Files\Microsoft SDK\.'
-CLIENTNAME=Console
-COLORFGBG='0;default;15'
-COLORTERM=rxvt-xpm
-COLUMNS=70
-COMMONPROGRAMFILES='C:\Program Files\Common Files'
-COMPUTERNAME=TIBS
-COMSPEC='C:\WINDOWS\system32\cmd.exe'
-CYGWIN=notty
-DIRSTACK=()
-DISPLAY=:0
-EDHELP=/home/kern/bin/ed.hlp
-EDTRM=/home/kern/bin/ed.trm
-EUID=1007
-GROUPS=()
-HISTFILE=/cygdrive/c/home/kern/.bash_history
-HISTFILESIZE=500
-HISTSIZE=500
-HOME=/cygdrive/c/home/kern
-HOMEDRIVE=C:
-HOMEPATH='\Documents and Settings\kern'
-HOSTNAME=Tibs
-HOSTTYPE=i686
-IFS=$' \t\n'
-INCLUDE='C:\Program Files\Microsoft SDK\Include\.;C:\Program Files\Microsoft Visual Studio\VC98\atl\include;C:\Program Files\Microsoft Visual Studio\VC98\mfc\include;C:\Program Files\Microsoft Visual Studio\VC98\include'
-INETSDK='C:\Program Files\Microsoft SDK\.'
-LIB='C:\Program Files\Microsoft SDK\Lib\.;C:\Program Files\Microsoft Visual Studio\VC98\mfc\lib;C:\Program Files\Microsoft Visual Studio\VC98\lib'
-LINES=65
-LOGONSERVER='\\TIBS'
-MACHTYPE=i686-pc-cygwin
-MAILCHECK=60
-MAKE_MODE=UNIX
-MOZILLA_HOME=/home/netscape
-MSDEVDIR='C:\Program Files\Microsoft Visual Studio\Common\MSDev98'
-MSSDK='C:\Program Files\Microsoft SDK\.'
-MSTOOLS='C:\Program Files\Microsoft SDK\.'
-NUMBER_OF_PROCESSORS=1
-OLDPWD=/home/kern/bacula
-OPTERR=1
-OPTIND=1
-OS=Windows_NT
-OSTYPE=cygwin
-PATH='/cygdrive/c/Program Files/Microsoft Visual Studio/VC98/Bin:/cygdrive/c/Program Files/Microsoft Visual Studio/VC98:/cygdrive/c/Program Files/Microsoft Visual Studio/Common/MSDev98/Bin:/cygdrive/c/Program Files/Microsoft Visual Studio/Common/Tools/WinNT:/cygdrive/c/Program Files/Microsoft Visual Studio/Common/Tools:c:/cygwin/bin:/usr/bin:/home/kern/bin:/sbin:/usr/sbin:'
-PATHEXT='.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH'
-PIPESTATUS=([0]="0")
-PPID=3864
-PROCESSOR_ARCHITECTURE=x86
-PROCESSOR_IDENTIFIER='x86 Family 15 Model 2 Stepping 7, GenuineIntel'
-PROCESSOR_LEVEL=15
-PROCESSOR_REVISION=0207
-PROGRAMFILES='C:\Program Files'
-PROMPT='$P$G'
-PS1='\e[34m\]\w\[\e[0m\]$\040'
-PS2='> '
-PS4='+ '
-PWD=/home/kern
-SESSIONNAME=Console
-SHELL=/bin/bash
-SHELLOPTS=braceexpand:emacs:hashall:histexpand:history:interactive-comments:monitor
-SHLVL=1
-SYSTEMDRIVE=C:
-SYSTEMROOT='C:\WINDOWS'
-TEMP=/cygdrive/c/DOCUME~1/kern/LOCALS~1/Temp
-TERM=xterm
-TMP=/cygdrive/c/DOCUME~1/kern/LOCALS~1/Temp
-UID=1007
-USERDOMAIN=TIBS
-USERNAME=kern
-USERPROFILE='C:\Documents and Settings\kern'
-WINDIR='C:\WINDOWS'
-WINDOWID=168050736
-WXWIN='c:\home\kern\bacula\depkgs-win32\wx'
-_=set
+Starting in version 1.39.x the source tree structure and the build
+process have changed significantly.
+
+Building the Windows version with versions of Microsoft Visual C++
+prior to VC8 (2005) is no longer supported nor is Cygwin32 required.
+
+There are now two supported methods of building the Windows version.
+The MinGW cross-compile environment is used to build it on Unix
+systems. Microsoft Visual C++ 2005 is used to build it on Microsoft
+Windows systems.
+
+The new directory structure is:
+
+ bacula-top Top level directory -- any name
+ bacula Top level Bacula source directory -- any name
+ src
+ win32 Main directory where Windows version is built.
+
+ docs Top level Bacula documentation directory
+
+ depkgs-mingw32 (MinGW32) 3rd Party Dependencies for MinGW32 build
+or
+ depkgs-msvc (MS VC++) 3rd Party Dependencies for Microsoft VC++ build.
+ bin --
+ include |
+ lib |
+ man | Created by script
+ nsis |-- .../bacula/src/win32/build-depkgs-mingw32
+ scons |
+ share |
+ src |
+ ssl --
+ vss
+ inc A copy of the Windows VSS/inc directory
+
+ cross-tools (MinGW32) Cross compilation tools (gcc, g++, mingw32, ...)
+ binutils-mingw32 --
+ gcc-mingw32 | Created by script
+ mingw32 |-- .../bacula/src/win32/build-win32-cross-tools
+ mingw-utils |
+ source --
+
+Information on building the Windows version of Bacula is contained in the
+two files README.mingw32 for building in a cross-compile environment on Unix
+and README.vc8 for building using Microsoft Visual C++ 2005.
:PERL_OK
-SET CLOBBER_SOURCE=
+IF "%CLOBBER_SOURCE%"=="" SET CLOBBER_SOURCE=false
FOR /F "eol=# delims=| tokens=1-4" %%I in ( External-msvc ) DO SET URL_%%I=%%J & SET DIR_%%I=%%K & SET MKD_%%I=%%L
; sqlite.c:
_Z11db_get_typev
_Z12db_sql_queryP4B_DBPKcPFiPviPPcES3_
-;_Z13db_next_indexP3JCRP4B_DBPcS3_
_Z16db_escape_stringPcS_i
_Z16db_init_databaseP3JCRPKcS2_S2_S2_iS2_i
_Z16db_open_databaseP3JCRP4B_DB
; sql.c:
_Z10_db_unlockPKciP4B_DB
_Z11db_strerrorP4B_DB
-;_Z11list_dashesP4B_DBPFvPvPKcES1_
-;_Z11list_resultP3JCRP4B_DBPFvPvPKcES3_11e_list_type
_Z16db_int64_handlerPviPPc
_Z18db_end_transactionP3JCRP4B_DB
-;_Z18get_sql_record_maxP3JCRP4B_DB
-;_Z19split_path_and_fileP3JCRP4B_DBPKc
-;_Z20check_tables_versionP3JCRP4B_DB
_Z20db_start_transactionP3JCRP4B_DB
-;_Z7QueryDBPKciP3JCRP4B_DBPc
_Z8_db_lockPKciP4B_DB
-;_Z8DeleteDBPKciP3JCRP4B_DBPc
-;_Z8InsertDBPKciP3JCRP4B_DBPc
-;_Z8UpdateDBPKciP3JCRP4B_DBPc
; bdb_create.c:
; sql_create.c:
_Z21db_create_pool_recordP3JCRP4B_DBP8POOL_DBR
_Z22db_create_media_recordP3JCRP4B_DBP9MEDIA_DBR
_Z23db_create_client_recordP3JCRP4B_DBP10CLIENT_DBR
-;_Z23db_create_device_recordP3JCRP4B_DBP10DEVICE_DBR
_Z24db_create_counter_recordP3JCRP4B_DBP11COUNTER_DBR
_Z24db_create_fileset_recordP3JCRP4B_DBP11FILESET_DBR
_Z24db_create_storage_recordP3JCRP4B_DBP11STORAGE_DBR
; bdb_delete.c:
; sql_delete.c:
_Z21db_delete_pool_recordP3JCRP4B_DBP8POOL_DBR
-;_Z21db_purge_media_recordP3JCRP4B_DBP9MEDIA_DBR
_Z22db_delete_media_recordP3JCRP4B_DBP9MEDIA_DBR
; bdb_find.c:
_Z18db_get_pool_recordP3JCRP4B_DBP8POOL_DBR
_Z19db_get_media_recordP3JCRP4B_DBP9MEDIA_DBR
_Z20db_get_client_recordP3JCRP4B_DBP10CLIENT_DBR
-;_Z21db_get_counter_recordP3JCRP4B_DBP11COUNTER_DBR
_Z21db_get_fileset_recordP3JCRP4B_DBP11FILESET_DBR
_Z23db_get_job_volume_namesP3JCRP4B_DBjPPc
-;_Z23db_get_num_pool_recordsP3JCRP4B_DB
-;_Z24db_get_num_media_recordsP3JCRP4B_DB
_Z28db_get_job_volume_parametersP3JCRP4B_DBjPP10VOL_PARAMS
_Z29db_get_file_attributes_recordP3JCRP4B_DBPcP7JOB_DBRP8FILE_DBR
select_migrate_del DATA
select_job DATA
del_File DATA
-;cnt_File DATA
cnt_DelCand DATA
del_Job DATA
del_JobMedia DATA
; sqlite.c:
?db_get_type@@YAPBDXZ
?db_sql_query@@YAHPAUB_DB@@PBDP6AHPAXHPAPAD@Z2@Z
-;?db_next_index@@YAHPAVJCR@@PAUB_DB@@PAD2@Z
?db_escape_string@@YAXPAD0H@Z
?db_init_database@@YAPAUB_DB@@PAVJCR@@PBD111H1H@Z
?db_open_database@@YAHPAVJCR@@PAUB_DB@@@Z
; sql.c:
?_db_unlock@@YAXPBDHPAUB_DB@@@Z
?db_strerror@@YAPADPAUB_DB@@@Z
-;?list_dashes@@YAXPAUB_DB@@P6AXPAXPBD@Z1@Z
-;?list_result@@YAXPAVJCR@@PAUB_DB@@P6AXPAXPBD@Z2W4e_list_type@@@Z
?db_int64_handler@@YAHPAXHPAPAD@Z
?db_end_transaction@@YAXPAVJCR@@PAUB_DB@@@Z
-;?get_sql_record_max@@YAHPAVJCR@@PAUB_DB@@@Z
-;?split_path_and_file@@YAXPAVJCR@@PAUB_DB@@PBD@Z
-;?check_tables_version@@YA_NPAVJCR@@PAUB_DB@@@Z
?db_start_transaction@@YAXPAVJCR@@PAUB_DB@@@Z
-;?QueryDB@@YAHPBDHPAVJCR@@PAUB_DB@@PAD@Z
?_db_lock@@YAXPBDHPAUB_DB@@@Z
-;?DeleteDB@@YAHPBDHPAVJCR@@PAUB_DB@@PAD@Z
-;?InsertDB@@YAHPBDHPAVJCR@@PAUB_DB@@PAD@Z
-;?UpdateDB@@YAHPBDHPAVJCR@@PAUB_DB@@PAD@Z
; sql_cmds.c
?list_pool@@3PBDB DATA
?db_create_job_record@@YA_NPAVJCR@@PAUB_DB@@PAUJOB_DBR@@@Z
?db_create_jobmedia_record@@YA_NPAVJCR@@PAUB_DB@@PAUJOBMEDIA_DBR@@@Z
?db_create_pool_record@@YA_NPAVJCR@@PAUB_DB@@PAUPOOL_DBR@@@Z
-;?db_create_device_record@@YA_NPAVJCR@@PAUB_DB@@PAVDEVICE_DBR@@@Z
?db_create_storage_record@@YA_NPAVJCR@@PAUB_DB@@PAVSTORAGE_DBR@@@Z
?db_create_mediatype_record@@YA_NPAVJCR@@PAUB_DB@@PAVMEDIATYPE_DBR@@@Z
?db_create_media_record@@YAHPAVJCR@@PAUB_DB@@PAUMEDIA_DBR@@@Z
; sql_delete.c:
?db_delete_pool_record@@YAHPAVJCR@@PAUB_DB@@PAUPOOL_DBR@@@Z
?db_delete_media_record@@YAHPAVJCR@@PAUB_DB@@PAUMEDIA_DBR@@@Z
-;?db_purge_media_record@@YAHPAVJCR@@PAUB_DB@@PAUMEDIA_DBR@@@Z
; bdb_find.c:
; sql_find.c:
?db_get_job_record@@YA_NPAVJCR@@PAUB_DB@@PAUJOB_DBR@@@Z
?db_get_job_volume_names@@YAHPAVJCR@@PAUB_DB@@IPAPAD@Z
?db_get_job_volume_parameters@@YAHPAVJCR@@PAUB_DB@@IPAPAUVOL_PARAMS@@@Z
-;?db_get_num_pool_records@@YAHPAVJCR@@PAUB_DB@@@Z
?db_get_pool_ids@@YAHPAVJCR@@PAUB_DB@@PAHPAPAI@Z
?db_get_client_ids@@YAHPAVJCR@@PAUB_DB@@PAHPAPAI@Z
?db_get_pool_record@@YA_NPAVJCR@@PAUB_DB@@PAUPOOL_DBR@@@Z
?db_get_client_record@@YAHPAVJCR@@PAUB_DB@@PAUCLIENT_DBR@@@Z
-;?db_get_counter_record@@YAHPAVJCR@@PAUB_DB@@PAUCOUNTER_DBR@@@Z
?db_get_fileset_record@@YAHPAVJCR@@PAUB_DB@@PAUFILESET_DBR@@@Z
-;?db_get_num_media_records@@YAHPAVJCR@@PAUB_DB@@@Z
?db_get_media_ids@@YA_NPAVJCR@@PAUB_DB@@IPAHPAPAI@Z
?db_get_media_record@@YA_NPAVJCR@@PAUB_DB@@PAUMEDIA_DBR@@@Z
; compat
;
; compat.c:
-;syslog
-;umask
-;utime
_Z10open_bpipePciPKc
_Z11close_bpipeP5BPIPE
-;_Z11close_wpipeP7s_bpipe
-;_Z11strncasecmpPKcS0_i
_Z11win32_cgetsPci
-;_Z11win32_chdirPKc
_Z11win32_fputsPKcP6_iobuf
-;_Z11win32_mkdirPKc
_Z12gettimeofdayP7timevalP8timezone
_Z12init_signalsPFviE
-;_Z12UTF8_2_wcharPPcPKc
_Z12wchar_2_UTF8PcPKwi
-;_Z12win32_getcwdPci
_Z12win32_unlinkPKc
_Z15init_stack_dumpv
-;_Z16wchar_win32_pathPKcPw
_Z17SetVSSPathConvertPFiPKcPciEPFiPKwPwiE
-;_Z18CreateChildProcessPKcPvS1_S1_
-;_Z18cvt_ftime_to_utimeRK9_FILETIME
-;_Z18cvt_utime_to_ftimeRKlR9_FILETIME
-;_Z18unix_name_to_win32PPcS_
-;_Z21make_wchar_win32_pathPcPi
-;_Z21Win32ConvCleanupCachev
-;_Z23conv_unix_to_win32_pathPKcPcm
-;_Z28make_win32_path_UTF8_2_wcharPPcPKcPi
-;_Z4forkv
_Z4killii
-;_Z4pipePi
_Z4statPKcP4stat
-;_Z5chmodPKct
-;_Z5chownPKcjj
-;_Z5fcntlii
_Z5fcntliil
_Z5fstatiP4stat
_Z5lstatPKcP4stat
_Z5sleepi
-;_Z6execvpPKcPPc
-;_Z6lchownPKcjj
_Z6randomv
-;_Z7geteuidv
_Z7opendirPKc
-;_Z7openlogPKcii
_Z7srandomj
-;_Z7waitpidiPii
_Z8closedirPv
-;_Z8closelogv
-;_Z8getArgv0PKc
-;_Z8getgrgidj
-;_Z8getpwuidj
_Z8pathconfPKci
-;_Z8readlinkPKcPci
_Z8WSA_Initv
-;_Z9ErrorExitPKc
-;_Z9inet_atonPKcP7in_addr
-;_Z9nanosleepPK8timespecPS_
_Z9readdir_rPvP6direntPS1_
-;_ZN6winverC1Ev
-;_ZN6winverC2Ev
; print.c:
-;_Z10__snprintfPcjPKcz
-;_Z10__vsprintfPcPKcS_
-;_Z11__vsnprintfPcjPKcS_
-;_Z4doprPcjPKcS_PFvS_PjjiE
-;_Z9__sprintfPcPKcz
; winapi.c:
_Z17InitWinAPIWrapperv
_Z14set_attributesP3JCRP4ATTRP5BFILE
_Z16encode_attribsExP3JCRPcP6FF_PKT
_Z18select_data_streamP6FF_PKT
-;_Z4plugIjEvRT_y
-;_Z4plugIlEvRT_y
-;_Z4plugImEvRT_y
-;_Z4plugIsEvRT_y
-;_Z4plugItEvRT_y
-;_Z4plugIyEvRT_y
-;_Z9win_errorP3JCRPcm
-;_Z9win_errorP3JCRPcS1_
; bfile.c:
-;_Z11bget_handleP5BFILE
-;_Z11int32_LE2BEPii
-;_Z11int64_LE2BEPxx
_Z14have_win32_apiv
_Z15is_win32_streami
_Z15stream_to_asciii
-;_Z16set_win32_backupP5BFILE
_Z18is_portable_backupP5BFILE
_Z19set_portable_backupP5BFILE
_Z26processWin32BackupAPIBlockP5BFILEPvl
; find_one.c:
_Z13find_one_fileP3JCRP6FF_PKTPFiS2_PvbES3_Pcjb
-;_Z13term_find_oneP6FF_PKT
; fstype.c:
_Z6fstypePKcPci
; makepath.c:
-;_Z10isAbsolutePKc
-;_Z9make_pathP3JCRPKciijjiPc
; match.c:
_Z11match_filesP3JCRP6FF_PKTPFiS2_PvbES3_
_Z16file_is_excludedP6FF_PKTPKc
_Z16file_is_includedP6FF_PKTPKc
-;_Z22get_next_included_fileP6FF_PKTP15s_included_file
_Z25add_fname_to_exclude_listP6FF_PKTPKc
_Z25add_fname_to_include_listP6FF_PKTiPKc
_Z26term_include_exclude_filesP6FF_PKT
; save-cwd.c:
-;_Z11restore_cwdPK9saved_cwdPKcS3_
-;_Z8free_cwdP9saved_cwd
-;_Z8save_cwdP9saved_cwd
;
; lib
_Z14free_addressesP5dlist
_Z15store_addressesP13s_lex_contextP8RES_ITEMii
_Z17get_first_addressP5dlistPci
-;_Z17sockaddr_get_portPK8sockaddr
_Z17sockaddr_to_asciiPK8sockaddrPci
-;_Z19build_addresses_strP5dlistPci
_Z20store_addresses_portP13s_lex_contextP8RES_ITEMii
_Z22init_default_addressesPP5dlisti
_Z23store_addresses_addressP13s_lex_contextP8RES_ITEMii
-;_Z24get_first_port_net_orderP5dlist
_Z25get_first_port_host_orderP5dlist
_Z27sockaddr_get_port_net_orderPK8sockaddr
_ZN6IPADDR11get_addressEPci
-;_ZN6IPADDR12get_sockaddrEv
-;_ZN6IPADDR12set_addr_anyEv
-;_ZN6IPADDR12set_port_netEt
-;_ZN6IPADDR16get_sockaddr_lenEv
-;_ZN6IPADDR17build_address_strEPci
-;_ZN6IPADDR8set_typeENS_6i_typeE
-;_ZN6IPADDR9copy_addrEPS_
-;_ZN6IPADDR9set_addr4EP7in_addr
-;_ZN6IPADDRC1Ei
-;_ZN6IPADDRC1ERKS_
-;_ZN6IPADDRC2Ei
-;_ZN6IPADDRC2ERKS_
-;_ZNK6IPADDR10get_familyEv
_ZNK6IPADDR18get_port_net_orderEv
-;_ZNK6IPADDR8get_typeEv
; alist.c:
_ZN5alist3getEi
-;_ZN5alist4lastEv
_ZN5alist4nextEv
-;_ZN5alist4prevEv
_ZN5alist5firstEv
_ZN5alist6appendEPv
_ZN5alist6removeEi
_ZN5alist7destroyEv
_ZN5alist7prependEPv
-;_ZN5alist9grow_listEv
; alloc.c:
_Z9free_attrP4ATTR
; base64.c:
-;_Z11base64_initv
-;_Z11from_base64PxPc
_Z13bin_to_base64PciS_ii
-;_Z9to_base64xPc
; berrno.c:
_ZN6berrno20format_win32_messageEv
_Z14bnet_wait_dataP5BSOCKi
_Z15bnet_tls_clientP11TLS_ContextP5BSOCK
_Z15bnet_tls_serverP11TLS_ContextP5BSOCKP5alist
-;_Z17bnet_host2ipaddrsPKciPS0_
-;_Z17bnet_set_blockingP5BSOCK
_Z17bnet_sig_to_asciiP5BSOCK
_Z19bnet_wait_data_intrP5BSOCKi
_Z20bnet_set_buffer_sizeP5BSOCKji
-;_Z20bnet_set_nonblockingP5BSOCK
_Z21bnet_despool_to_bsockP5BSOCKPFvlEl
-;_Z21bnet_restore_blockingP5BSOCKi
_Z28bnet_suppress_error_messagesP5BSOCKb
_Z8bnet_sigP5BSOCKi
_Z9bnet_recvP5BSOCK
_Z23run_program_full_outputPciS_
; bregex.c:
-;b_re_compile_fastmap
-;b_re_compile_initialize
-;b_re_compile_pattern
b_regcomp
b_regerror
b_regexec
b_regfree
-;b_re_match
-;b_re_search
-;b_re_set_syntax
; bsnprintf.c:
_Z10bvsnprintfPciPKcS_
_Z15delete_pid_filePcPKci
_Z15read_state_filePcPKci
_Z16write_state_filePcPKci
-;_Z20make_unique_filenamePPciS_
_Z2_pPP16pthread_mutex_t_
_Z2_vPP16pthread_mutex_t_
_Z4dropPcS_
_Z5bfreePv
_Z6bfgetsPciP6_iobuf
-;_Z7bcallocjj
_Z7bstrcmpPKcS0_
_Z7cstrlenPKc
_Z8b_mallocPKcij
_Z8breallocPvj
_Z8bstrncatPcPKci
-;_Z8bstrncatPcR8POOL_MEMi
_Z8bstrncpyPcPKci
_Z8bstrncpyPcR8POOL_MEMi
-;_Z9bstrerroriPcj
; btime.c:
_Z10bstrftimesPcix
-;_Z11date_decodedPjPhS0_
-;_Z11date_encodejhh
-;_Z11time_decodedPhS_S_Pf
-;_Z11time_encodehhhf
_Z12bstrftime_ncPcix
-;_Z12bstrftime_nyPcix
_Z12str_to_utimePc
_Z13btime_to_unixx
_Z14btime_to_utimex
-;_Z16date_time_decodeP9date_timePjPhS2_S2_S2_S2_Pf
-;_Z16date_time_encodeP9date_timejhhhhhf
_Z16get_current_timeP9date_time
-;_Z17date_time_compareP9date_timeS0_
_Z17get_current_btimev
-;_Z6tm_womii
_Z6tm_woyl
_Z9bstrftimePcix
_Z9bstrutimePcix
_Z9tm_decodeP9date_timeP2tm
-;_Z9tm_encodeP9date_timeP2tm
; btimers.c:
_Z16stop_bsock_timerP10s_btimer_t
-;_Z16stop_child_timerP10s_btimer_t
_Z17start_bsock_timerP5BSOCKj
-;_Z17start_child_timerij
_Z17stop_thread_timerP10s_btimer_t
_Z18start_thread_timerP10pthread_t_j
; btree.c:
-;_ZN5btree11left_rotateEP5bnode
-;_ZN5btree12right_rotateEP5bnode
-;_ZN5btree3anyEP5bnode
-;_ZN5btree4nextEP5bnode
-;_ZN5btree5firstEv
-;_ZN5btree6insertEP5bnodePFiS1_S1_E
-;_ZN5btree6removeEP5bnode
-;_ZN5btree6searchEP5bnodePFiS1_S1_E
-;_ZN5btree7destroyEv
; cram-md5.c:
_Z16cram_md5_respondP5BSOCKPcPiS2_
; crypto.c:
_Z11init_cryptov
-;_Z13CryptoData_itv
-;_Z13SignerInfo_itv
_Z14cleanup_cryptov
-;_Z14CryptoData_newv
-;_Z14d2i_CryptoDataPP10CryptoDataPPKhl
-;_Z14d2i_SignerInfoPP10SignerInfoPPKhl
-;_Z14i2d_CryptoDataP10CryptoDataPPh
-;_Z14i2d_SignerInfoP10SignerInfoPPh
-;_Z14SignerInfo_newv
-;_Z15CryptoData_freeP10CryptoData
_Z15crypto_sign_newv
_Z15crypto_strerror14crypto_error_t
-;_Z15SignerInfo_freeP10SignerInfo
_Z16crypto_sign_freeP9Signature
-;_Z16RecipientInfo_itv
-;_Z16SignatureData_itv
_Z17crypto_cipher_newP14Crypto_SessionbPj
_Z17crypto_digest_new15crypto_digest_t
-;_Z17d2i_RecipientInfoPP13RecipientInfoPPKhl
-;_Z17d2i_SignatureDataPP13SignatureDataPPKhl
-;_Z17i2d_RecipientInfoP13RecipientInfoPPh
-;_Z17i2d_SignatureDataP13SignatureDataPPh
-;_Z17RecipientInfo_newv
-;_Z17SignatureData_newv
_Z18crypto_cipher_freeP14Cipher_Context
_Z18crypto_digest_freeP6Digest
_Z18crypto_digest_nameP6Digest
_Z18crypto_sign_decodePKhj
_Z18crypto_sign_encodeP9SignaturePhPj
_Z18crypto_sign_verifyP9SignatureP12X509_KeypairP6Digest
-;_Z18RecipientInfo_freeP13RecipientInfo
-;_Z18SignatureData_freeP13SignatureData
_Z19crypto_keypair_freeP12X509_Keypair
_Z19crypto_session_freeP14Crypto_Session
_Z20crypto_cipher_updateP14Cipher_ContextPKhjS2_Pj
_Z23crypto_keypair_load_keyP12X509_KeypairPKcPFiPciPKvES5_
_Z24crypto_keypair_load_certP12X509_KeypairPKc
_Z25crypto_digest_stream_typei
-;_Z27crypto_default_pem_callbackPciPKv
; daemon.c:
_Z12daemon_startv
; dlist.c:
-;_ZN5dlist12insert_afterEPvS0_
_ZN5dlist13binary_insertEPvPFiS0_S0_E
_ZN5dlist13binary_searchEPvPFiS0_S0_E
_ZN5dlist13insert_beforeEPvS0_
_ZN5dlist7destroyEv
_ZN5dlist7prependEPv
_ZNK5dlist4nextEPKv
-;_ZNK5dlist4prevEPKv
; edit.c:
_Z10add_commasPcS_
_Z23edit_uint64_with_suffixyPc
; enh_fnmatch.c:
-;enh_fnmatch
-;_Z15enh_fnmatch_subPKcS0_ii
; fnmatch.c:
fnmatch
; hmac.c:
-;_Z8hmac_md5PhiS_iS_
; htable.c:
-;_ZN6htable10grow_tableEv
-;_ZN6htable10hash_indexEPc
-;_ZN6htable4initEPvS0_i
-;_ZN6htable4nextEv
-;_ZN6htable4sizeEv
-;_ZN6htable5firstEv
-;_ZN6htable5statsEv
-;_ZN6htable6insertEPcPv
-;_ZN6htable6lookupEPc
-;_ZN6htable7destroyEv
-;_ZN6htableC1EPvS0_i
-;_ZN6htableC2EPvS0_i
; idcache.c:
-;_Z18free_getuser_cachev
-;_Z19free_getgroup_cachev
_Z7getuserjPci
_Z8getgroupjPci
; jcr.c:
-;timeout_handler
_Z10b_free_jcrPKciP3JCR
_Z11unlock_jobsv
_Z12jcr_walk_endP3JCR
_Z18get_jcr_by_sessionjj
_Z18init_jcr_subsystemv
_Z18set_jcr_job_statusP3JCRi
-;_Z19init_last_jobs_listv
_Z19lock_last_jobs_listv
-;_Z19read_last_jobs_listiy
_Z19term_last_jobs_listv
_Z20get_jcr_by_full_namePc
-;_Z20write_last_jobs_listiy
_Z21unlock_last_jobs_listv
_Z23get_jcr_by_partial_namePc
_Z7new_jcriPFvP3JCRE
; lex.c:
_Z11scan_to_eolP13s_lex_context
-;_Z12lex_get_charP13s_lex_context
_Z13lex_get_tokenP13s_lex_contexti
_Z13lex_open_fileP13s_lex_contextPKcPFvS2_iS0_S2_zE
_Z14lex_close_fileP13s_lex_context
_Z14lex_tok_to_stri
-;_Z14lex_unget_charP13s_lex_context
-;_Z20scan_to_next_not_eolP13s_lex_context
_Z29lex_set_default_error_handlerP13s_lex_context
_Z32lex_set_error_handler_error_typeP13s_lex_contexti
; md5.c:
-;_Z12MD5TransformPjS_
_Z7MD5InitP10MD5Context
_Z8MD5FinalPhP10MD5Context
_Z9MD5UpdateP10MD5ContextPhj
_Z22sm_realloc_pool_memoryPKciPci
_Z23print_memory_pool_statsv
_Z25sm_check_pool_memory_sizePKciPci
-;_Z27garbage_collect_memory_poolv
_Z9pm_strcatPPcPKc
_Z9pm_strcatR8POOL_MEMPKc
_Z9pm_strcatRPcPKc
-;_Z9pm_strcatRPcR8POOL_MEM
_Z9pm_strcpyPPcPKc
_Z9pm_strcpyR8POOL_MEMPKc
_Z9pm_strcpyRPcPKc
_Z9pm_strcpyRPcR8POOL_MEM
-;_ZN8POOL_MEM10realloc_pmEi
-;_ZN8POOL_MEM6strcatEPKc
-;_ZN8POOL_MEM6strcpyEPKc
-;_ZN8POOL_MEM8max_sizeEv
; message.c:
_Z10my_name_isiPPcPKc
_Z5m_msgPKciRPcS0_z
_Z5p_msgPKciiS0_z
_Z5q_msgPKciP3JCRilS0_z
-;_Z5t_msgPKciiS0_z
_Z8init_msgP3JCRP4MSGS
_Z8term_msgv
_Z9close_msgP3JCR
_Z9set_tracei
; openssl.c:
-;_Z17openssl_save_prngv
-;_Z17openssl_seed_prngv
-;_Z19openssl_post_errorsiPKc
-;_Z20openssl_init_threadsv
-;_Z23openssl_cleanup_threadsv
; pythonlib.c:
_Z21generate_daemon_eventP3JCRPKc
_Z5qnextP7b_queueS0_
_Z7qdchainP7b_queue
_Z7qinsertP7b_queueS0_
-;_Z7qremoveP7b_queue
; runscript.c:
_Z11run_scriptsP3JCRP5alistPKc
_ZN9RUNSCRIPT13reset_defaultEb
_ZN9RUNSCRIPT3runEP3JCRPKc
_ZN9RUNSCRIPT5debugEv
-;_ZN9RUNSCRIPT8is_localEv
; rwlock.c:
_Z11rwl_destroyP12s_rwlock_tag
-;_Z12rwl_readlockP12s_rwlock_tag
_Z13rwl_writelockP12s_rwlock_tag
-;_Z14rwl_readunlockP12s_rwlock_tag
-;_Z15rwl_readtrylockP12s_rwlock_tag
_Z15rwl_writeunlockP12s_rwlock_tag
-;_Z16rwl_writetrylockP12s_rwlock_tag
_Z8rwl_initP12s_rwlock_tag
; scan.c:
_Z19strip_leading_spacePc
_Z19strip_trailing_junkPc
_Z22strip_trailing_newlinePc
-;_Z22strip_trailing_slashesPc
-;_Z23split_path_and_filenamePKcPPcPiS2_S3_
_Z7bsscanfPKcS0_z
_Z7fstrschPKcS0_
-;_Z8next_argPPc
; semlock.c:
-;_Z10sem_unlockP13s_semlock_tag
-;_Z11sem_destroyP13s_semlock_tag
-;_Z11sem_trylockP13s_semlock_tag
-;_Z8sem_initP13s_semlock_tagi
-;_Z8sem_lockP13s_semlock_tag
; serial.c:
_Z12serial_btimePPhx
-;_Z12serial_int16PPhs
_Z12serial_int32PPhi
-;_Z12serial_int64PPhx
_Z13serial_stringPPhPKc
-;_Z13serial_uint16PPht
_Z13serial_uint32PPhj
_Z13serial_uint64PPhy
_Z14serial_float64PPhd
_Z14unserial_btimePPh
-;_Z14unserial_int16PPh
_Z14unserial_int32PPh
_Z15unserial_stringPPhPc
-;_Z15unserial_uint16PPh
_Z15unserial_uint32PPh
_Z15unserial_uint64PPh
_Z16unserial_float64PPh
; sha1.c:
-;_Z10SHA1UpdateP11SHA1ContextPKhj
-;_Z8SHA1InitP11SHA1Context
-;_Z9SHA1FinalP11SHA1ContextPh
; signal.c:
; smartall.c:
_Z10sm_reallocPKciPvj
-;_Z12actuallyfreePv
-;_Z12sm_check_rtnPKcib
-;_Z12sm_new_ownerPKciPc
-;_Z14actuallycallocjj
-;_Z14actuallymallocj
-;_Z15actuallyreallocPvj
_Z7sm_dumpb
_Z7sm_freePKciPv
_Z8sm_checkPKcib
_Z9sm_callocPKcijj
_Z9sm_mallocPKcij
-;_Z9sm_statici
; tls.c:
_Z15new_tls_contextPKcS0_S0_S0_PFiPciPKvES3_S0_b
-;_Z15tls_bsock_readnP5BSOCKPci
_Z16free_tls_contextP11TLS_Context
-;_Z16tls_bsock_acceptP5BSOCK
-;_Z16tls_bsock_writenP5BSOCKPci
-;_Z17tls_bsock_connectP5BSOCK
-;_Z18new_tls_connectionP11TLS_Contexti
-;_Z18tls_bsock_shutdownP5BSOCK
-;_Z19free_tls_connectionP14TLS_Connection
-;_Z25tls_postconnect_verify_cnP14TLS_ConnectionP5alist
-;_Z27tls_postconnect_verify_hostP14TLS_ConnectionPKc
; tree.c:
-;_Z11tree_relcwdPcP11s_tree_rootP11s_tree_node
_Z12tree_getpathP11s_tree_nodePci
-;_Z14make_tree_pathPcP11s_tree_root
_Z16insert_tree_nodePcS_iP11s_tree_rootP11s_tree_node
_Z8new_treei
_Z8tree_cwdPcP11s_tree_rootP11s_tree_node
_Z10var_configP6var_st12var_config_tz
_Z10var_createPP6var_st
_Z10var_expandP6var_stPKciPPcPii
-;_Z10var_formatP6var_stPPciPKcz
_Z11var_destroyP6var_st
-;_Z11var_formatvP6var_stPPciPKcS1_
_Z12var_strerrorP6var_st8var_rc_t
_Z12var_unescapeP6var_stPKciPcii
; watchdog.c:
-;watchdog_thread
_Z12new_watchdogv
_Z13stop_watchdogv
_Z14start_watchdogv
_Z17register_watchdogP12s_watchdog_t
-;_Z19unregister_watchdogP12s_watchdog_t
; workq.c:
-;workq_server
-;_Z10workq_initP9workq_tagiPFPvS1_E
-;_Z12workq_removeP9workq_tagP13workq_ele_tag
-;_Z13workq_destroyP9workq_tag
-;_Z9workq_addP9workq_tagPvPP13workq_ele_tagi
EXPORTS
; address_conf.obj
-;?set_type@IPADDR@@QAEXW4i_type@1@@Z
-;?get_type@IPADDR@@QBE?AW4i_type@1@XZ
?get_port_net_order@IPADDR@@QBEGXZ
-;?set_port_net@IPADDR@@QAEXG@Z
-;?get_family@IPADDR@@QBEHXZ
-;?get_sockaddr@IPADDR@@QAEPAUsockaddr@@XZ
-;?get_sockaddr_len@IPADDR@@QAEHXZ
-;?copy_addr@IPADDR@@QAEXPAV1@@Z
-;?set_addr_any@IPADDR@@QAEXXZ
-;?set_addr4@IPADDR@@QAEXPAUin_addr@@@Z
?get_address@IPADDR@@QAEPBDPADH@Z
-;?build_address_str@IPADDR@@QAEPBDPADH@Z
-;??? ?get_port_host_order@IPADDR@@QBEGXZ
-;?build_addresses_str@@YAPBDPAVdlist@@PADH@Z
?get_first_address@@YAPBDPAVdlist@@PADH@Z
-;?get_first_port_net_order@@YAHPAVdlist@@@Z
?get_first_port_host_order@@YAHPAVdlist@@@Z
?init_default_addresses@@YAXPAPAVdlist@@H@Z
?store_addresses@@YAXPAUs_lex_context@@PAURES_ITEM@@HH@Z
?store_addresses_port@@YAXPAUs_lex_context@@PAURES_ITEM@@HH@Z
?free_addresses@@YAXPAVdlist@@@Z
?sockaddr_get_port_net_order@@YAHPBUsockaddr@@@Z
-;?sockaddr_get_port@@YAHPBUsockaddr@@@Z
?sockaddr_to_ascii@@YAPADPBUsockaddr@@PADH@Z
-;; alist.obj
-;?grow_list@alist@@AAEXXZ
+; alist.obj
?first@alist@@QAEPAXXZ
-;?last@alist@@QAEPAXXZ
?next@alist@@QAEPAXXZ
-;?prev@alist@@QAEPAXXZ
?prepend@alist@@QAEXPAX@Z
?append@alist@@QAEXPAX@Z
?remove@alist@@QAEPAXH@Z
?decode_LinkFI@@YAJPADPAUstat@@@Z
?set_attributes@@YA_NPAVJCR@@PAUATTR@@PAUBFILE@@@Z
?encode_attribsEx@@YAHPAVJCR@@PADPAUFF_PKT@@@Z
-;?win_error@@YAXPAVJCR@@PAD1@Z
-;?win_error@@YAXPAVJCR@@PADK@Z
-;??$plug@I@@YAXAAI_K@Z
-;??$plug@_K@@YAXAA_K_K@Z
-;??$plug@G@@YAXAAG_K@Z
-;??$plug@F@@YAXAAF_K@Z
-;??$plug@J@@YAXAAJ_K@Z
-;??$plug@K@@YAXAAK_K@Z
; base64.obj
-;?base64_init@@YAXXZ
-;?to_base64@@YAH_JPAD@Z
-;?from_base64@@YAHPA_JPAD@Z
?bin_to_base64@@YAHPADH0HH@Z
; berrno.obj
; bfile.obj
?is_win32_stream@@YA_NH@Z
?stream_to_ascii@@YAPBDH@Z
-;?int64_LE2BE@@YAXPA_J_J@Z
-;?int32_LE2BE@@YAXPAJJ@Z
?processWin32BackupAPIBlock@@YA_NPAUBFILE@@PAXH@Z
?binit@@YAXPAUBFILE@@@Z
-;?set_win32_backup@@YA_NPAUBFILE@@@Z
?set_portable_backup@@YA_NPAUBFILE@@@Z
?set_prog@@YA_NPAUBFILE@@PADPAVJCR@@@Z
?is_portable_backup@@YA_NPAUBFILE@@@Z
?have_win32_api@@YA_NXZ
?is_restore_stream_supported@@YA_NH@Z
-;?bget_handle@@YAPAXPAUBFILE@@@Z
?bopen@@YAHPAUBFILE@@PBDHI@Z
?bclose@@YAHPAUBFILE@@@Z
?bread@@YAHPAUBFILE@@PAXI@Z
?bnet_tls_client@@YA_NPAUTLS_Context@@PAUBSOCK@@@Z
?bnet_wait_data@@YAHPAUBSOCK@@H@Z
?bnet_wait_data_intr@@YAHPAUBSOCK@@H@Z
-;?bnet_host2ipaddrs@@YAPAVdlist@@PBDHPAPBD@Z
?bnet_connect@@YAPAUBSOCK@@PAVJCR@@HHPBDPAD2HH@Z
?bnet_strerror@@YAPBDPAUBSOCK@@@Z
?bnet_fsend@@YA_NPAUBSOCK@@PBDZZ
?bnet_get_peer@@YAHPAUBSOCK@@PADH@Z
?bnet_set_buffer_size@@YA_NPAUBSOCK@@IH@Z
-;?bnet_set_nonblocking@@YAHPAUBSOCK@@@Z
-;?bnet_set_blocking@@YAHPAUBSOCK@@@Z
-;?bnet_restore_blocking@@YAXPAUBSOCK@@H@Z
?bnet_sig@@YA_NPAUBSOCK@@H@Z
?bnet_sig_to_ascii@@YAPBDPAUBSOCK@@@Z
?init_bsock@@YAPAUBSOCK@@PAVJCR@@HPBD1HPAUsockaddr@@@Z
?run_program_full_output@@YAHPADH0@Z
; bregex.obj
-;b_re_compile_initial
-;b_re_set_syntax
-;b_re_compile_fastmap
-;b_re_compile_pattern
b_regcomp
b_regexec
b_regerror
b_regfree
-;b_re_match
-;b_re_search
; bsnprintf.obj
?bsnprintf@@YAHPADJPBDZZ
?bstrncpy@@YAPADPADPBDH@Z
?bstrncpy@@YAPADPADAAVPOOL_MEM@@H@Z
?bstrncat@@YAPADPADPBDH@Z
-;?bstrncat@@YAPADPADAAVPOOL_MEM@@H@Z
?bstrcmp@@YA_NPBD0@Z
?cstrlen@@YAHPBD@Z
?bfree@@YAXPAX@Z
?b_malloc@@YAPAXPBDHI@Z
?brealloc@@YAPAXPAXI@Z
-;?bcalloc@@YAPAXII@Z
-;?bstrerror@@YAHHPADI@Z
?_p@@YAXPAPAUpthread_mutex_t_@@@Z
?_v@@YAXPAPAUpthread_mutex_t_@@@Z
?create_pid_file@@YAXPADPBDH@Z
?write_state_file@@YAXPADPBDH@Z
?drop@@YAXPAD0@Z
?bfgets@@YAPADPADHPAU_iobuf@@@Z
-;?make_unique_filename@@YAXPAPADHPAD@Z
; btime.obj
?bstrftime@@YAPADPADH_J@Z
?bstrftimes@@YAPADPADH_J@Z
-;?bstrftime_ny@@YAPADPADH_J@Z
?bstrftime_nc@@YAPADPADH_J@Z
?bstrutime@@YAPADPADH_J@Z
?str_to_utime@@YA_JPAD@Z
?get_current_btime@@YA_JXZ
?btime_to_unix@@YAJ_J@Z
?btime_to_utime@@YA_J_J@Z
-;?tm_wom@@YAHHH@Z
?tm_woy@@YAHJ@Z
?get_current_time@@YAXPAUdate_time@@@Z
-;?date_encode@@YANIEE@Z
-;?time_encode@@YANEEEM@Z
-;?date_time_encode@@YAXPAUdate_time@@IEEEEEM@Z
-;?date_decode@@YAXNPAIPAE1@Z
-;?time_decode@@YAXNPAE00PAM@Z
-;?date_time_decode@@YAXPAUdate_time@@PAIPAE2222PAM@Z
-;?tm_encode@@YAXPAUdate_time@@PAUtm@@@Z
?tm_decode@@YAXPAUdate_time@@PAUtm@@@Z
-;?date_time_compare@@YAHPAUdate_time@@0@Z
; btimers.obj
-;?start_child_timer@@YAPAUs_btimer_t@@HI@Z
-;?stop_child_timer@@YAXPAUs_btimer_t@@@Z
?start_thread_timer@@YAPAUs_btimer_t@@PAUpthread_t_@@I@Z
?start_bsock_timer@@YAPAUs_btimer_t@@PAUBSOCK@@I@Z
?stop_bsock_timer@@YAXPAUs_btimer_t@@@Z
; compat.obj
?SetVSSPathConvert@@YAXP6AHPBDPADH@ZP6AHPB_WPA_WH@Z@Z
-;?Win32ConvCleanupCache@@YAXXZ
-;?conv_unix_to_win32_path@@YAXPBDPADK@Z
-;?unix_name_to_win32@@YAXPAPADPAD@Z
-;?make_wchar_win32_path@@YAPADPADPAH@Z
?wchar_2_UTF8@@YAHPADPB_WH@Z
-;?UTF8_2_wchar@@YAHPAPADPBD@Z
-;?wchar_win32_path@@YAXPBDPA_W@Z
-;?make_win32_path_UTF8_2_wchar@@YAHPAPADPBDPAH@Z
-;?fcntl@@YAHHH@Z
-;?chmod@@YAHPBDI@Z
-;?chown@@YAHPBDII@Z
-;?lchown@@YAHPBDII@Z
?random@@YAJXZ
?srandom@@YAXI@Z
-;?cvt_utime_to_ftime@@YAXABJAAU_FILETIME@@@Z
-;?cvt_ftime_to_utime@@YAJABU_FILETIME@@@Z
?fstat@@YAHHPAUstat@@@Z
?stat@@YAHPBDPAU0@@Z
?fcntl@@YAHHHJ@Z
?lstat@@YAHPBDPAUstat@@@Z
?sleep@@YAXH@Z
-;?geteuid@@YAHXZ
-;?execvp@@YAHPBDQAPAD@Z
-;?fork@@YAHXZ
-;?pipe@@YAHQAH@Z
-;?waitpid@@YAHHPAHH@Z
-;?readlink@@YAHPBDPADH@Z
?strcasecmp@@YAHPBD0@Z
-;?strncasecmp@@YAHPBD0H@Z
?gettimeofday@@YAHPAUtimeval@@PAUtimezone@@@Z
-;?closelog@@YAXXZ
-;?getpwuid@@YAPAUpasswd@@I@Z
-;?getgrgid@@YAPAUgroup@@I@Z
?opendir@@YAPAXPBD@Z
?closedir@@YAHPAX@Z
?readdir_r@@YAHPAXPAUdirent@@PAPAU1@@Z
-;?inet_aton@@YAHPBDPAUin_addr@@@Z
-;?nanosleep@@YAHPBUtimespec@@PAU1@@Z
?init_signals@@YAXP6AXH@Z@Z
?init_stack_dump@@YAXXZ
?pathconf@@YAJPBDH@Z
?WSA_Init@@YAHXZ
-;?win32_chdir@@YAHPBD@Z
-;?win32_mkdir@@YAHPBD@Z
-;?win32_getcwd@@YAPADPADH@Z
?win32_fputs@@YAHPBDPAU_iobuf@@@Z
?win32_cgets@@YAPADPADH@Z
?win32_unlink@@YAHPBD@Z
-;??0winver@@QAE@XZ
-;?getArgv0@@YAPBDPBD@Z
-;?CreateChildProcess@@YAPAXPBDPAX11@Z
-;?ErrorExit@@YAXPBD@Z
?open_bpipe@@YAPAVBPIPE@@PADHPBD@Z
?kill@@YAHHH@Z
?close_bpipe@@YAHPAVBPIPE@@@Z
-;?close_wpipe@@YAHPAUs_bpipe@@@Z
?utime@@YAHPBDPAUutimbuf@@@Z
; cram-md5.obj
?append@dlist@@QAEXPAX@Z
?prepend@dlist@@QAEXPAX@Z
?insert_before@dlist@@QAEXPAX0@Z
-;?insert_after@dlist@@QAEXPAX0@Z
?binary_insert@dlist@@QAEPAXPAXP6AH00@Z@Z
?first@dlist@@QBEPAXXZ
?last@dlist@@QBEPAXXZ
?binary_search@dlist@@QAEPAXPAXP6AH00@Z@Z
?remove@dlist@@QAEXPAX@Z
?next@dlist@@QBEPAXPBX@Z
-;?prev@dlist@@QBEPAXPBX@Z
?destroy@dlist@@QAEXXZ
; drivetype.obj
?enable_backup_privileges@@YAHPAVJCR@@H@Z
; enh_fnmatch.obj
-;?enh_fnmatch_sub@@YAHPBD0HH@Z
; find.obj
?init_find_files@@YAPAUFF_PKT@@XZ
; find_one.obj
?find_one_file@@YAHPAVJCR@@PAUFF_PKT@@P6AH1PAX_N@Z2PADI3@Z
-;?term_find_one@@YAHPAUFF_PKT@@@Z
; fnmatch.obj
fnmatch
?hmac_md5@@YAXPAEH0H0@Z
; htable.obj
-;?hash_index@htable@@AAEXPAD@Z
-;??0htable@@QAE@PAX0H@Z
-;?init@htable@@QAEXPAX0H@Z
-;?size@htable@@QAEIXZ
-;?stats@htable@@QAEXXZ
-;?grow_table@htable@@AAEXXZ
-;?insert@htable@@QAE_NPADPAX@Z
-;?lookup@htable@@QAEPAXPAD@Z
-;?next@htable@@QAEPAXXZ
-;?first@htable@@QAEPAXXZ
-;?destroy@htable@@QAEXXZ
; idcache.obj
?getuser@@YAPADIPADH@Z
-;?free_getuser_cache@@YAXXZ
?getgroup@@YAPADIPADH@Z
-;?free_getgroup_cache@@YAXXZ
; jcr.obj
?lock_jobs@@YAXXZ
?unlock_jobs@@YAXXZ
-;?init_last_jobs_list@@YAXXZ
?term_last_jobs_list@@YAXXZ
-;?read_last_jobs_list@@YA_NH_K@Z
-;?write_last_jobs_list@@YA_KH_K@Z
?lock_last_jobs_list@@YAXXZ
?unlock_last_jobs_list@@YAXXZ
?job_end_push@@YAXPAVJCR@@P6AX0PAX@Z1@Z
; lex.obj
?scan_to_eol@@YAXPAUs_lex_context@@@Z
-;?scan_to_next_not_eol@@YAHPAUs_lex_context@@@Z
?lex_set_default_error_handler@@YAXPAUs_lex_context@@@Z
?lex_set_error_handler_error_type@@YAHPAUs_lex_context@@H@Z
?lex_close_file@@YAPAUs_lex_context@@PAU1@@Z
?lex_open_file@@YAPAUs_lex_context@@PAU1@PBDP6AX1H01ZZ@Z
-;?lex_get_char@@YAHPAUs_lex_context@@@Z
-;?lex_unget_char@@YAXPAUs_lex_context@@@Z
?lex_tok_to_str@@YAPBDH@Z
?lex_get_token@@YAHPAUs_lex_context@@H@Z
; makepath.obj
-;?isAbsolute@@YAHPBD@Z
-;?make_path@@YAHPAVJCR@@PBDHHIIHPAD@Z
; match.obj
?match_files@@YAHPAVJCR@@PAUFF_PKT@@P6AH1PAX_N@Z2@Z
?term_include_exclude_files@@YAXPAUFF_PKT@@@Z
?add_fname_to_include_list@@YAXPAUFF_PKT@@HPBD@Z
?add_fname_to_exclude_list@@YAXPAUFF_PKT@@PBD@Z
-;?get_next_included_file@@YAPAUs_included_file@@PAUFF_PKT@@PAU1@@Z
?file_is_included@@YAHPAUFF_PKT@@PBD@Z
?file_is_excluded@@YAHPAUFF_PKT@@PBD@Z
?MD5Init@@YAXPAUMD5Context@@@Z
?MD5Update@@YAXPAUMD5Context@@PAEI@Z
?MD5Final@@YAXQAEPAUMD5Context@@@Z
-;?MD5Transform@@YAXQAI0@Z
; mem_pool.obj
?sm_get_pool_memory@@YAPADPBDHH@Z
?sm_realloc_pool_memory@@YAPADPBDHPADJ@Z
?sm_check_pool_memory_size@@YAPADPBDHPADJ@Z
?sm_free_pool_memory@@YAXPBDHPAD@Z
-;?garbage_collect_memory_pool@@YAXXZ
?close_memory_pool@@YAXXZ
?print_memory_pool_stats@@YAXXZ
?pm_strcat@@YAHPAPADPBD@Z
?pm_strcat@@YAHAAPADPBD@Z
-;?pm_strcat@@YAHAAPADAAVPOOL_MEM@@@Z
?c_str@POOL_MEM@@QBEPADXZ
?pm_strcat@@YAHAAVPOOL_MEM@@PBD@Z
?check_size@POOL_MEM@@QAEPADJ@Z
?pm_strcpy@@YAHAAPADAAVPOOL_MEM@@@Z
?pm_strcpy@@YAHAAVPOOL_MEM@@PBD@Z
?max_size@POOL_MEM@@QAEJXZ
-;?realloc_pm@POOL_MEM@@QAEXJ@Z
-;?strcat@POOL_MEM@@QAEHPBD@Z
-;?strcpy@POOL_MEM@@QAEHPBD@Z
; message.obj
?my_name_is@@YAXHQAPADPBD@Z
?set_trace@@YAXH@Z
?get_trace@@YA_NXZ
?p_msg@@YAXPBDHH0ZZ
-;?t_msg@@YAXPBDHH0ZZ
?e_msg@@YAXPBDHHH0ZZ
?Jmsg@@YAXPAVJCR@@HJPBDZZ
?j_msg@@YAXPBDHPAVJCR@@HJ0ZZ
?q_msg@@YAXPBDHPAVJCR@@HJ0ZZ
; print.obj
-;?dopr@@YAHPADIPBD0P6AX0PAIIH@Z@Z
-;?__sprintf@@YAHPADPBDZZ
-;?__snprintf@@YAHPADIPBDZZ
-;?__vsprintf@@YAHPADPBD0@Z
-;?__vsnprintf@@YAHPADIPBD0@Z
; pythonlib.obj
?generate_daemon_event@@YAHPAVJCR@@PBD@Z
; queue.obj
?qinsert@@YAXPAUb_queue@@0@Z
-;?qremove@@YAPAUb_queue@@PAU1@@Z
?qnext@@YAPAUb_queue@@PAU1@0@Z
?qdchain@@YAPAUb_queue@@PAU1@@Z
?copy_runscript@@YAPAVRUNSCRIPT@@PAV1@@Z
?free_runscript@@YAXPAVRUNSCRIPT@@@Z
?run_scripts@@YAHPAVJCR@@PAValist@@PBD@Z
-;?is_local@RUNSCRIPT@@QAE_NXZ
?set_command@RUNSCRIPT@@QAEXPBD@Z
?set_target@RUNSCRIPT@@QAEXPBD@Z
?run@RUNSCRIPT@@QAEHPAVJCR@@PBD@Z
; rwlock.obj
?rwl_init@@YAHPAUs_rwlock_tag@@@Z
?rwl_destroy@@YAHPAUs_rwlock_tag@@@Z
-;?rwl_readlock@@YAHPAUs_rwlock_tag@@@Z
-;?rwl_readtrylock@@YAHPAUs_rwlock_tag@@@Z
-;?rwl_readunlock@@YAHPAUs_rwlock_tag@@@Z
?rwl_writelock@@YAHPAUs_rwlock_tag@@@Z
-;?rwl_writetrylock@@YAHPAUs_rwlock_tag@@@Z
?rwl_writeunlock@@YAHPAUs_rwlock_tag@@@Z
; save-cwd.obj
-;?save_cwd@@YAHPAUsaved_cwd@@@Z
-;?restore_cwd@@YAHPBUsaved_cwd@@PBD1@Z
-;?free_cwd@@YAXPAUsaved_cwd@@@Z
; scan.obj
?strip_leading_space@@YAXPAD@Z
?strip_trailing_junk@@YAXPAD@Z
?strip_trailing_newline@@YAXPAD@Z
-;?strip_trailing_slashes@@YAXPAD@Z
?skip_spaces@@YA_NPAPAD@Z
?skip_nonspaces@@YA_NPAPAD@Z
?fstrsch@@YAHPBD0@Z
?next_arg@@YAPADPAPAD@Z
?parse_args@@YAHPADPAPADPAH11H@Z
-;?split_path_and_filename@@YAXPBDPAPADPAH12@Z
?bsscanf@@YAHPBD0ZZ
; semlock.obj
-;?sem_init@@YAHPAUs_semlock_tag@@H@Z
-;?sem_destroy@@YAHPAUs_semlock_tag@@@Z
-;?sem_lock@@YAHPAUs_semlock_tag@@@Z
-;?sem_trylock@@YAHPAUs_semlock_tag@@@Z
-;?sem_unlock@@YAHPAUs_semlock_tag@@@Z
; serial.obj
-;?serial_int16@@YAXQAPAEF@Z
-;?serial_uint16@@YAXQAPAEG@Z
?serial_int32@@YAXQAPAEJ@Z
?serial_uint32@@YAXQAPAEI@Z
-;?serial_int64@@YAXPAPAE_J@Z
?serial_uint64@@YAXQAPAE_K@Z
?serial_btime@@YAXQAPAE_J@Z
?serial_float64@@YAXQAPAEN@Z
?serial_string@@YAXQAPAEQBD@Z
-;?unserial_int16@@YAFQAPAE@Z
-;?unserial_uint16@@YAGQAPAE@Z
?unserial_int32@@YAJQAPAE@Z
?unserial_uint32@@YAIQAPAE@Z
?unserial_uint64@@YA_KQAPAE@Z
?unserial_string@@YAXQAPAEQAD@Z
; sha1.obj
-;?SHA1Init@@YAHPAUSHA1Context@@@Z
-;?SHA1Final@@YAHPAUSHA1Context@@QAE@Z
-;?SHA1Update@@YAHPAUSHA1Context@@PBEI@Z
; signal.obj
; smartall.obj
-;?sm_new_owner@@YAXPBDHPAD@Z
?sm_free@@YAXPBDHPAX@Z
?sm_malloc@@YAPAXPBDHI@Z
?sm_calloc@@YAPAXPBDHII@Z
?sm_realloc@@YAPAXPBDHPAXI@Z
-;?actuallymalloc@@YAPAXI@Z
-;?actuallycalloc@@YAPAXII@Z
-;?actuallyrealloc@@YAPAXPAXI@Z
-;?actuallyfree@@YAXPAX@Z
?sm_dump@@YAX_N@Z
?sm_check@@YAXPBDH_N@Z
-;?sm_check_rtn@@YAHPBDH_N@Z
?sm_static@@YAXH@Z
; tls.obj
?free_tree@@YAXPAUs_tree_root@@@Z
?insert_tree_node@@YAPAUs_tree_node@@PAD0HPAUs_tree_root@@PAU1@@Z
?strrchr@@YAPADPADH@Z
-;?make_tree_path@@YAPAUs_tree_node@@PADPAUs_tree_root@@@Z
?tree_getpath@@YAHPAUs_tree_node@@PADH@Z
?tree_cwd@@YAPAUs_tree_node@@PADPAUs_tree_root@@PAU1@@Z
-;?tree_relcwd@@YAPAUs_tree_node@@PADPAUs_tree_root@@PAU1@@Z
; util.obj
?is_buf_zero@@YAHPADH@Z
?lcase@@YAXPAD@Z
?bash_spaces@@YAXPAD@Z
?bash_spaces@@YAXAAVPOOL_MEM@@@Z
-;??? ?c_str@POOL_MEM@@QBEPADXZ
?unbash_spaces@@YAXPAD@Z
?unbash_spaces@@YAXAAVPOOL_MEM@@@Z
?encode_time@@YAPADJPAD@Z
?var_config@@YA?AW4var_rc_t@@PAUvar_st@@W4var_config_t@@ZZ
?var_unescape@@YA?AW4var_rc_t@@PAUvar_st@@PBDHPADHH@Z
?var_expand@@YA?AW4var_rc_t@@PAUvar_st@@PBDHPAPADPAHH@Z
-;?var_formatv@@YA?AW4var_rc_t@@PAUvar_st@@PAPADHPBDPAD@Z
-;?var_format@@YA?AW4var_rc_t@@PAUvar_st@@PAPADHPBDZZ
?var_strerror@@YAPBDPAUvar_st@@W4var_rc_t@@@Z
; watchdog.obj
?stop_watchdog@@YAHXZ
?new_watchdog@@YAPAUs_watchdog_t@@XZ
?register_watchdog@@YA_NPAUs_watchdog_t@@@Z
-;?unregister_watchdog@@YA_NPAUs_watchdog_t@@@Z
; winapi.obj
?InitWinAPIWrapper@@YAXXZ
; workq.obj
-;?workq_init@@YAHPAUworkq_tag@@HP6APAXPAX@Z@Z
-;?workq_destroy@@YAHPAUworkq_tag@@@Z
-;?workq_add@@YAHPAUworkq_tag@@PAXPAPAUworkq_ele_tag@@H@Z
-;?workq_remove@@YAHPAUworkq_tag@@PAUworkq_ele_tag@@@Z