I have some new information.  If I add the attached patch to snprintf.c,
I should see see snprintf() being called printing "0", vsnprintf()
printing "1" and dopr(), "2".  However, I only see "0" printing in the
server logs.

I think this means it is finding our /port/snprintf(), but when it calls
vsnprintf, it must be using some other version, probably the operating
system version that doesn't support %lld.

I am also attaching the 'nm' output from libpgport_srv.a which does show
vsnprintf as being defined.

Win32 doesn't like multiply defined symbols so we use
-Wl,--allow-multiple-definition to allow multiple symbols.

I bet if I define LONG_LONG_INT_FORMAT as '%I64d' it would pass the
regression tests.  (I will test now.)  Our config/c-library.m4 file
confirms that format for MinGW:

        # MinGW uses '%I64d', though gcc throws an warning with -Wall,

The big question is why our own vsnprintf() is not being called from
snprintf() in our port file.

-- 
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073
*** snprintf.c  Tue Mar  1 19:02:13 2005
--- /laptop/tmp/snprintf.c      Tue Mar  1 20:27:21 2005
***************
*** 96,101 ****
--- 96,102 ----
        int                     len;
        va_list         args;
  
+ puts("0");
        va_start(args, fmt);
        len = vsnprintf(str, count, fmt, args);
        va_end(args);
***************
*** 109,114 ****
--- 110,116 ----
        char *end;
        str[0] = '\0';
        end = str + count - 1;
+ puts("1");
        dopr(str, fmt, args, end);
        if (count > 0)
                end[0] = '\0';
***************
*** 178,183 ****
--- 180,186 ----
                int     realpos;
        } fmtpar[NL_ARGMAX+1], *fmtparptr[NL_ARGMAX+1];
  
+ puts("2");
  
        format_save = format;
        output = buffer;
crypt.o:
00000000 b .bss
00000000 d .data
00000000 t .text
00000060 b _a64toi
00002ce0 b _CF6464
000003c0 t _CIFP
000034e0 b _constdatablock
00000441 T _crypt
000034f0 b _cryptresult
00000760 t _des_cipher
00000000 d _des_ready
000006c2 t _des_setkey
000000c0 t _ExpandTr
000018e0 b _IE3264
00000a84 t _init_des
00000f0f t _init_perm
00000080 t _IP
00000400 t _itoa64
00003510 b _KS
000003a0 t _P32Tr
00000100 t _PC1
000000e0 b _PC1ROT
00000160 t _PC2
000008e0 b _PC2ROT
00000000 b _perm.0
00000000 t _permute
00000138 t _Rotates
000001a0 t _S
00001ce0 b _SPE
00000040 b _tmp32.1

fseeko.o:
00000000 b .bss
00000000 d .data
00000000 t .text

getrusage.o:
00000000 b .bss
00000000 d .data
00000000 t .text
         U ___udivdi3
         U ___umoddi3
         U __dosmaperr
         U __errno
         U [EMAIL PROTECTED]
         U [EMAIL PROTECTED]
         U [EMAIL PROTECTED]
00000000 T _getrusage

inet_aton.o:
00000000 b .bss
00000000 d .data
00000000 t .text
         U __imp____mb_cur_max
         U __imp___pctype
         U __isctype
         U [EMAIL PROTECTED]
00000000 T _inet_aton

random.o:
00000000 b .bss
00000000 d .data
00000000 t .text
         U _lrand48
00000000 T _random

srandom.o:
00000000 b .bss
00000000 d .data
00000000 t .text
         U _srand48
00000000 T _srandom

unsetenv.o:
00000000 b .bss
00000000 d .data
00000000 t .text
         U _getenv
         U _malloc
         U _putenv
         U _sprintf
00000004 T _unsetenv

getaddrinfo_srv.o:
00000000 b .bss
00000000 d .data
00000000 t .text
         U _atoi
         U _free
         U [EMAIL PROTECTED]
         U [EMAIL PROTECTED]
         U [EMAIL PROTECTED]
         U _inet_aton
         U [EMAIL PROTECTED]
         U _malloc
         U _memcpy
         U [EMAIL PROTECTED]
0000025a T _pg_freeaddrinfo
000002ca T _pg_gai_strerror
00000000 T _pg_getaddrinfo
000002f6 T _pg_getnameinfo
         U _snprintf
         U [EMAIL PROTECTED]

copydir.o:
00000000 b .bss
00000000 d .data
00000000 t .text
00000000 t ___func__.0
         U _AllocateDir
000000a5 T _copydir
         U [EMAIL PROTECTED]
         U _errcode_for_file_access
         U _errfinish
         U _errmsg
         U _errstart
         U _FreeDir
         U _mkdir
         U _readdir
         U _snprintf

gettimeofday.o:
00000000 b .bss
00000000 d .data
00000000 t .text
         U ___udivdi3
00000000 t _epoch
         U [EMAIL PROTECTED]
00000008 T _gettimeofday
         U [EMAIL PROTECTED]

kill.o:
00000000 b .bss
00000000 d .data
00000000 t .text
         U __errno
         U [EMAIL PROTECTED]
         U [EMAIL PROTECTED]
00000015 T _pgkill
         U _wsprintfA

open.o:
00000000 b .bss
00000000 d .data
00000000 t .text
         U __assert
         U __errno
         U __open_osfhandle
         U __setmode
         U [EMAIL PROTECTED]
         U [EMAIL PROTECTED]
         U [EMAIL PROTECTED]
00000000 t _openFlagsToCreateFileFlags
00000160 T _win32_open

rand.o:
00000000 b .bss
00000000 d .data
00000000 t .text
00000000 t __dorand48
0000000c D __rand48_add
00000006 D __rand48_mult
00000000 D __rand48_seed
000000bd T _lrand48
000000ed T _srand48

snprintf.o:
00000000 b .bss
00000000 d .data
00000000 t .text
         U ___udivdi3
         U ___umoddi3
         U __alloca
         U __vsnprintf
000000dd t _dopr
00000c73 t _dopr_outch
00000c09 t _dostr
00000b29 t _fmtfloat
00000986 t _fmtnum
00000000 b _fmtpar.0
00050050 b _fmtparptr.1
000008cc t _fmtstr
00000000 T _printf
         U _putchar
         U _puts
00000055 T _snprintf
         U _sprintf
00000083 T _vsnprintf

dirmod_srv.o:
00000000 b .bss
00000000 d .data
00000000 t .text
00000000 t ___func__.0
00000137 t ___func__.1
00000230 t ___func__.2
000005ec t ___func__.3
         U __errno
         U _closedir
         U [EMAIL PROTECTED]
         U [EMAIL PROTECTED]
         U [EMAIL PROTECTED]
         U [EMAIL PROTECTED]
         U _elog_finish
         U _elog_start
         U _errcode_for_file_access
         U _errfinish
         U _errmsg
         U _errstart
000004c2 t _fnames
000005b8 t _fnames_cleanup
         U [EMAIL PROTECTED]
         U [EMAIL PROTECTED]
         U [EMAIL PROTECTED]
         U [EMAIL PROTECTED]
         U [EMAIL PROTECTED]
         U _opendir
         U _pfree
         U _pgport_palloc
         U _pgport_pstrdup
00000081 T _pgrename
00000282 T _pgsymlink
00000182 T _pgunlink
         U _pgwin32_backend_usleep
         U _readdir
         U [EMAIL PROTECTED]
         U _repalloc
         U _rmdir
0000062c T _rmtree
         U _snprintf
         U _sprintf
         U _stat
         U _strchr
         U _strcpy
         U _unlink

exec_srv.o:
00000000 b .bss
00000000 d .data
00000000 t .text
000000d2 t ___func__.0
000008a5 t ___func__.1
         U __errno
         U __imp____mb_cur_max
         U __imp___pctype
         U __isctype
         U __pclose
         U _canonicalize_path
         U [EMAIL PROTECTED]
         U [EMAIL PROTECTED]
         U [EMAIL PROTECTED]
         U [EMAIL PROTECTED]
         U _elog_finish
         U _elog_start
00000181 T _find_my_exec
00000514 T _find_other_exec
         U _first_dir_separator
         U _first_path_separator
         U [EMAIL PROTECTED]
         U _getcwd
         U _getenv
         U _join_path_components
         U _last_dir_separator
         U _memset
00000971 T _pclose_check
         U _perror
         U _pg_strcasecmp
00000610 t _pipe_read_line
         U [EMAIL PROTECTED]
000004f3 t _resolve_symlinks
         U _snprintf
         U _stat
         U _strcat
         U _strchr
         U _strcmp
         U _strcpy
         U _strerror
         U _strncpy
00000005 t _validate_exec
         U [EMAIL PROTECTED]

noblock.o:
00000000 b .bss
00000000 d .data
00000000 t .text
         U [EMAIL PROTECTED]
00000000 T _set_noblock

path.o:
00000000 b .bss
00000000 d .data
00000000 t .text
         U __imp____mb_cur_max
         U __imp___iob
         U __imp___pctype
         U __isctype
00000210 T _canonicalize_path
         U _exit
         U _find_my_exec
0000008f T _first_dir_separator
000000bc T _first_path_separator
         U _fprintf
000004d3 T _get_etc_path
00000620 T _get_home_path
0000050b T _get_include_path
00000580 T _get_includeserver_path
000005b4 T _get_lib_path
000005f3 T _get_locale_path
00000684 T _get_parent_directory
0000052a T _get_pkginclude_path
000005d3 T _get_pkglib_path
00000323 T _get_progname
0000049f T _get_share_path
         U _getenv
0000012d T _join_path_components
000000d9 T _last_dir_separator
0000010e T _make_native_path
000003d8 t _make_relative_path
         U _pg_strcasecmp
         U _putenv
000006bc T _set_pglocale_pgservice
         U _setlocale
         U [EMAIL PROTECTED]
00000000 t _skip_drive
         U _snprintf
         U _strdup
         U _strncmp
         U _strncpy
00000772 t _trim_directory
00000805 t _trim_trailing_separator

pipe.o:
00000000 b .bss
00000000 d .data
00000000 t .text
00000000 t ___func__.0
         U [EMAIL PROTECTED]
         U [EMAIL PROTECTED]
         U [EMAIL PROTECTED]
         U [EMAIL PROTECTED]
         U _errfinish
         U _errmsg_internal
         U _errstart
         U [EMAIL PROTECTED]
         U [EMAIL PROTECTED]
         U [EMAIL PROTECTED]
         U [EMAIL PROTECTED]
00000164 T _pgpipe
0000042e T _piperead
         U [EMAIL PROTECTED]
         U [EMAIL PROTECTED]
         U [EMAIL PROTECTED]

pgsleep.o:
00000000 b .bss
00000000 d .data
00000000 t .text
00000000 T _pg_usleep
         U [EMAIL PROTECTED]

pgstrcasecmp.o:
00000000 b .bss
00000000 d .data
00000000 t .text
         U __imp____mb_cur_max
         U __imp___pctype
         U __isctype
00000000 T _pg_strcasecmp
0000010e T _pg_strncasecmp
000002aa T _pg_tolower
00000234 T _pg_toupper
         U _tolower
         U _toupper

sprompt.o:
00000000 b .bss
00000000 d .data
00000000 t .text
         U __imp___iob
         U _fclose
         U _fflush
         U _fgets
         U _fopen
         U _fputc
         U _fputs
         U _free
         U [EMAIL PROTECTED]
         U [EMAIL PROTECTED]
         U _malloc
00000000 D _prompt_state
         U [EMAIL PROTECTED]
0000000d T _simple_prompt

thread_srv.o:
00000000 b .bss
00000000 d .data
00000000 t .text
         U [EMAIL PROTECTED]
00000039 T _pqGethostbyname
00000000 T _pqStrerror
         U _strerror
         U _strncpy
         U [EMAIL PROTECTED]
---------------------------(end of broadcast)---------------------------
TIP 3: if posting/reading through Usenet, please send an appropriate
      subscribe-nomail command to [EMAIL PROTECTED] so that your
      message can get through to the mailing list cleanly

Reply via email to