i'm building a new/clean postfix 3.5.0 instance on linux/64
currently, with
gcc --version
gcc (SUSE Linux) 10.0.1 20200408 (experimental) [revision
13e41d8b9d3d7598c72c38acc86a3d97046c8373]
my usually problem-free `make`,
make V=1 -j8 DEBUG="" OPT="-O3"
now fails,
...
ranlib ../../lib/libmaster.a
/usr/bin/gcc-10 -I. -I../../include -DHAS_LMDB
-I/usr/local/lmdb/include -DNO_DB -DNO_CDB -DNO_NIS -DUSE_TLS
-I/usr/local/openssl11/include -DHAS_PCRE -I/usr/local/include
-I/usr/include/db4 -DUSE_SASL_AUTH -DDEF_SERVER_SASL_TYPE=\"dovecot\"
-DMAX_DYNAMIC_MAPS -DDEF_CONFIG_DIR=\"/usr/local/etc/postfix\"
-DDEF_DATA_DIR=\"/var/lib/postfix\" -DDEF_QUEUE_DIR=\"/var/spool/postfix\"
-DDEF_SENDMAIL_PATH=\"/usr/local/sbin/sendmail\"
-DDEF_NEWALIAS_PATH=\"/usr/local/bin/newaliases\"
-DDEF_MAILQ_PATH=\"/usr/local/bin/mailq\" -DDEF_COMMAND_DIR=\"/usr/local/sbin\"
-DDEF_DAEMON_DIR=\"/usr/local/libexec/postfix\"
-DDEF_MANPAGE_DIR=\"/usr/local/man\"
-DDEF_README_DIR=\"/usr/local/share/doc/packages/postfix-doc/README_FILES\"
-DDEF_HTML_DIR=\"/usr/local/share/doc/packages/postfix-doc/html\"
-I/usr/local/include -DHAS_DEV_URANDOM -UUSE_DYNAMIC_LIBS
-DDEF_SHLIB_DIR=\"no\" -UUSE_DYNAMIC_MAPS -Wmissing-prototypes -Wformat
-Wno-comment -O3 -I. -I../../include -DLINUX5 -o master master.o
master_conf.o master_ent.o master_sig.o master_avail.o master_spawn.o
master_service.o master_status.o master_listen.o master_vars.o master_wakeup.o
master_watch.o master_flow.o master_monitor.o ../../lib/libglobal.a
../../lib/libutil.a -L/usr/local/openssl11/lib64
-Wl,-rpath,/usr/local/openssl11/lib64 -lssl -lcrypto -L/usr/local/lib64
-Wl,-rpath,/usr/local/lib64 -lpcre -lpcrecpp -L/usr/local/lmdb/lib64
-Wl,-rpath,/usr/local/lmdb/lib64 -llmdb -L/usr/local/lib64
-Wl,-rpath,/usr/local/lib64 -lz -lm -lnsl -lresolv -ldl -L/usr/local/lib64
-licui18n -licuuc -licudata
/usr/lib64/gcc/x86_64-suse-linux/10/../../../../x86_64-suse-linux/bin/ld:
../../lib/libglobal.a(mail_params.o):(.bss+0x270): multiple definition of
`var_inet_protocols'; master_vars.o:(.bss+0x10): first defined here
collect2: error: ld returned 1 exit status
make: *** [Makefile:146: master] Error 1
make: *** [Makefile:157: update] Error 1
looks like the source of the issue is (?),
grep var_inet_protocols `grep -rlni var_inet_protocols .`
./src/postconf/postconf_builtin.c: if (var_inet_protocols ==
0) {
./src/postconf/postconf_builtin.c: var_inet_protocols =
mystrdup(junk);
./src/postconf/postconf_builtin.c: (void)
inet_proto_init(VAR_INET_PROTOCOLS, var_inet_protocols);
./src/qmqpd/qmqpd_peer.c: "other",
VAR_INET_PROTOCOLS, var_inet_protocols);
./src/qmqpd/qmqpd.c: VAR_INET_PROTOCOLS,
var_inet_protocols);
./src/master/master.c: (void)
inet_proto_init(VAR_INET_PROTOCOLS, var_inet_protocols);
./src/master/master_ent.c: VAR_INET_PROTOCOLS,
var_inet_protocols);
>>> ./src/master/master_vars.c:char *var_inet_protocols;
./src/master/master_vars.c: VAR_INET_PROTOCOLS,
&var_inet_protocols, &saved_inet_protocols, 0, 0,
>>> ./src/global/mail_params.c:/* char *var_inet_protocols;
./src/global/mail_params.c:char *var_inet_protocols;
./src/global/mail_params.c: VAR_INET_PROTOCOLS,
DEF_INET_PROTOCOLS, &var_inet_protocols, 0, 0,
./src/global/mail_params.c: (void)
inet_proto_init(VAR_INET_PROTOCOLS, var_inet_protocols);
./src/global/mail_params.h:extern char *var_inet_protocols;
./src/smtpd/smtpd_peer.c: "other",
VAR_INET_PROTOCOLS, var_inet_protocols);
./src/smtpd/smtpd.c: VAR_INET_PROTOCOLS,
var_inet_protocols);
./src/postscreen/postscreen.c: VAR_INET_PROTOCOLS,
var_inet_protocols);
haven't seen this b4. not sure if something's changed, my config's wrong, or
this is a GCC-10 sensitivity ...
bug, or me?