Skip to contentSkip to conversation

postgresql: fix pgac_cv_snprintf_long_long_int_modifier

PATCH New Peter Seiderer 3 participants 5 messages Nov 28, 2016

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 postgresql: fix pgac_cv_snprintf_long_long_int_modifier

Supplementary change the pgac_cv_snprintf_long_long_int_modifier from complete format '%lld' to modifier 'll' version only (forgotten in commit 02c43157ab09f6fe4078fd1145fc9d403d66c089 ([1])).

Fixes Bug 9451 ([2]).

[1] https://git.buildroot.net/buildroot/commit/?id=02c43157ab09f6fe4078fd1145fc9d403d66c089
[2] https://bugs.busybox.net/show_bug.cgi?id=9451

---
 package/postgresql/postgresql.mk | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
package/postgresql/postgresql.mk +1 -1
index d46e8c0..786ef48 100644
@@ -13,7 +13,7 @@ POSTGRESQL_INSTALL_STAGING = YES
 POSTGRESQL_CONFIG_SCRIPTS = pg_config
 POSTGRESQL_CONF_ENV = \
 	ac_cv_type_struct_sockaddr_in6=yes \
-	pgac_cv_snprintf_long_long_int_modifier="%lld" \
+	pgac_cv_snprintf_long_long_int_modifier="ll" \
 	pgac_cv_snprintf_size_t_support=yes
 POSTGRESQL_CONF_OPTS = --disable-rpath
 
Signature · 1 line
2.8.1
#1 lore raw

PATCH 1/1 postgresql: fix pgac_cv_snprintf_long_long_int_modifier

Hi Peter,

Quoted 3 lines · Peter Seiderer

Supplementary change the pgac_cv_snprintf_long_long_int_modifier from complete format '%lld' to modifier 'll' version only (forgotten in commit 02c43157ab09f6fe4078fd1145fc9d403d66c089 ([1])).

The original commit that introduced pgac_cv_snprintf_long_long_int_format caching (3d3f70b5677, postgresql: avoid AC_TRY_RUN when testing snprintf()) did so because of AC_TRY_RUN calls. These were removed in upstream commit a2edb023d [1]. It is most likely safe to remove these cached values now.

[1] https://git.postgresql.org/gitweb/?p=postgresql.git;a=commitdiff;h=a2edb023d08778c3346bbbf4ca82ef7f6e9283eb

Quoted 7 lines

Fixes Bug 9451 ([2]).

[1] https://git.buildroot.net/buildroot/commit/?id=02c43157ab09f6fe4078fd1145fc9d403d66c089
[2] https://bugs.busybox.net/show_bug.cgi?id=9451

baruch

Quoted 16 lines
---
 package/postgresql/postgresql.mk | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
package/postgresql/postgresql.mk +1 -1
index d46e8c0..786ef48 100644
@@ -13,7 +13,7 @@ POSTGRESQL_INSTALL_STAGING = YES
 POSTGRESQL_CONFIG_SCRIPTS = pg_config
 POSTGRESQL_CONF_ENV = \
 	ac_cv_type_struct_sockaddr_in6=yes \
-	pgac_cv_snprintf_long_long_int_modifier="%lld" \
+	pgac_cv_snprintf_long_long_int_modifier="ll" \
 	pgac_cv_snprintf_size_t_support=yes
 POSTGRESQL_CONF_OPTS = --disable-rpath
Signature · 3 lines
     http://baruch.siach.name/blog/                  ~. .~   Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
   - baruch at tkos.co.il - tel: +972.52.368.4656, http://www.tkos.co.il -
#2 lore raw

PATCH 1/1 postgresql: fix pgac_cv_snprintf_long_long_int_modifier

Hello,

Quoted 7 lines · Baruch Siach

Hi Peter,

Quoted 3 lines · Peter Seiderer

Supplementary change the pgac_cv_snprintf_long_long_int_modifier from complete format '%lld' to modifier 'll' version only (forgotten in commit 02c43157ab09f6fe4078fd1145fc9d403d66c089 ([1])).

Quoted 6 lines

The original commit that introduced pgac_cv_snprintf_long_long_int_format caching (3d3f70b5677, postgresql: avoid AC_TRY_RUN when testing snprintf()) did so because of AC_TRY_RUN calls. These were removed in upstream commit a2edb023d [1]. It is most likely safe to remove these cached values now.

[1] https://git.postgresql.org/gitweb/?p=postgresql.git;a=commitdiff;h=a2edb023d08778c3346bbbf4ca82ef7f6e9283eb

I don't see anything in this commit that removes the AC_TRY_RUN() checks. It replaces the AC_TRY_RUN() checks by AC_RUN_IFELSE(), which is doing exactly the same: a runtime test. What makes you think this commit solves the problem?

Thanks,

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
#3 lore raw

PATCH 1/1 postgresql: fix pgac_cv_snprintf_long_long_int_modifier

Hello *,

Quoted 15 lines · Thomas Petazzoni

Hello,

Quoted 12 lines · Baruch Siach

Hi Peter,

Quoted 3 lines · Peter Seiderer

Supplementary change the pgac_cv_snprintf_long_long_int_modifier from complete format '%lld' to modifier 'll' version only (forgotten in commit 02c43157ab09f6fe4078fd1145fc9d403d66c089 ([1])).

The original commit that introduced pgac_cv_snprintf_long_long_int_format caching (3d3f70b5677, postgresql: avoid AC_TRY_RUN when testing snprintf()) did so because of AC_TRY_RUN calls. These were removed in upstream commit a2edb023d [1]. It is most likely safe to remove these cached values now.

Quoted 7 lines
Quoted 1 line

[1] https://git.postgresql.org/gitweb/?p=postgresql.git;a=commitdiff;h=a2edb023d08778c3346bbbf4ca82ef7f6e9283eb

I don't see anything in this commit that removes the AC_TRY_RUN() checks. It replaces the AC_TRY_RUN() checks by AC_RUN_IFELSE(), which is doing exactly the same: a runtime test. What makes you think this commit solves the problem?

And the experimental test (the second one without 'pgac_cv_snprintf_long_long_int_modifier="ll"'):

	$ diff -u build/postgresql-9.6.1_orig/config.log build/postgresql-9.6.1/config.log

[...]
configure:13741: checking snprintf length modifier for long long int
-configure:13792: result: ll
-configure:13822: checking whether snprintf supports the %z modifier
-configure:13865: result: yes
+configure:13790: result: cannot test (not on host machine)
configure:13891: checking size of void *
configure:13896: /home/seiderer/Work/zeiss/freescale-imx6/build_rpi3_002/build-002/host/usr/bin/arm-buildroot-linux-uclibcgnueabihf-gcc -c -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE conftest.c >&5 configure:13896: $? = 0
configure:13896: /home/seiderer/Work/zeiss/freescale-imx6/build_rpi3_002/build-002/host/usr/bin/arm-buildroot-linux-uclibcgnueabihf-gcc -c -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fexcess-precision=standard -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE conftest.c >&5 conftest.c: In function 'main':
-conftest.c:182:12: error: size of array 'test_array' is negative
+conftest.c:183:12: error: size of array 'test_array' is negative

  static int test_array [1 - 2 * !(((long int) (sizeof (void *))) <= 0)];
             ^
 configure:13896: $? = 1
@@ -8802,6 +8968,7 @@
 | #define PG_INT64_TYPE long long int
 | #define HAVE_LL_CONSTANTS 1
 | #define INT64_MODIFIER "ll"
+| #define USE_REPL_SNPRINTF 1
 | /* end confdefs.h.  */
 | #include <stdio.h>
 | #ifdef HAVE_SYS_TYPES_H

@@ -8848,7 +9015,7 @@
| }
[...]

Without pre-given pgac_cv_snprintf_long_long_int_modifier the define 'USE_REPL_SNPRINTF' is used...

Regards,
Peter

Quoted 3 lines

Thanks,

Thomas

#4 lore raw

PATCH 1/1 postgresql: fix pgac_cv_snprintf_long_long_int_modifier

In reply to Peter Seiderer

Hello,

Quoted 6 lines · Peter Seiderer

Supplementary change the pgac_cv_snprintf_long_long_int_modifier from complete format '%lld' to modifier 'll' version only (forgotten in commit 02c43157ab09f6fe4078fd1145fc9d403d66c089 ([1])).

Fixes Bug 9451 ([2]).

Quoted 8 lines

[1] https://git.buildroot.net/buildroot/commit/?id=02c43157ab09f6fe4078fd1145fc9d403d66c089
[2] https://bugs.busybox.net/show_bug.cgi?id=9451

---
 package/postgresql/postgresql.mk | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Applied to master, thanks.

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com