It seems that most compilers define some sort of architecture values, but 
they're not necessarily consistent across all compilers. I believe that the 
original point of the FLAC__CPU_X86_64 and similar defines was to make these 
consistent within the FLAC sources, but not to reinvent the wheel entirely.

As others have pointed out, there are autoconf solutions for architecture 
detection, and it would make sense to leverage these and set FLAC__CPU_X86_64 
and related defines in the headers based on config.

Don't forget cross-compiling. Sometimes a developer wants to build for a 
different architecture than the one running.

Brian


On Dec 28, 2015, at 11:35 AM, lvqcl <lvqcl.m...@gmail.com> wrote:
> In stream_encoder.c there's the following code:
> 
>  #if defined FLAC__CPU_X86_64 /* and other 64-bit arch, too */
>      if(mean <= 0x80000000/512) { /* 512: more or less optimal for both 16- 
> and 24-bit input */
>  #else
>      if(mean <= 0x80000000/8) { /* 32-bit arch: use 32-bit math if possible */
>  #endif
> 
> A) How to properly check for 64-bit architectures?
> I can check for "defined FLAC__CPU_X86_64" or "defined _WIN64".
> Is it possible to use SIZEOF_VOIDP? such as "#if SIZEOF_VOIDP == 8" ?
> 
> B) Does it make sense to put the following code into some header file?
> (if yes, what header file should be used?)
> 
> 
>  #if (defined FLAC__CPU_X86_64) || ...something else here...
>  #define FLAC__64BIT_ARCH 1
>  #else
>  #undef FLAC__64BIT_ARCH
>  #endif
_______________________________________________
flac-dev mailing list
flac-dev@xiph.org
http://lists.xiph.org/mailman/listinfo/flac-dev

Reply via email to