Compiler warnings on Debian 10

Started by Daniel Westermann (DWE)about 5 years ago6 messagesgeneral
Jump to latest
#1Daniel Westermann (DWE)
daniel.westermann@dbi-services.com

HI,

I was wondering if someone already has seen these warnings on Debian 10 (PostgreSQL 13.1):

../../../../src/include/port.h:176:70: warning: 'format' attribute argument not supported: gnu_printf
[-Wignored-attributes]
extern int pg_snprintf(char *str, size_t count, const char *fmt,...) pg_attribute_printf(3, 4);
^
../../../../src/include/c.h:127:49: note: expanded from macro 'pg_attribute_printf'
#define pg_attribute_printf(f,a) __attribute__((format(PG_PRINTF_ATTRIBUTE, f, a)))
^
In file included from llvmjit_error.cpp:19:
In file included from ../../../../src/include/postgres.h:46:
In file included from ../../../../src/include/c.h:1318:
../../../../src/include/port.h:178:55: warning: 'format' attribute argument not supported: gnu_printf
[-Wignored-attributes]
extern int pg_sprintf(char *str, const char *fmt,...) pg_attribute_printf(2, 3);
^
../../../../src/include/c.h:127:49: note: expanded from macro 'pg_attribute_printf'
#define pg_attribute_printf(f,a) __attribute__((format(PG_PRINTF_ATTRIBUTE, f, a)))
^
In file included from llvmjit_error.cpp:19:
In file included from ../../../../src/include/postgres.h:46:
In file included from ../../../../src/include/c.h:1318:
../../../../src/include/port.h:180:58: warning: 'format' attribute argument not supported: gnu_printf
[-Wignored-attributes]
extern int pg_fprintf(FILE *stream, const char *fmt,...) pg_attribute_printf(2, 3);
^

Configure was successful:
...
configure: creating ./config.status
config.status: creating GNUmakefile
config.status: creating src/Makefile.global
config.status: creating src/include/pg_config.h
config.status: creating src/include/pg_config_ext.h
config.status: creating src/interfaces/ecpg/include/ecpg_config.h
config.status: linking src/backend/port/tas/dummy.s to src/backend/port/tas.s
config.status: linking src/backend/port/posix_sema.c to src/backend/port/pg_sema.c
config.status: linking src/backend/port/sysv_shmem.c to src/backend/port/pg_shmem.c
config.status: linking src/include/port/linux.h to src/include/pg_config_os.h
config.status: linking src/makefiles/Makefile.linux to src/Makefile.port

This is the official Debian AMI on AWS:
postgres@pg13:~/postgresql-13.1$ cat /etc/debian_version
10.8

Regards
Daniel

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Daniel Westermann (DWE) (#1)
Re: Compiler warnings on Debian 10

"Daniel Westermann (DWE)" <daniel.westermann@dbi-services.com> writes:

I was wondering if someone already has seen these warnings on Debian 10 (PostgreSQL 13.1):

../../../../src/include/port.h:176:70: warning: 'format' attribute argument not supported: gnu_printf
[-Wignored-attributes]

Huh. What compiler are you using, exactly? Perhaps you used a different
compiler when running configure (or are trying to re-use configure results
from some other machine)?

regards, tom lane

#3Daniel Westermann (DWE)
daniel.westermann@dbi-services.com
In reply to: Tom Lane (#2)
Re: Compiler warnings on Debian 10

"Daniel Westermann (DWE)" <daniel.westermann@dbi-services.com> writes:

I was wondering if someone already has seen these warnings on Debian 10 (PostgreSQL 13.1):

../../../../src/include/port.h:176:70: warning: 'format' attribute argument not supported: gnu_printf
       [-Wignored-attributes]

Huh.  What compiler are you using, exactly? 

Nothing special. Configure and make log attached. The same procedure works fine on my local Debian 10.7.

postgres@pg13:/home/postgres/postgresql-13.1/ [pg131] gcc --version
gcc (Debian 8.3.0-6) 8.3.0
Copyright (C) 2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Perhaps you used a different
compiler when running configure (or are trying to re-use configure results
from some other machine)?

No, definitely not, that was a fresh configure/make.

Regards
Daniel

Attachments:

make.logtext/x-log; name=make.logDownload
configure.logtext/x-log; name=configure.logDownload
make_stdout.logtext/x-log; name=make_stdout.logDownload
#4Tom Lane
tgl@sss.pgh.pa.us
In reply to: Daniel Westermann (DWE) (#3)
Re: Compiler warnings on Debian 10

"Daniel Westermann (DWE)" <daniel.westermann@dbi-services.com> writes:

"Daniel Westermann (DWE)" <daniel.westermann@dbi-services.com> writes:

I was wondering if someone already has seen these warnings on Debian 10 (PostgreSQL 13.1):

../../../../src/include/port.h:176:70: warning: 'format' attribute argument not supported: gnu_printf
       [-Wignored-attributes]

Huh.  What compiler are you using, exactly? 

Nothing special. Configure and make log attached. The same procedure works fine on my local Debian 10.7.

Quite odd. The configure output clearly shows that it thought gnu_printf
is fine:

checking for printf format archetype... gnu_printf

Possibly the corresponding section of config.log would provide more
insight.

regards, tom lane

#5Daniel Westermann (DWE)
daniel.westermann@dbi-services.com
In reply to: Tom Lane (#4)
Re: Compiler warnings on Debian 10

Nothing special. Configure and make log attached. The same procedure works fine on my local Debian 10.7.

Quite odd.  The configure output clearly shows that it thought gnu_printf
is fine:

checking for printf format archetype... gnu_printf

Possibly the corresponding section of config.log would provide more
insight.

Please find it attached.

Regards
Daniel

Attachments:

config.log.gzapplication/gzip; name=config.log.gzDownload
#6Tom Lane
tgl@sss.pgh.pa.us
In reply to: Daniel Westermann (DWE) (#5)
Re: Compiler warnings on Debian 10

Looking at things more closely, I realize that the warnings are not
showing up in most compiles (if they were, you'd have many more of
them). They are only showing up in the llvmjit_*.cpp files, which
need to be built with a C++ compiler not gcc. I can see in your
make log that those are getting built with "c++", so now I wonder
exactly which compiler that is.

You could probably suppress these complaints by passing "CXX=g++"
to configure. Or at least, you could if g++ was installed, but
I think configure will default to that if it can find it...

regards, tom lane