Re: Problem with CVS source

"Nikos Balkanas" <[email protected]>
Newsgroups gmane.comp.mobile.kannel.devel
Message-ID <000701c93977$5fd5fa40$02b2a8c0@tardis>
Dear Martin,

gcc is the standard stock 64bit gcc shipped with Solaris 10.

Server2:~-> gcc -v
Reading specs from /usr/sfw/lib/gcc/i386-pc-solaris2.10/3.4.3/specs
Configured with: 
/builds/sfw10-gate/usr/src/cmd/gcc/gcc-3.4.3/configure --prefix=/usr/sfw --with-as=/usr/sfw/bin/gas 
 --with-gnu-as --with-ld=/usr/ccs/bin/ld --without-gnu-ld --enable-languages=c,c++ 
 --enable-shared
Thread model: posix
gcc version 3.4.3 (csl-sol210-3_4-branch+sol_rpath)

It doesn't seem to be a gcc issue, inasmuch the same exactly source code 
compiles without a problem with gateway-1.4.1. Includes are also identical 
upto 1 level below (cannot follow the whole tree).

You have a better acquaintance with the code at that point. I don't disagree 
that a correct solution is needed, but in a 64-bit compilation what is the 
use of cheking the limits on a 32bit float? Of course you have the same 
problem with a 32bit compile and this time it may be more crucial.

Nikos

----- Original Message ----- 
From: "Martin Conte Mac Donell" <[email protected]>
To: "Nikos Balkanas" <[email protected]>
Cc: <[email protected]>
Sent: Wednesday, October 29, 2008 5:04 AM
Subject: Re: Problem with CVS source


> 2008/10/28 Nikos Balkanas <[email protected]>:
>> Hi,
>>
>> After looking at it a bit longer, I think I need some help with it. In
>> Solaris 10.5 the cvs is broken. The build failes in wmlscript/wlexer.c
>> (1037):
>>
>> if (*result == *HUGE_VAL || *result == -(*HUGE_VAL)>.>..>..// NIKOS!!
>>         || ws_ieee754_encode_single(*result, buf) != WS_IEEE754_OK)
>>         ws_src_error(compiler, 0, "floating point literal too large");
>> Are these lines really important? We are talking for a 64bit build here 
>> (of
>> course the same lines will affect 32bit builds as well). HUGE_VAL is
>> undefined in the CVS version:
>>
>> Undefined                       first referenced
>>  symbol                             in file
>> __builtin_huge_val                  libwmlscript.a(wslexer.o)
>> ld: fatal: Symbol referencing errors. No output written to 
>> wmlscript/wmlsc
>> This is after I commented out the relevant code in wslexer.c and filled 
>> in
>> for a simple printf. Of interest is that in the CVS version HUGE_VAL is a
>> undefined pointer, whereas in the 1.4.1 version it is a float(correct).
>>
>> Source, includes and dependencies are exactly the same:
>>
>> gateway-1.4.1/.depend:
>> wmlscript/wslexer.o: wmlscript/wslexer.c wmlscript/wsint.h ./gw-config.h 
>> \
>>   ./gwlib/gwassert.h ./gwlib/log.h wmlscript/ws.h wmlscript/wsutf8.h \
>>   wmlscript/wserror.h wmlscript/wsieee754.h wmlscript/wsbuffer.h \
>>   wmlscript/wsencode.h wmlscript/wsalloc.h wmlscript/wsfalloc.h \
>>   wmlscript/wsstream.h wmlscript/wshash.h wmlscript/wsbc.h \
>>   wmlscript/wsstree.h wmlscript/wsasm.h wmlscript/wsopt.h \
>>   wmlscript/wsstdlib.h wmlscript/wsgram.h
>>
>> CVS/.depend:
>> wmlscript/wslexer.o wmlscript/wslexer.i: wmlscript/wslexer.c \
>>   wmlscript/wsint.h ./gw-config.h ./gwlib/gwassert.h ./gwlib/log.h \
>>   wmlscript/ws.h wmlscript/wsutf8.h wmlscript/wserror.h \
>>   wmlscript/wsieee754.h wmlscript/wsbuffer.h wmlscript/wsencode.h \
>>   wmlscript/wsalloc.h wmlscript/wsfalloc.h wmlscript/wsstream.h \
>>   wmlscript/wshash.h wmlscript/wsbc.h wmlscript/wsstree.h \
>>   wmlscript/wsasm.h wmlscript/wsopt.h wmlscript/wsstdlib.h \
>>   wmlscript/wsgram.h
>> Where is wmlscript invoked? I have some issues right now with the client, 
>> so
>> I cannot run a debugger on it.
>>
>> Any help would be appreciated.
>>
>> Thanks,
>> Nikos
>>
>> ----- Original Message -----
>> From: Nikos Balkanas
>> To: Stipe Tolj
>> Cc: [email protected]
>> Sent: Monday, October 27, 2008 9:43 PM
>> Subject: Re: Problem with CVS source
>>
>> Dear Stipe,
>>
>> It seems that the problem is not what I first suspected. You see the file
>> wslexer.c is exactly the same in both cases (gateway-1.4.1 and cvs 
>> gateway).
>> Therefore it is not a HUGE_VAL problem I first suspected.
>>
>> This is strange. I am using exactly the same environment, gcc, 
>> configuration
>> as with the gateway-1.4.1 version. Yet make fails on exactly the same 
>> file.
>> I will have to look more into it. Meanwhile if you have seen this before,
>> pls let me know.
>>
>> Nikos
>> On Mon, Oct 27, 2008 at 9:26 PM, Nikos Balkanas <[email protected]> 
>> wrote:
>>>
>>> Thanks, Stipe, for the fast reply. Please see my comments inlined.
>>>
>>> Regards,
>>>
>>> Nikos
>>>
>>> On Mon, Oct 27, 2008 at 8:10 PM, Stipe Tolj <[email protected]> wrote:
>>>>
>>>> Nikos Balkanas schrieb:
>>>> > Hi,
>>>> >
>>>> > I am rather new to the list. I tried to download and compile the 
>>>> > latest
>>>> > CVS source and I got the following error:
>>>> >
>>>> > gcc -std=gnu99 -D_REENTRANT=1 -I. -Igw -O6 -s -m64 -D_LARGE_FILES=
>>>> > -I/usr/include/libxml2 -I/usr/local/include -Wall -Wmissing-prototypes
>>>> > -Wmissing-declarations -Wnested-externs -Winline -Wformat
>>>> > -Wformat-security -Wmissing-format-attribute -Wall
>>>> > -I/usr/local/ssl/include -o wmlscript/wslexer.o -c 
>>>> > wmlscript/wslexer.c
>>>> > wmlscript/wslexer.c:222: warning: no previous prototype for 
>>>> > 'ws_yy_lex'
>>>> > wmlscript/wslexer.c: In function `read_float_from_exp':
>>>> > wmlscript/wslexer.c:1037: error: invalid operands to binary ==
>>>> > wmlscript/wslexer.c:1038: error: wrong type argument to unary minus
>>>> > make: *** [wmlscript/wslexer.o] Error 1
>>>>
>>>> there is something wrong with your local CVS checkout tree. Make sure 
>>>> you
>>>>
>>>>  $ make clean
>>>>  $ make
>>>
>>> To be sure I rm -rf gateway and restored from CVS again.
>>>
>>>>
>>>> in order to remove any previously build objects. The configure run was
>>>> clean?
>>>
>>>
>>> Yes. Apart from docbook support which I don't particular care (This is a
>>> minimal server for security/performance reasons)
>>>  CFLAGS="-O6 -s -m64 -DSunOS" CPPFLAGS="-I/usr/local/ssl/include"
>>> configure --build=ia64-pc-solaris2.10 --libdir=/usr/local/lib/64
>>> --enable-ssl --enable-cookies --enable-debug --enable-warnings --enable-docs
>>> --mandir=/usr/local/man --with-ssl=/usr/local/ssl --enable-pcre
>>>
>>> gateway-1.4.1 compiled with the same configuration with no problems.
>>> The issue seems to be with HUGE_VAL and Solaris. I don't have a linux in
>>> front of me to check, but in solaris 10.5 in 
>>> /usr/include/iso/math_iso.h:
>>> #define HUGE_VAL __huge_val._d
>
> HUGE_VAL is a standard C feature. And __builtin_huge_val() is a
> GCC-specific extension for implementing this one.
>
> gcc had some troubles with math.h in solaris.
>
> Which gcc version are you using?
>
> M
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.