bug-wget
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Bug-wget] alpha release (1.13.4.56-620c) (was: [PATCH] gnutls.c: fi


From: Steven M. Schweda
Subject: Re: [Bug-wget] alpha release (1.13.4.56-620c) (was: [PATCH] gnutls.c: fix infinite read timeout)
Date: Wed, 23 May 2012 22:48:10 -0500 (CDT)

>    It's not really your fault, but the GNU regex code (lib/regcomp.c)
> has an annoying portability problem, because what could easily have been
> a compile-time decision was postponed until run-time.  A good compiler
> complains about loss of significant bits when BITSET_WORD_BITS < 64:
> 
>       if (BITSET_WORD_BITS == 64)
>         {
>           dfa->word_char[0] = UINT64_C (0x03ff000000000000);
>           dfa->word_char[1] = UINT64_C (0x07fffffe87fffffe);
> 
> Not fatal, however, only annoying.  (And, I claim, stupid.  And
> relatively easy to fix, unless you _really_ like it the way it is, which
> seems to be the case for the GNU regex maintainer.)

   Actually, on VAX (where a 64-bit integer type in unavailable), it's
fatal:

CC /decc  /include =  ([], [.VAX], [-.SRC.VAX], [-.VMS])   /prefix_library_entri
es =  (all_entries, except = (getopt, optarg, opterr, optind, optopt))    /objec
t = [.VAX]REGEX.OBJ /define = (VMS, _POSIX_EXIT, OS_TYPE="""VMS VAX V7.3"""  , -
"ENABLE_DEBUG"  , "HAVE_LIBSSL", "ENABLE_NTLM"  ) [-.LIB]REGEX.C
                  dfa->word_char[0] = UINT64_C (0x03ff000000000000);
        ..............................^
%CC-E-INTCONST, Ill-formed integer constant.
                At line number 963 in SYS$SYSDEVICE:[UTILITY.SOURCE.WGET.WGET-1_
13_4_56-620C.LIB]REGCOMP.C;1.

                  dfa->word_char[1] = UINT64_C (0x07fffffe87fffffe);
        ..............................^
%CC-E-INTCONST, Ill-formed integer constant.
                At line number 964 in SYS$SYSDEVICE:[UTILITY.SOURCE.WGET.WGET-1_
13_4_56-620C.LIB]REGCOMP.C;1.


>    I assume that I'll find more problems as I try to get the new code
> into the VMS builders, but those are the ones which popped up first.

   I'm such a pessimist.  Actually, with a little adjustment to the
VMS-specific files, building on Alpha (and, I assume, on IA64 -- What
could go wrong?) seems to be ok.  Even more amazingly, I seem to have
found a truly stupid-looking work-around for that
should-have-been-compile-time conditionality problem in the GNU regex
code on VAX:

# ifdef __VAX
#  define UINT64_C(c) 0

Apparently, at least in some cases, one piece of truly stupid code can
cancel out another.

   HAVE_FSEEKO and HAVE_FTELLO (also unavailable on VAX) seem to get
about as much respect as HAVE_SYS_SELECT_H and HAVE_SYS_SOCKET_H, but I
should be able to deal with that, too.

   I haven't done any serious testing (just fetched a Web page on
Alpha), but, except for the problems previously reported, builds on VMS
should be possible.

------------------------------------------------------------------------

   Steven M. Schweda               address@hidden
   382 South Warwick Street        (+1) 651-699-9818
   Saint Paul  MN  55105-2547



reply via email to

[Prev in Thread] Current Thread [Next in Thread]