error: 'LDBL_MIN_EXP' undeclared

Tim Prince n8tm@aol.com
Thu Aug 7 12:36:00 GMT 2014


On 8/7/2014 5:11 AM, Jonathan Wakely wrote:
> On 7 August 2014 01:34, YuGiOhJCJ Mailing-List wrote:
>> Hello,
>>
>> I am building a cross compiler (linux 32 bits -> windows 32 bits).
>> I have compiled:
>> - binutils-2.22
>> - gcc-4.8.0
>> - w32api library
>>
>> But when I try to compile mingwrt library, I got an error:
>> $ make
>> Making `all' in `mingwex'
>> make[1]: Entering directory `/home/yugiohjcj/documents/downloads/software/mingwrt-3.20-2-mingw32/mingwex'
>> i686-pc-mingw32-gcc -c  -g -O2   -Wall -fomit-frame-pointer -I. -I.. -I../include -nostdinc -iwithprefixbefore include -I ../../w32api/include ./math/hypotl.c -o hypotl.o
>> ./math/hypotl.c: In function 'hypotl':
>> ./math/hypotl.c:63:15: error: 'LDBL_MAX_EXP' undeclared (first use in this function)
>>       if (exx > LDBL_MAX_EXP)
>>                 ^
>> ./math/hypotl.c:63:15: note: each undeclared identifier is reported only once for each function it appears in
>> ./math/hypotl.c:68:13: error: 'LDBL_MIN_EXP' undeclared (first use in this function)
>>     if (exx < LDBL_MIN_EXP)
>>               ^
>> make[1]: *** [hypotl.o] Error 1
>> make[1]: Leaving directory `/home/yugiohjcj/documents/downloads/software/mingwrt-3.20-2-mingw32/mingwex'
>> make: *** [mingwex] Error 2
>>
>> What is this undeclared LDBL_MIN_EXP element?
>
>
> That looks like part of mingw, not GCC.
My Windows installations of gcc (including mingw) have their own 
<float.h> built automatically as an apparently standard part of gcc, 
containing
#define LDBL_MIN_EXP    __LDBL_MIN_EXP__
and gcc -c -E -dM mains.c|grep LDBL_MIN_EXP shows
#define __LDBL_MIN_EXP__ (-16381)
In pre-built i686 mingw you need the mingw64-i686*-headers installation, 
which I suppose is needed in the target directory to build cross compiler.
I'm not clear on the extent to which long double is supported in various 
Windows gcc implementations, but this much apparently is expected in 
current versions.
So I would have thought that you would have this defined as a result of 
building your gcc.



More information about the Gcc-help mailing list