| From: | Dave Page <dpage(at)postgresql(dot)org> |
|---|---|
| To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
| Cc: | Gregory Stark <stark(at)enterprisedb(dot)com>, Rainer Bauer <usenet(at)munnin(dot)com>, pgsql-hackers(at)postgresql(dot)org |
| Subject: | Re: Problem with ControlFileData structure being ABI dependent |
| Date: | 2007-12-07 11:27:35 |
| Message-ID: | 47592E27.7000802@postgresql.org |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
Tom Lane wrote:
> AFAIK, time_t is a Unix-ism, so it's pretty unlikely to be used in the
> APIs of anything on Windows.
Oh, it is.
> I guess my advice would be to see if we can define _USE_32BIT_TIME_T
> in port/win32.h and make it go away that way. It'd definitely be nice
> if MSVC and Mingw builds weren't binary-incompatible.
The attached patch defines it in the MSVC project files along with the
other API-config related macros. It fixes all the offsets so they match
mingw, but the CRC is still different for some as-yet unknown reason...
VC++ with patch:
WARNING: sizeof(ControlFileData)=392
WARNING: offsetof(state)=16
WARNING: offsetof(time)=20
WARNING: offsetof(checkPoint)=24
WARNING: offsetof(prevCheckPoint)=32
WARNING: offsetof(checkPointCopy)=40
WARNING: offsetof(minRecoveryPoint)=76
WARNING: offsetof(maxAlign)=84
WARNING: offsetof(floatFormat)=88
WARNING: offsetof(blcksz)=96
WARNING: offsetof(relseg)=100
WARNING: offsetof(xlog)=104
WARNING: offsetof(xlog)=108
WARNING: offsetof(nameDataLen)=112
WARNING: offsetof(indexMaxKeys)=116
WARNING: offsetof(toast)=120
WARNING: offsetof(enableIntTimes)=124
WARNING: offsetof(localeBuflen)=128
WARNING: offsetof(lc)=132
WARNING: offsetof(lc)=260
WARNING: offsetof(crc)=388
WARNING: crc = 2265484434
Mingw:
WARNING: sizeof(ControlFileData)=392
WARNING: offsetof(state)=16
WARNING: offsetof(time)=20
WARNING: offsetof(checkPoint)=24
WARNING: offsetof(prevCheckPoint)=32
WARNING: offsetof(checkPointCopy)=40
WARNING: offsetof(minRecoveryPoint)=76
WARNING: offsetof(maxAlign)=84
WARNING: offsetof(floatFormat)=88
WARNING: offsetof(blcksz)=96
WARNING: offsetof(relseg)=100
WARNING: offsetof(xlog)=104
WARNING: offsetof(xlog)=108
WARNING: offsetof(nameDataLen)=112
WARNING: offsetof(indexMaxKeys)=116
WARNING: offsetof(toast)=120
WARNING: offsetof(enableIntTimes)=124
WARNING: offsetof(localeBuflen)=128
WARNING: offsetof(lc)=132
WARNING: offsetof(lc)=260
WARNING: offsetof(crc)=388
WARNING: crc = 3643130025
/D
| Attachment | Content-Type | Size |
|---|---|---|
| 32bit-time_t.diff | text/x-patch | 1.2 KB |
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Dave Page | 2007-12-07 11:49:28 | Re: Problem with ControlFileData structure being ABI dependent |
| Previous Message | Albert Cervera i Areny | 2007-12-07 07:51:59 | Re: "distributed checkpoint" |