zoulx1982@163.com writes:
> I startup postgres in win server 2008 64-bit with
> shared_buffers=1073741819, but find it doesn't work.
Well, that's hardly the fault of my_log2. What you should have gotten
is
FATAL: requested shared memory size overflows size_t
and I do get that when I try that value. Apparently the overflow check
in mul_size() is broken in your build. Did you build it yourself, and
if so with which compiler and what compilation options? If you didn't
build it yourself, where did you get it from?
> size_t in win64 is 8 bytes, so add_size and mul_size can't check overflow,
Sure they can. Or at least if they can't, it's not because of size_t
being 8 bytes. That code works fine on every other 64-bit platform.
regards, tom lane