Hi, guysHow is it going? when I build libmad in different platforms, i found two flags settings are different. I do not understand what those flags are used for, can any expert tell me about it? When i build libmad , i first ./configure, and then make. when I build it on 32 bits mac and 32 bits centOS, i have flags FPM_INTEL ASO_ZEROCHECK
when I build it on 64 bits ubuntu and 64 bits centOS, I have flags FPM_DEFAULT In this case, Makefile do not have ASO_ZEROCHECK flag.
i try to build libmad in my own program on those systems. i need to set the flags in my program.
Any ideas about this?
Another question is about : in libmad Makefile, there are lots of optimization flags. are those flags critical and should I also brought them all to my program?
Thanks! Leon
On Oct 9, 2009, at 4:14 PM, leon deng wrote:
when I build libmad in different platforms, i found two flags settings are different. I do not understand what those flags are used for, can any expert tell me about it? When i build libmad , i first ./configure, and then make. when I build it on 32 bits mac and 32 bits centOS, i have flags FPM_INTEL ASO_ZEROCHECK
when I build it on 64 bits ubuntu and 64 bits centOS, I have flags FPM_DEFAULT In this case, Makefile do not have ASO_ZEROCHECK flag.
Probably they should be the same for 64 bits (amd64) as for 32 bits (i386).
FPM_INTEL means to use the x86 assembler instructions for fixed-point multiplication. ASO_ZEROCHECK is an optimization that works well under x86 so should be enabled by default.
You could try FPM_64BIT as an alternative. FPM_DEFAULT should be avoided because it provides poor accuracy.
Another question is about : in libmad Makefile, there are lots of optimization flags. are those flags critical and should I also brought them all to my program?
The optimization flags were hand-picked because at the time they were chosen they worked better than e.g. a simple -O2. They are only useful when building libmad and are probably not necessary to duplicate for the rest of your program.