[Flac-dev] FLAC x64?

King, Joshua Joshua.King at dsto.defence.gov.au
Wed Sep 12 20:33:55 PDT 2007


Valentin,

FLAC 1.2.0 does build and run on Windows XP x64 edition with a couple of
small modifications.

I had to make modifications mainly to disable the assembly optimisation
(because only NASM in CVS supports Windows x64) and to disable Ogg FLAC
support (because I didn't build that library).
Haven't done significant testing, except to say that for me the
libFLAC++ DLL is working here on x64. I keep meaning to clean it up and
write down what I did.

Note that I compiled on top of the Microsoft Platform SDK and Microsoft
Visual C++ 2005 Express Edition (which doesn't natively support AMD64).

Here's the rough steps I followed:
* Get FLAC v1.2.0 source code
http://flac.sourceforge.net/download.html

* Get Visual C++ 2005 Express Edition and SP1
http://msdn2.microsoft.com/en-au/express/aa975050.aspx

* Get the Windows Platform SDK as described here
http://msdn2.microsoft.com/en-au/express/aa700755.aspx

* Fix the following x64 bug (now fixed in CVS)
--- src/libFLAC/lpc.c.orig	Sun Sep  2 00:13:36 2007
+++ src/libFLAC/lpc.c	Sun Sep  2 00:14:01 2007
@@ -569,7 +569,7 @@ void
FLAC__lpc_compute_residual_from_qlp_coefficients_
 }
 #else /* fully unrolled version for normal use */  {
-	unsigned i;
+	int i;
 	FLAC__int64 sum;
 
 	FLAC__ASSERT(order > 0);
@@ -1099,7 +1099,7 @@ void FLAC__lpc_restore_signal_wide(const
FLAC__int32 r  }  #else /* fully unrolled version for normal use */  {
-	unsigned i;
+	int i;
 	FLAC__int64 sum;
 
 	FLAC__ASSERT(order > 0);
-- 

* Open VS2005EE via the "Set Windows XP x64 Build Environment (Retail)"
option in the Start Menu. Open VS2005EE from this command prompt (ie,
find the vcexpress.exe file and run it). This ensures you get the 64-bit
compiler.

* Open the FLAC solution file from the FLAC source code.

* In all of the projects, change the compiler defines to remove
FLAC_HAS_OGG and remove all references to NASM as well, and change the
linker's Machine Type from X86 to "Not Set" and add /MACHINE:AMD64 as an
additional parameter.

* Tell Visual Studio to exclude the .nasm files from the build.

* Compile everything, fixing the remaining couple of issues I've
forgotten, one of which will be applying this fix:
http://support.microsoft.com/kb/894573
For the default buffer overrun protection added by Microsoft, and
another will be a small change to another file to remove some inline
assembly.

This should get you started


Joshua King
Defence Science and Technology Organisation
Email: joshua.king at dsto.defence.gov.au

IMPORTANT: This email remains the property of the Australian Defence
Organisation and is subject to the jurisdiction of section 70 of the
Crimes Act 1914. If you have received this email in error, you are
requested to contact the sender and delete the email. 

>-----Original Message-----
>From: flac-dev-bounces at xiph.org 
>[mailto:flac-dev-bounces at xiph.org] On Behalf Of Valentin Zaychenko
>Sent: Wednesday, 12 September 2007 2:39 PM
>To: flac-dev at xiph.org
>Subject: Re: [Flac-dev] FLAC x64?
>
>Hello!
>
>As I understand, there is versions of FLAC for Linux x64. Such 
>question, whether is native x64-86 versions for OS Windows?
>
>Best regards, Valentin.
>_______________________________________________
>Flac-dev mailing list
>Flac-dev at xiph.org
>http://lists.xiph.org/mailman/listinfo/flac-dev
>


More information about the Flac-dev mailing list