RE: BUG #15080: ecpg on windows doesn't define HAVE_LONG_LONG_INT
Huong Dangminh <huo-dangminh@ys.jp.nec.com>
From: Huong Dangminh <huo-dangminh@ys.jp.nec.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Jonathan Allen <jallen@americansavingslife.com>,
Andrew Gierth <andrew@tao11.riddles.org.uk>,
"pgsql-bugs@lists.postgresql.org" <pgsql-bugs@lists.postgresql.org>,
Michael Meskes <meskes@postgresql.org>,
Akio Iwaasa <aki-iwaasa@vt.jp.nec.com>
Date: 2018-05-19T15:41:21Z
Lists: pgsql-bugs
Hi, Thanks for working a lot in this thread. > From: Tom Lane [mailto:tgl@sss.pgh.pa.us] > I wrote: > > BTW, after further digging I am suspicious that this means that we > > need to propagate HAVE_STRTOLL and HAVE_STRTOULL into ecpg_config.h > > not only pg_config.h. I'm not totally sure which compiles include > > just the former not the latter. > > After looking closer, ecpg only examines HAVE_STRTOLL and HAVE_STRTOULL > in ecpglib/data.c, which does include the main config file, so we should > be good on that. I agreed. > > I'm going to wait and see if the buildfarm is unhappy before trying to > > change that, though. It will help prove whether we're actually > > getting useful test coverage. > > Nonetheless, all the 32-bit buildfarm critters are falling over, and the > reason is now obvious: HAVE_LONG_LONG_INT isn't getting defined in the test > code, because neither pg_config.h nor ecpg_config.h ever get included > there. > > As a stopgap measure, we could stick #include <ecpg_config.h> into just > that one test file. I notice however that there are more problems. > In particular, sqltypes.h supposes it has access to HAVE_LONG_LONG_INT_64, > which seems utterly naive. You have done it as the "hot-fix", thanks. Also thanks for fixing the failed of "Buildfarm member dromedary". # I also feel curious about it. > It seems like really we need <ecpg_config.h> in sqltypes.h at least, and > if we don't want more bugs of the same ilk in future, it'd be wise to stick > it into something that's included by all ecpg-generated code, like ecpglib.h. > I am however worried about invasion of client namespace if we do that, so > not quite sure what to do here. Thoughts? I am also inclined to the above, by the way. >> Is this another problem in linux? Or am I wrong something? > > That would depend on what platform you're running on: if it's 64-bit > then "long int" is probably 64 bits wide, making that a perfectly valid answer. Thanks, I was misunderstood. Thanks and best regards, --- Dang Minh Huong NEC Solution Innovators, Ltd. http://www.nec-solutioninnovators.co.jp/en/
Commits
-
Remove configure's check for nonstandard "long long" printf modifiers.
- b929614f5e86 11.0 landed
-
printf("%lf") is not portable, so omit the "l".
- 0aa97b86f902 9.3.24 landed
- fa2cfb962c05 10.5 landed
- e52cabff7054 9.4.19 landed
- c6e846446d17 11.0 landed
- 9c515f77d6cf 9.6.10 landed
- 29a4db65fbb7 9.5.14 landed
-
Support platforms where strtoll/strtoull are spelled __strtoll/__strtoull.
- 91f3bcc9e423 9.3.24 landed
- 8109f201da77 9.4.19 landed
- a5be529aaade 10.5 landed
- 7329af6b9ebf 9.5.14 landed
- 22d22e4bddf6 9.6.10 landed
- 06f66cff9e0b 11.0 landed
-
Arrange to supply declarations for strtoll/strtoull if needed.
- e9f475f991fb 9.3.24 landed
- c964c2147136 10.5 landed
- a6228128fc48 11.0 landed
- 95fef6e82a7d 9.5.14 landed
- 4ffd7909c63a 9.6.10 landed
- 023aa76e1952 9.4.19 landed
-
Hot-fix ecpg regression test for missing ecpg_config.h inclusion.
- d73857d5719e 9.3.24 landed
- 54ae787ca732 9.4.19 landed
- bc8656cf980e 9.5.14 landed
- 4ca492425cd9 9.6.10 landed
- e55a5516deee 10.5 landed
- 5e79405d8299 11.0 landed
-
Add some test coverage for ecpg's "long long" support.
- ec99e9aa110a 9.6.10 landed
- e75c832b29b1 9.4.19 landed
- e21085da56a9 10.5 landed
- dbccdd375b41 11.0 landed
- d9cbe9c9fce9 9.3.24 landed
- 9d6616708d3f 9.5.14 landed
-
Recognize that MSVC can support strtoll() and strtoull().
- f586f8638929 11.0 landed
- cf39aebf17c5 10.5 landed
- 63d3e787f954 9.3.24 landed
- 385f4acbf824 9.4.19 landed
- 25caeae8d279 9.6.10 landed
- 11a110595c72 9.5.14 landed
-
Fix up ecpg's configuration so it handles "long long int" in MSVC builds.
- fda3e6578676 10.4 landed
- f171cbe0d90e 9.5.13 landed
- 87b7e1e88772 9.3.23 landed
- 7ee8005ceddf 9.6.9 landed
- 51057feaa6bd 11.0 landed
- 49f9014c8c1e 9.4.18 landed