Showing posts with label 64-bit. Show all posts
Showing posts with label 64-bit. Show all posts

Thursday, May 17, 2007

Building Boost 1.34 for x86, x64 and IA64

The new version of Boost library has been released recently. Since we have released ApexSQL Log 2005.04 just the other day, we can now migrate our source base to Boost 1.34. This post will deal with building of Boost static libraries for side-by-side compilation and linking of x86, x64 and IA64 libraries. This is now much easier than it was in Boost 1.33 but there is still some work to be done.

1. Download Boost and Boost.Jam from here.
2. Put Boost.Jam binary into a directory on your PATH.
3. Uncompress Boost library into a directory of your choice.
4. There is an error in one of Boost build files that needs to be fixed before compiling for IA64 architecture:
  1. Go to boost_1_34_0\tools\build\v2\tools folder.
  2. Open msvc.jam in your favorite editor (mine is by *far* Visual Studio itself)
  3. Replace all instances of "x86_IPF" with "x86_ia64" (there should be two)
There is also an omission in the same file and native x64 compiler will be used only on boxes with %PROCESS_IDENTIFIER% matching AMD64. So if you have Intel based x64 CPU build will be done with x86-x64 cross-compiler. It's just slower but the results are the same. If it bothers you, you should be able to fix it easily.

5. Go to command prompt, change directory to boost_1_34 and build Boost library for all three architectures.
  • For x86:
bjam msvc architecture=x86 stage
  • For x64:
bjam msvc architecture=x86 address-model=64 stage
  • For IA64:
bjam msvc architecture=ia64 stage

6. Install x86 libraries:

bjam msvc architecture=x86 install

By default Boost will install its include and lib files into C:\Boost\lib and C:\Boost\include\boost-1_34. The problem with this is that if want to install x64 or IA64 static library files these will overwrite x86 static library files already installed. To avoid this we need to move all x86 static libraries to C:\Boost\lib\x86 (this is my solution - obviously other solutions are possible) so that these aren't overwritten by subsequent installations.

7. Install x64 libraries:

bjam msvc architecture=x86 address-model=64 install

Again, move these libraries from C:\Boost\lib to C:\Boost\lib\x64.

8. Install IA64 libraries:

bjam msvc architecture=architecture=ia64 install

Now move these libraries C:\Boost\lib to C:\Boost\lib\ia64.

9. Adapt your Visual C++ projects so that:
  • x86 platform links libraries from C:\Boost\lib\x86
  • x64 platform links libraries from C:\Boost\lib\x64
  • ia64 platform links libraries from C:\Boost\lib\ia64
That's it! You should now be ready to use Boost libraries for binaries on all three Windows platforms.

Update: Fixed a typo in "For IA64" build statement.

Friday, December 29, 2006

ApexSQL Log 2005.03 released

Today we have released ApexSQL Log 2005.03. It's been six months since the last release and there are several major features that we packed in 2005.03, of which the most important, and definitely the most anticipated by our users, is full x64 support. This includes support for SQL Server 2005 x64 and for 32-bit SQL Server 7/2000/2005 running on Windows x64 operating systems (including online transaction log reading). Beside this we have added BLOB support to our Recovery Wizard (only when recovering from MDF files though, not from transaction log files) and we have greatly improved performance of MDF recovery. There is a host of other smaller features accompanied with another host of really important bug fixes.

I almost forgot that we have also created a separate installer for server-side components. This is now our recommended way to install server-side components since it allows uninstallation directly from Add/Remove Programs. Of course, remote installation/uninstallation from the client is still supported in GUI and CLI.

So, if you are interested in top-of-the-line transaction log reader (reading online and detached transaction logs and transaction log backups) and recovery tool (allowing recovery of deleted, dropped, truncated and even corrupted data and database objects from transaction log files or database files) for SQL Server 7, 2000 and 2005 (as of 12/29/2006 the only such tool on the market to support SQL Server 2005) that works equally well on your 32-bit and 64-bit SQL Servers, you may want to download here a 30 day evaluation version of ApexSQL Log 2005.03 and give it a go. While you are at it, maybe you will also want to check out our Universal Studio, packing all 9 of our tools with 1 year of full support and 1 year of major upgrades for just USD 1,999.

The full list of features and fixes of ApexSQL Log 2005.03 follows.

----------------------------------------------------
RELEASE 2005.03.0417
DATE: 29 December 2006
DESCRIPTION: Major Enhancement/Fix release
----------------------------------------------------

Enhancements:
- Added support for Windows 64-bit and SQL Server 2005 64-bit for x64 CPUs (MAJOR ENHANCEMENT)
- Added BLOB support in recovery of deleted rows and rows in truncated and dropped tables when using database sources for recovery (online database files and MDF files) (MAJOR ENHANCEMENT)
- Significantly improved performance of data recovery from MDF files, online or detached (MAJOR ENHANCEMENT)
- Added support for online transaction log and database files on drives mounted as NTFS folders.
- Added support for in-row values for BLOB types.
- Added SERVER_NAME column to Connection Monitor table allowing for filtering by the name of the server where transaction log was created.
- Added xp_ApexSqlLogMonitor_Enable and xp_ApexSqlLogMonitor_Disable extended procedures.
- In generation of UNDO/REDO statements:
- Added SET IDENTITY_INSERT ON/OFF for INSERT operations.
- Added transaction wrapping for DELETE operations.
- Changed preference for construction of WHERE statments to primary key over clustered index.
- For heap tables, added generation of WHERE clause from values of all non-BLOB fields.
- Added skipping of BLOB and TIMESTAMP fields.
- In recovery from detached MDF files, added loading of meta-data from a live database when such is unaivalable in MDF files.
- For recovery on SQL Server 2005, modified algorhitms to improve chances of success in suboptimal recovery scenarios.
- Added SET NOCOUNT ON to recovery scripts.

Changes:
- Last used filter now is stored per server and database.
- Added server name to login information captured by Connection Monitor.

Fixes:
- A problem with conversion of _variant_t to __int64 (MAJOR FIX)
- A problem with memory over-consumption (MAJOR FIX)
- A problem with activation not taking immediate effect on the server side (MAJOR FIX)
- A problem with old ID mapping feature (MAJOR FIX)
- A problem with multiple value switches in CLI (MAJOR FIX)
- Parsing of table names in command line interface (table names can now be specified with within angular brackets)
- A problem with NULL values in WHERE statements.
- A problem with UNICODE table names and table names with quotes in CLI and Recovery Wizard.
- A problem with Connection Monitor with automatic restart.
- A problem with Connection Monitor sometimes failing to flush rows from temporary login table.
- A rare problem with table names on case-sensitive databases.
- A problem with user ID showing as N/A even when it's known.
- A problem with refreshing of transaction log operations grid.
- A problem with NULL/NOT NULL flag in table DDL scripts.
- A rare problem with transaction log reading.
- A rare unhandled NULL exception.
- A rare problem of mistaken table ID for dropped tables on SQL Server 2005.
- An exception in About box when not connected to any server.
- Several errors in captions and messages.
- Several icons in the Log Filter dialog.