freetds AT lists.ibiblio.org
Subject: FreeTDS Development Group
List archive
- From: "Craig A. Berry" <craigberry AT mac.com>
- To: FreeTDS Development Group <freetds AT lists.ibiblio.org>
- Subject: Re: [freetds] [PATCH] VMS build update
- Date: Tue, 15 Oct 2013 07:17:04 -0500
On Oct 14, 2013, at 12:57 AM, Frediano Ziglio <freddy77 AT gmail.com> wrote:
> 2013/10/13 Craig A. Berry <craigberry AT mac.com>:
>> Make the VMS-specific configuration and build procedures handle threads,
>> plus admit to having some other things that we do have but weren't
>> configuring for, such as clock_gettime(), socketpair(), getaddrinfo(), and
>> stdio locking.
>>
>> The attached patch was created with git format-patch and should be
>> applicable with git am. Or GNU patch -p1 for traditionalists.
>>
>
> What can I say. Pushed!
Many thanks.
>> 6e3afa4d (Frediano Ziglio 2013-06-05 12:47:50 +0100 1127) i
>> = fgetc(hostfile);
>> 6e3afa4d (Frediano Ziglio 2013-06-05 12:47:50 +0100 1128) if
>> (i == EOF)
>> 6e3afa4d (Frediano Ziglio 2013-06-05 12:47:50 +0100 1129)
>> return _bcp_check_eof(dbproc, hostfile, 0);
>> 6e3afa4d (Frediano Ziglio 2013-06-05 12:47:50 +0100 1130)
>> ungetc(i, hostfile);
>>
>
> Well... this patch use some stdio extension to make read faster... but
> fails on standard C calls ?? What a crazy world! It just try to detect
> if we are at end of the file without removing a character!
What you're doing is completely reasonable, but appears to trigger a pretty
nasty bug in the C run-time where calling fgetc/ungetc corrupts the return
value of a subsequent fread. Since FreeTDS always checks the return value of
fread in _bcp_read_hostfile, it knows something is bonkers and bails out.
I've documented what goes wrong with a simple reproducer at
<https://sourceforge.net/p/vms-ports/tickets/72/>. Not sure what to do yet
as a workaround. I guess we could skip the above if it's purely an
optimization. Or I could try to implement my own ungetc by fiddling with the
pointers in the stdio struct.
________________________________________
Craig A. Berry
mailto:craigberry AT mac.com
"... getting out of a sonnet is much more
difficult than getting in."
Brad Leithauser
-
[freetds] [PATCH] VMS build update,
Craig A. Berry, 10/12/2013
-
Re: [freetds] [PATCH] VMS build update,
Frediano Ziglio, 10/14/2013
-
Re: [freetds] [PATCH] VMS build update,
Craig A. Berry, 10/15/2013
-
Re: [freetds] [PATCH] VMS build update,
Frediano Ziglio, 10/15/2013
- Re: [freetds] [PATCH] VMS build update, Craig A. Berry, 10/15/2013
-
Re: [freetds] [PATCH] VMS build update,
Frediano Ziglio, 10/15/2013
-
Re: [freetds] [PATCH] VMS build update,
Craig A. Berry, 10/15/2013
-
Re: [freetds] [PATCH] VMS build update,
Frediano Ziglio, 10/14/2013
Archive powered by MHonArc 2.6.24.