Re: FreeTDS port to VMS V9.x on x86?

Liste des GroupesRevenir à co vms 
Sujet : Re: FreeTDS port to VMS V9.x on x86?
De : craigberry (at) *nospam* nospam.mac.com (Craig A. Berry)
Groupes : comp.os.vms
Date : 06. Jun 2025, 13:54:21
Autres entêtes
Organisation : A noiseless patient Spider
Message-ID : <101uodt$28rq1$1@dont-email.me>
References : 1 2 3 4 5 6 7 8 9
User-Agent : Mozilla Thunderbird
On 6/5/25 8:35 PM, Arne Vajhøj wrote:
On 6/5/2025 5:16 PM, Craig A. Berry wrote:
On 6/5/25 12:33 PM, Simon Clubley wrote:
On 2025-06-05, Arne Vajhøj <arne@vajhoej.dk> wrote:
Mysterious.
>
stat = dbfcmd(con, "INSERT INTO t1 VALUES(%d, '%s')", f1, f2esc);
>
fails.
>
char buf[1000];
sprintf(buf, "INSERT INTO t1 VALUES(%d, '%s')", f1, f2esc);
stat = dbcmd(con, buf);
>
works.
>
And DBLIB.C contains:
>
RETCODE
dbfcmd(DBPROCESS * dbproc, const char *fmt, ...)
{
 
      va_start(ap, fmt);
      len = vasprintf(&s, fmt, ap);
      va_end(ap);
 
Does this _exact_ code work on Alpha ?
>
If yes, try building your test code with compiler optimisation disabled.
>
If that doesn't work, try building the library itself with compiler
optimisation disabled.
>
>
$ mmk clean
$ @[.vms]configure
$ mmk/MACRO=__DEBUG__=1
>
 It is vasprintf that return -1.
 It happens with both normal build and /DEB/NOOPT.
 I have not tried on Alpha yet.
 
Any compiler build warnings either in the library or your test code ?
(Try setting warnings to fatal to abort the build if you get a lot of
output during building).
 There are just a few %CC-I-QUESTCOMPARE.
 
I am trying to eliminate the possibility you may have stumbled across
a compiler bug.
 It is a mystery.
 I have a query that use dbfcmd and it works. But it fails for
my updates.
 I created a standalone example doing the same just without any FreeTDS.
 It works fine.
 $ typ z.c
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <stdarg.h>
 void dbfcmd(void *dbproc, const char *fmt, ...)
{
     va_list ap;
     char *s;
     int len;
     va_start(ap, fmt);
     len = vasprintf(&s, fmt, ap);
     va_end(ap);
     printf("len=%d s=|%s|\n", len, s);
     free(s);
}
 int main()
{
     dbfcmd(NULL, "INSERT INTO t1 VALUES(%d, '%s')", 999, "XXX");
     dbfcmd(NULL, "INSERT INTO t1 VALUES(%d, '%s')", 999, "XXX");
     dbfcmd(NULL, "INSERT INTO t1 VALUES(%d, '%s')", 999, "XXXXXX");
     return 0;
}
 $ r z
len=33 s=|INSERT INTO t1 VALUES(999, 'XXX')|
len=33 s=|INSERT INTO t1 VALUES(999, 'XXX')|
len=36 s=|INSERT INTO t1 VALUES(999, 'XXXXXX')|
 I must be missing something.
Check for the line in your generated descrip.mms that starts with:
VASPRINTFOBJ =
If the right-hand side is empty, you are using the system-supplied
vasprintf, which is what should happen.  If it's not empty, you are
getting a replacement vasprintf() from FreeTDS, which in turn means the
detection code in configure.com is not working right (unless you are on
a version of VMS before vasprintf() was added to the CRTL).  Either
should work in principle, but it could be one difference between your
standalone test and your FreeTDS test.
It sounds like you are set up to use the debugger now so you can examine
the arguments being passed to vasprintf().  But you can also create a
dump file like so:
$ define TDSDUMP tdsdump.log
and you'll get all sorts of logging info.

Date Sujet#  Auteur
3 Jun 25 * FreeTDS port to VMS V9.x on x86?56Richard Jordan
3 Jun 25 `* Re: FreeTDS port to VMS V9.x on x86?55Arne Vajhøj
3 Jun 25  `* Re: FreeTDS port to VMS V9.x on x86?54Arne Vajhøj
3 Jun 25   +* Re: FreeTDS port to VMS V9.x on x86?45Craig A. Berry
5 Jun 25   i`* Re: FreeTDS port to VMS V9.x on x86?44Arne Vajhøj
5 Jun 25   i `* Re: FreeTDS port to VMS V9.x on x86?43Arne Vajhøj
5 Jun 25   i  `* Re: FreeTDS port to VMS V9.x on x86?42Simon Clubley
5 Jun 25   i   `* Re: FreeTDS port to VMS V9.x on x86?41Craig A. Berry
6 Jun 25   i    `* Re: FreeTDS port to VMS V9.x on x86?40Arne Vajhøj
6 Jun 25   i     `* Re: FreeTDS port to VMS V9.x on x86?39Craig A. Berry
6 Jun 25   i      `* Re: FreeTDS port to VMS V9.x on x86?38Arne Vajhøj
6 Jun 25   i       `* Re: FreeTDS port to VMS V9.x on x86?37Craig A. Berry
6 Jun 25   i        `* Re: FreeTDS port to VMS V9.x on x86?36Arne Vajhøj
6 Jun 25   i         `* Re: FreeTDS port to VMS V9.x on x86?35Arne Vajhøj
23 Jun 25   i          `* Re: FreeTDS port to VMS V9.x on x86?34Craig A. Berry
24 Jun 25   i           `* Re: FreeTDS port to VMS V9.x on x86?33Arne Vajhøj
24 Jun 25   i            `* Re: FreeTDS port to VMS V9.x on x86?32Lawrence D'Oliveiro
24 Jun 25   i             `* Re: FreeTDS port to VMS V9.x on x86?31Arne Vajhøj
24 Jun 25   i              +* Re: FreeTDS port to VMS V9.x on x86?3Lawrence D'Oliveiro
24 Jun 25   i              i`* Re: FreeTDS port to VMS V9.x on x86?2Arne Vajhøj
24 Jun 25   i              i `- Re: FreeTDS port to VMS V9.x on x86?1Lawrence D'Oliveiro
24 Jun 25   i              `* Re: FreeTDS port to VMS V9.x on x86?27Craig A. Berry
24 Jun 25   i               `* Re: FreeTDS port to VMS V9.x on x86?26Arne Vajhøj
24 Jun 25   i                +- Re: FreeTDS port to VMS V9.x on x86?1Arne Vajhøj
24 Jun 25   i                `* Re: FreeTDS port to VMS V9.x on x86?24Arne Vajhøj
24 Jun 25   i                 `* Re: FreeTDS port to VMS V9.x on x86?23Craig A. Berry
24 Jun 25   i                  `* Re: FreeTDS port to VMS V9.x on x86?22Arne Vajhøj
25 Jun 25   i                   +* Re: FreeTDS port to VMS V9.x on x86?19Arne Vajhøj
25 Jun 25   i                   i`* Re: FreeTDS port to VMS V9.x on x86?18Craig A. Berry
1 Jul 25   i                   i `* Re: FreeTDS port to VMS V9.x on x86?17Arne Vajhøj
2 Jul 25   i                   i  +- Re: FreeTDS port to VMS V9.x on x86?1Lawrence D'Oliveiro
3 Jul 25   i                   i  `* Re: FreeTDS port to VMS V9.x on x86?15Arne Vajhøj
3 Jul 25   i                   i   `* Re: FreeTDS port to VMS V9.x on x86?14Dan Cross
3 Jul 25   i                   i    `* Re: FreeTDS port to VMS V9.x on x86?13Arne Vajhøj
3 Jul 25   i                   i     +* Re: FreeTDS port to VMS V9.x on x86?9Dan Cross
3 Jul 25   i                   i     i+* Re: FreeTDS port to VMS V9.x on x86?6Craig A. Berry
4 Jul 25   i                   i     ii+* Re: FreeTDS port to VMS V9.x on x86?4Arne Vajhøj
4 Jul 25   i                   i     iii`* Re: FreeTDS port to VMS V9.x on x86?3Craig A. Berry
4 Jul 25   i                   i     iii `* Re: FreeTDS port to VMS V9.x on x86?2Arne Vajhøj
4 Jul 25   i                   i     iii  `- Re: FreeTDS port to VMS V9.x on x86?1Dan Cross
4 Jul 25   i                   i     ii`- Re: FreeTDS port to VMS V9.x on x86?1Dan Cross
4 Jul 25   i                   i     i`* Re: FreeTDS port to VMS V9.x on x86?2Arne Vajhøj
4 Jul 25   i                   i     i `- Re: FreeTDS port to VMS V9.x on x86?1Dan Cross
4 Jul 25   i                   i     `* Re: FreeTDS port to VMS V9.x on x86?3Lawrence D'Oliveiro
4 Jul 25   i                   i      `* Re: FreeTDS port to VMS V9.x on x86?2Arne Vajhøj
4 Jul 25   i                   i       `- Re: FreeTDS port to VMS V9.x on x86?1Lawrence D'Oliveiro
27 Jun 25   i                   `* Re: FreeTDS port to VMS V9.x on x86?2Lawrence D'Oliveiro
1 Jul 25   i                    `- Re: FreeTDS port to VMS V9.x on x86?1Arne Vajhøj
3 Jun 25   +- Re: FreeTDS port to VMS V9.x on x86?1Richard Jordan
14 Jun 25   `* Re: FreeTDS port to VMS V9.x on x86?7Arne Vajhøj
15 Jun 25    `* Re: FreeTDS port to VMS V9.x on x86?6Lawrence D'Oliveiro
15 Jun 25     `* Re: FreeTDS port to VMS V9.x on x86?5Arne Vajhøj
15 Jun 25      `* Re: FreeTDS port to VMS V9.x on x86?4Lawrence D'Oliveiro
16 Jun 25       `* Re: FreeTDS port to VMS V9.x on x86?3Arne Vajhøj
16 Jun 25        `* Re: FreeTDS port to VMS V9.x on x86?2Lawrence D'Oliveiro
16 Jun 25         `- Re: FreeTDS port to VMS V9.x on x86?1Arne Vajhøj

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal