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, 16:14:37
Autres entêtes
Organisation : A noiseless patient Spider
Message-ID : <101v0kt$2at4q$1@dont-email.me>
References : 1 2 3 4 5 6 7 8 9 10 11
User-Agent : Mozilla Thunderbird
On 6/6/25 9:42 AM, Arne Vajhøj wrote:
On 6/6/2025 8:54 AM, Craig A. Berry wrote:
 > 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:
 >>>>> And DBLIB.C contains:
 >>>>>
 >>>>> RETCODE
 >>>>> dbfcmd(DBPROCESS * dbproc, const char *fmt, ...)
 >>>>> {
  >>>>>       va_start(ap, fmt);
 >>>>>       len = vasprintf(&s, fmt, ap);
 >>>>>       va_end(ap);
  >> It is vasprintf that return -1.
 >>
 >> It happens with both normal build and /DEB/NOOPT.
 >> I created a standalone example doing the same just without any FreeTDS.
 >>
 >> It works fine.
 >> 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.
 Bingo.
 $ diff descrip.mms
************
File DKA0:[arne.freetds.freetds-1_5_2]descrip.mms;2
   149   VASPRINTFOBJ =
   150   STRTOK_ROBJ =
******
File DKA0:[arne.freetds.freetds-1_5_2]descrip.mms;1
   149   VASPRINTFOBJ = [.src.replacements]vasprintf$(OBJ),
   150   STRTOK_ROBJ =
************
 $ diff [.include]config.h
************
File DKA0:[arne.freetds.freetds-1_5_2.include]config.h;2
   234   #define HAVE_VASPRINTF 1
   235
******
File DKA0:[arne.freetds.freetds-1_5_2.include]config.h;1
   234   #define HAVE_VASPRINTF 0
   235
************
 And now dbfcmd works.
 Of course it does not explain why the replacement doesn't work.
Nor why the detection code doesn't correctly identify that vasprintf is
present.  That detection code has been there unchanged for 23 years:
https://github.com/FreeTDS/freetds/blob/a381342bbfccafc0aa9ed2376e38470907d53225/vms/configure.com#L267
#include <stdarg.h>
#include <stdio.h>
#include <stdlib.h>
int main()
{
char *ptr;
vasprintf(&ptr,"%d,%d",1,2);
exit(0);
}
But it isn't using va_start/va_end, which it surely should. My guess is
this worked by accident on pre-x86 but something tightened up on x86
that makes the vasprintf call fail and causes FreeTDS to use its
fallback implementation.  I'm without access at the moment so can't test
this theory out myself.

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 Jul02:00   i                   i     iii`* Re: FreeTDS port to VMS V9.x on x86?3Craig A. Berry
4 Jul02:14   i                   i     iii `* Re: FreeTDS port to VMS V9.x on x86?2Arne Vajhøj
4 Jul05:38   i                   i     iii  `- Re: FreeTDS port to VMS V9.x on x86?1Dan Cross
4 Jul05:31   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 Jul06:06   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 Jul02:21   i                   i      `* Re: FreeTDS port to VMS V9.x on x86?2Arne Vajhøj
4 Jul02:41   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