-
-
Notifications
You must be signed in to change notification settings - Fork 93
Description
There were/are many compiler warnings, esp. with new versions of gcc. This issue is for coordinating analysis and work to each of them. Some of them are already fixed by (pending) PRs.
The following findings are with current (moving) git version of eggdrop.
11. 64-bit NetBSD 6.1.5 gcc 4.5.3 Tcl 8.6.8 OpenSSL 1.0.1i CFLAGS default
Tested eggdrop version: git commit 713cedf Oct 17 2018
gcc -fPIC -g -O2 -pipe -Wall -I. -I../../.. -I../../.. -I../../../src/mod -DHAVE_CONFIG_H -I/usr/pkg/include -g3 -DDEBUG -DDEBUG_ASSERT -DDEBUG_MEM -DDEBUG_DNS -DMAKING_MODS -c .././uptime.mod/uptime.c && mv -f uptime.o ../
.././uptime.mod/uptime.c: In function 'send_uptime':
.././uptime.mod/uptime.c:226:3: warning: overflow in implicit constant conversion
This will be fixed by #548
13. FreeBSD 6.4-RELEASE gcc 3.4.6 Tcl 8.4.19 default cflags
gcc -g -O2 -pipe -Wall -I.. -I.. -DHAVE_CONFIG_H -I/usr/local/include/tcl8.4 -g3 -DDEBUG -DDEBUG_ASSERT -DDEBUG_MEM -DDEBUG_DNS -c tcl.c
tcl.c:423: warning: dereferencing type-punned pointer will break strict-aliasing rules
gcc -g -O2 -pipe -Wall -I.. -I.. -DHAVE_CONFIG_H -I/usr/local/include/tcl8.4 -g3 -DDEBUG -DDEBUG_ASSERT -DDEBUG_MEM -DDEBUG_DNS -c userent.c
userent.c: In function `del_entry_type':
userent.c:1395: warning: dereferencing type-punned pointer will break strict-aliasing rules
gcc -fPIC -g -O2 -pipe -Wall -I. -I../../.. -I../../.. -I../../../src/mod -DHAVE_CONFIG_H -I/usr/local/include/tcl8.4 -g3 -DDEBUG -DDEBUG_ASSERT -DDEBUG_MEM -DDEBUG_DNS -DMAKING_MODS -c .././server.mod/server.c && mv -f server.o ../
.././server.mod/server.c: In function `next_server':
.././server.mod/server.c:1076: warning: dereferencing type-punned pointer will break strict-aliasing rules
.././server.mod/server.c: At top level:
.././server.mod/server.c:1402: warning: dereferencing type-punned pointer will break strict-aliasing rules
.././server.mod/server.c:1409: warning: dereferencing type-punned pointer will break strict-aliasing rules
openSUSE 10.3 with gcc 4.2.1 also has some aliasing warnings.
15. 64-bit FreeBSD 12.0-BETA2 gcc 7.3.0 and 32-bit sparc sun4v SunOS 5.11 gcc 7.3.0
gcc -g -O2 -pipe -Wall -I.. -I.. -DHAVE_CONFIG_H -I/usr/local/include/tcl8.6 -g3 -DDEBUG -DDEBUG_ASSERT -DDEBUG_MEM -DDEBUG_DNS -c misc.c
misc.c: In function 'help_subst':
misc.c:909:40: warning: '%s' directive output may be truncated writing up to 255 bytes into a region of size 161 [-Wformat-truncation=]
egg_snprintf(sub, sizeof sub, "%s %s", uname_info.sysname,
^~ ~~~~~~~~~~
In file included from compat/compat.h:27:0,
from main.h:102,
from misc.c:29:
compat/snprintf.h:58:24: note: 'snprintf' output between 2 and 512 bytes into a destination of size 161
# define egg_snprintf snprintf
misc.c:909:9: note: in expansion of macro 'egg_snprintf'
egg_snprintf(sub, sizeof sub, "%s %s", uname_info.sysname,
^~~~~~~~~~~~
16. 32-bit sparc sun4v SunOS 5.11 SunC 5.15
cc -g -I.. -I.. -DHAVE_CONFIG_H -I/usr/include -g3 -DDEBUG -DDEBUG_ASSERT -DDEBUG_MEM -DDEBUG_DNS -c modules.c
"modules.c", line 1069: warning: operands have incompatible pointer types: op "=="
"modules.c", line 1124: warning: assignment type mismatch:
pointer to function(int, pointer to char, int) returning void "=" pointer to function() returning void
"modules.c", line 1132: warning: assignment type mismatch:
pointer to function(pointer to struct userrec {pointer to struct userrec {..} next, array[33] of char handle, unsigned long flags, unsigned long flags_udef, pointer to struct chanuserrec {..} chanrec, pointer to struct user_entry {..} entries}, pointer to char) returning int "=" pointer to function() returning int
17. 32-bit sparc sun4v SunOS 5.11 SunC 5.15 OpenSSL 1.0.2o and t1 sun4v SunOS 5.11 Sun C 5.13 OpenSSL 1.0.1p
cc -g -I.. -I.. -DHAVE_CONFIG_H -I/usr/include -g3 -DDEBUG -DDEBUG_ASSERT -DDEBUG_MEM -DDEBUG_DNS -c tls.c
"tls.c", line 772: warning: argument #2 is incompatible with prototype:
prototype: pointer to function(pointer to const struct ssl_st {int version, int type, pointer to const struct ssl_method_st {..} method, pointer to struct bio_st {..} rbio, pointer to struct bio_st {..} wbio, pointer to struct bio_st {..} bbio, int rwstate, int in_handshake, pointer to function(..) returning int handshake_func, int server, int new_session, int quiet_shutdown, int shutdown, int state, int rstate, pointer to struct buf_mem_st {..} init_buf, pointer to void init_msg, int init_num, int init_off, pointer to unsigned char packet, unsigned int packet_length, pointer to struct ssl2_state_st {..} s2, pointer to struct ssl3_state_st {..} s3, pointer to struct dtls1_state_st {..} d1, int read_ahead, pointer to function(..) returning void msg_callback, pointer to void msg_callback_arg, int hit, pointer to struct X509_VERIFY_PARAM_st {..} param, pointer to struct stack_st_SSL_CIPHER {..} cipher_list, pointer to struct stack_st_SSL_CIPHER {..} cipher_list_by_id, int mac_flags, pointer to struct evp_cipher_ctx_st {..} enc_read_ctx, pointer to struct env_md_ctx_st {..} read_hash, pointer to struct comp_ctx_st {..} expand, pointer to struct evp_cipher_ctx_st {..} enc_write_ctx, pointer to struct env_md_ctx_st {..} write_hash, pointer to struct comp_ctx_st {..} compress, pointer to struct cert_st {..} cert, unsigned int sid_ctx_length, array[32] of unsigned char sid_ctx, pointer to struct ssl_session_st {..} session, pointer to function(..) returning int generate_session_id, int verify_mode, pointer to function(..) returning int verify_callback, pointer to function(..) returning void info_callback, int error, int error_code, pointer to function(..) returning unsigned int psk_client_callback, pointer to function(..) returning unsigned int psk_server_callback, pointer to struct ssl_ctx_st {..} ctx, int debug, long verify_result, struct crypto_ex_data_st {..} ex_data, pointer to struct stack_st_X509_NAME {..} client_CA, int references, unsigned long options, unsigned long mode, long max_cert_list, int first_packet, int client_version, unsigned int max_send_fragment, pointer to function(..) returning void tlsext_debug_cb, pointer to void tlsext_debug_arg, pointer to char tlsext_hostname, int servername_done, int tlsext_status_type, int tlsext_status_expected, pointer to struct stack_st_OCSP_RESPID {..} tlsext_ocsp_ids, pointer to struct stack_st_X509_EXTENSION {..} tlsext_ocsp_exts, pointer to unsigned char tlsext_ocsp_resp, int tlsext_ocsp_resplen, int tlsext_ticket_expected, unsigned int tlsext_ecpointformatlist_length, pointer to unsigned char tlsext_ecpointformatlist, unsigned int tlsext_ellipticcurvelist_length, pointer to unsigned char tlsext_ellipticcurvelist, pointer to void tlsext_opaque_prf_input, unsigned int tlsext_opaque_prf_input_len, pointer to struct tls_session_ticket_ext_st {..} tlsext_session_ticket, pointer to function(..) returning int tls_session_ticket_ext_cb, pointer to void tls_session_ticket_ext_cb_arg, pointer to function(..) returning int tls_session_secret_cb, pointer to void tls_session_secret_cb_arg, pointer to struct ssl_ctx_st {..} initial_ctx, pointer to unsigned char next_proto_negotiated, unsigned char next_proto_negotiated_len, pointer to struct stack_st_SRTP_PROTECTION_PROFILE {..} srtp_profiles, pointer to struct srtp_protection_profile_st {..} srtp_profile, unsigned int tlsext_heartbeat, unsigned int tlsext_hb_pending, unsigned int tlsext_hb_seq, int renegotiate, struct srp_ctx_st {..} srp_ctx, pointer to unsigned char alpn_client_proto_list, unsigned int alpn_client_proto_list_len}, int, int) returning void : "/usr/include/openssl/ssl.h", line 2462
argument : pointer to void
This will be fixed by #875
18. 32-bit sparc sun4v SunOS 5.11 SunC 5.15
/opt/developerstudio12.6/bin/cc -KPIC -g -I. -I../../.. -I../../.. -I../../../src/mod -DHAVE_CONFIG_H -I/usr/include -g3 -DDEBUG -DDEBUG_ASSERT -DDEBUG_MEM -DDEBUG_DNS -DMAKING_MODS -c .././dns.mod/dns.c && mv -f dns.o ../
".././dns.mod/coredns.c", line 192: warning: initializer does not fit or is out of range: 0xdeadbeef
22. gcc 9.2.0, CFLAGS=-fsanitize=undefined -O1
gcc -fPIC -fsanitize=undefined -O1 -pipe -Wall -I. -I../../.. -I../../.. -I../../../src/mod -DHAVE_CONFIG_H -I/usr/include -g3 -DDEBUG -DDEBUG_ASSERT -DDEBUG_MEM -DDEBUG_DNS -DMAKING_MODS -c .././share.mod/share.c && mv -f share.o ../
.././share.mod/share.c: In function ‘share_ufsend’:
.././share.mod/share.c:1216:24: warning: ‘f’ may be used uninitialized in this function [-Wmaybe-uninitialized]
1216 | dcc[i].u.xfer->f = f;
This is a false positive.
23. gcc 9.2.0, CFLAGS=-fsanitize=undefined -O2
gcc -fPIC -fsanitize=undefined -O2 -pipe -Wall -I. -I../../.. -I../../.. -I../../../src/mod -DHAVE_CONFIG_H -I/usr/include -g3 -DDEBUG -DDEBUG_ASSERT -DDEBUG_MEM -DDEBUG_DNS -DMAKING_MODS -c .././filesys.mod/filesys.c && mv -f filesys.o ../
In file included from .././filesys.mod/filesys.c:136:
.././filesys.mod/files.c: In function ‘cmd_file_help’:
.././filesys.mod/files.c:541:5: warning: null destination pointer [-Wformat-overflow=]
541 | sprintf(s, "filesys/%s", par);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[...]
gcc -fPIC -fsanitize=undefined -O2 -pipe -Wall -I. -I../../.. -I../../.. -I../../../src/mod -DHAVE_CONFIG_H -I/usr/include -g3 -DDEBUG -DDEBUG_ASSERT -DDEBUG_MEM -DDEBUG_DNS -DMAKING_MODS -c .././seen.mod/seen.c && mv -f seen.o ../
.././seen.mod/seen.c: In function ‘do_seen’:
.././seen.mod/seen.c:236:54: warning: ‘ girlfriend is ’ directive output may be truncated writing 15 bytes into a region of size between 1 and 512 [-Wformat-truncation=]
236 | snprintf(whoredirect, sizeof whoredirect, "%s girlfriend is %s, and ",
| ^~~~~~~~~~~~~~~
.././seen.mod/seen.c:236:9: note: ‘snprintf’ output between 22 and 660 bytes into a destination of size 512
236 | snprintf(whoredirect, sizeof whoredirect, "%s girlfriend is %s, and ",
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
237 | fixnick(object), whotarget);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~
.././seen.mod/seen.c:224:54: warning: ‘ boyfriend is ’ directive output may be truncated writing 14 bytes into a region of size between 1 and 512 [-Wformat-truncation=]
224 | snprintf(whoredirect, sizeof whoredirect, "%s boyfriend is %s, and ",
| ^~~~~~~~~~~~~~
.././seen.mod/seen.c:224:9: note: ‘snprintf’ output between 21 and 659 bytes into a destination of size 512
224 | snprintf(whoredirect, sizeof whoredirect, "%s boyfriend is %s, and ",
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
225 | fixnick(object), whotarget);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~
26. gcc 3.4.6 default cflags (FreeBSD 6.4)
gcc -g -O2 -pipe -Wall -I.. -I.. -DHAVE_CONFIG_H -I/usr/local/include/tcl8.4 -g3 -DDEBUG -DDEBUG_ASSERT -DDEBUG_MEM -DDEBUG_DNS -c cmds.c
cmds.c: In function `btos':
cmds.c:3006: warning: 'unit' might be used uninitialized in this function
Same with 64-bit OpenBSD 4.7 gcc 3.3.5 Tcl 8.5.8 OpenSSL 0.9.8k (*1)
27. 64-bit NetBSD 8.1 gcc 5.5.0 Tcl 8.6.9 OpenSSL 1.0.2k eggdrop version f92829c
After upgrading some packages i get the following warning:
gcc -g -O2 -pipe -Wall -I.. -I.. -DHAVE_CONFIG_H -I/usr/pkg/include -g3 -DDEBUG -DDEBUG_ASSERT -DDEBUG_MEM -DDEBUG_DNS -c tls.c
In file included from tls.c:33:0:
tls.c: In function 'ssl_fpconv':
/usr/pkg/include/openssl/x509v3.h:635:24: warning: implicit declaration of function 'OPENSSL_hexstr2buf' [-Wimplicit-function-declaration]
# define string_to_hex OPENSSL_hexstr2buf
^
../config.h:347:28: note: in expansion of macro 'string_to_hex'
#define OPENSSL_hexstr2buf string_to_hex
^
tls.c:283:15: note: in expansion of macro 'OPENSSL_hexstr2buf'
if ((sha1 = OPENSSL_hexstr2buf(in, &len))) {
^
tls.c:283:13: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
if ((sha1 = OPENSSL_hexstr2buf(in, &len))) {
^
In file included from tls.c:33:0:
/usr/pkg/include/openssl/x509v3.h:634:24: warning: implicit declaration of function 'OPENSSL_buf2hexstr' [-Wimplicit-function-declaration]
# define hex_to_string OPENSSL_buf2hexstr
^
../config.h:344:28: note: in expansion of macro 'hex_to_string'
#define OPENSSL_buf2hexstr hex_to_string
^
tls.c:284:10: note: in expansion of macro 'OPENSSL_buf2hexstr'
fp = OPENSSL_buf2hexstr(sha1, len);
^
tls.c:284:8: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
fp = OPENSSL_buf2hexstr(sha1, len);
^
tls.c: In function 'ssl_getfp':
tls.c:332:11: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
if (!(p = OPENSSL_buf2hexstr(md, i)))
^
tls.c: In function 'ssl_getuid':
tls.c:363:3: warning: 'ASN1_STRING_data' is deprecated [-Wdeprecated-declarations]
return (const char *) egg_ASN1_string_data(name);
^
In file included from /usr/pkg/include/openssl/e_os2.h:13:0,
from /usr/pkg/include/openssl/ssl.h:15,
from eggdrop.h:265,
from main.h:90,
from tls.c:27:
/usr/pkg/include/openssl/asn1.h:554:35: note: declared here
DEPRECATEDIN_1_1_0(unsigned char *ASN1_STRING_data(ASN1_STRING *x))
^
/usr/pkg/include/openssl/opensslconf.h:109:37: note: in definition of macro 'DECLARE_DEPRECATED'
# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated));
^
/usr/pkg/include/openssl/asn1.h:554:1: note: in expansion of macro 'DEPRECATEDIN_1_1_0'
DEPRECATEDIN_1_1_0(unsigned char *ASN1_STRING_data(ASN1_STRING *x))
^
tls.c: In function 'ssl_verifycn':
tls.c:437:9: warning: 'ASN1_STRING_data' is deprecated [-Wdeprecated-declarations]
cn = (const char *) egg_ASN1_string_data(gn->d.ia5);
^
In file included from /usr/pkg/include/openssl/e_os2.h:13:0,
from /usr/pkg/include/openssl/ssl.h:15,
from eggdrop.h:265,
from main.h:90,
from tls.c:27:
/usr/pkg/include/openssl/asn1.h:554:35: note: declared here
DEPRECATEDIN_1_1_0(unsigned char *ASN1_STRING_data(ASN1_STRING *x))
^
/usr/pkg/include/openssl/opensslconf.h:109:37: note: in definition of macro 'DECLARE_DEPRECATED'
# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated));
^
/usr/pkg/include/openssl/asn1.h:554:1: note: in expansion of macro 'DEPRECATEDIN_1_1_0'
DEPRECATEDIN_1_1_0(unsigned char *ASN1_STRING_data(ASN1_STRING *x))
^
tls.c:474:9: warning: 'ASN1_STRING_data' is deprecated [-Wdeprecated-declarations]
cn = (const char *) egg_ASN1_string_data(name);
^
In file included from /usr/pkg/include/openssl/e_os2.h:13:0,
from /usr/pkg/include/openssl/ssl.h:15,
from eggdrop.h:265,
from main.h:90,
from tls.c:27:
/usr/pkg/include/openssl/asn1.h:554:35: note: declared here
DEPRECATEDIN_1_1_0(unsigned char *ASN1_STRING_data(ASN1_STRING *x))
^
/usr/pkg/include/openssl/opensslconf.h:109:37: note: in definition of macro 'DECLARE_DEPRECATED'
# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated));
^
/usr/pkg/include/openssl/asn1.h:554:1: note: in expansion of macro 'DEPRECATEDIN_1_1_0'
DEPRECATEDIN_1_1_0(unsigned char *ASN1_STRING_data(ASN1_STRING *x))
^
tls.c: In function 'ssl_showcert':
tls.c:605:9: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
buf = OPENSSL_buf2hexstr(md, len);
^
tls.c:610:9: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
buf = OPENSSL_buf2hexstr(md, len);
^
Same with clean NetBSD 8.0 install (gcc 5.5.0 openssl 1.0.2k).
Some update/install installed a second version of openssl under /usr/pkg, the same path tcl is under.
This will be fixed by #1045
Now for the good part.
The following systems throw ZERO compiler warnings with default CFLAGS:
Following tests with eggdrop version 0f5599e1fafa97454dc7a8b147c6076638e95ba8 (20241201):
64-bit Alpine 3.20.5 Linux 6.6.69 musl 1.2.5 gcc 13.2.1 Tcl 8.6.14 OpenSSL 3.3.2
64-bit Arch Linux 6.12.8 glibc 2.40 gcc 14.2.1 Tcl 8.6.16 OpenSSL 3.4.0
Following tests with eggdrop version 322bddbd102d58cdb00864a3a335b086beaf042c (20231010):
64-bit NetBSD 9.3 gcc 7.5.0 Tcl 8.6.13 OpenSSL 1.1.1k
Following tests with eggdrop version 1.9.5 (20230311):
64-bit Alpine 3.15.6 Linux 5.15.76 musl 1.2.2 gcc 10.3.1 Tcl 8.6.11 OpenSSL 1.1.1s
Following tests with eggdrop version 272983c2c34dd25673ab8dcf1be9ce897f217c85 (20221110):
64-bit Debian 10.13 Linux 4.19.0 gcc 8.3.0 Tcl 8.6.9 OpenSSL 1.1.1n
64-bit FreeBSD 13.0-RELEASE-p13 clang 11.0.1 Tcl 8.6.12 OpenSSL 1.1.1k
64-bit OpenBSD 7.0 clang 11.1.0 Tcl 8.6.8 LibreSSL 3.4.1
Following tests with eggdrop version 0deaa4c2e7b2b6c1369229f99086e17af23a838c (20220705):
64-bit Arch Linux 5.18.9 glibc 2.35 gcc 12.1.0 Tcl 8.6.12 OpenSSL 1.1.1q
Additional Tests
CFLAGS="-Wclobbered -O2" ./configure
./configure --disable-ipv6
./configure --disable-tls
./configure --disable-ipv6 --disable-tls
./configure --disable-tdns
64-bit Arch Linux 5.18.9 glibc 2.35 clang 14.0.6 Tcl 8.6.12 OpenSSL 1.1.1q
Following tests with eggdrop version ea8aa3150f095c84e3ef34912e6bfb0822b1b8a2 (20210508):
64-bit Fedora 10 Linux 2.6.27 glibc 2.9 gcc 4.3.2 Tcl 8.5.3 OpenSSL 0.9.8g
64-bit Alpine 3.13.5 Linux 5.10.38 musl 1.2.2 gcc 10.2.1 Tcl 8.6.10 OpenSSL 1.1.1k
Additional Notes
No nameservers defined.
Can't load modules dns: DNS initialisation failed.
expected, you could try experimental ./configure --enable-tdns
64-bit DragonFly 6.0.0 gcc 8.3 Tcl 8.6.11 LibreSSL 3.2.4
Additional Notes
./configure --with-sslinc=/usr/local/include --with-ssllib=/usr/local/lib
64-bit OpenBSD 6.9 clang 10.0.1 Tcl 8.6.8 LibreSSL 3.3.2
64-bit NetBSD 9.2 gcc 7.5.0 Tcl 8.6.11 OpenSSL 1.1.1k
Following tests with eggdrop version 1dfc7c8dd2d732887f9cc142befb4a90085f17d9 (https://github.com/michaelortmann/eggdrop/tree/sunos2)
64-bit Debian 9.13 Linux 4.9.0 gcc 6.3.0 Tcl 8.6.6 OpenSSL 1.1.0l
32-bit Debian 8.11 Linux 3.16.0 gcc 4.9.2 Tcl 8.6.2 OpenSSL 1.0.1t
64-bit CentOS 8 Linux 4.18.0 Tcl 8.6.8 glibc 2.28 gcc 8.2.1 Tcl OpenSSL 1.1.1c
32-bit Cygwin 2.11.1 Windows 7 gcc 7.3.0 Tcl 8.6.8 OpenSSL 1.0.2p
64-bit macOS Catalina 10.15.7 Darwin 19.6.0 clang 12.0.0 Tcl 8.5.9 OpenSSL 1.1.1g
Additional Notes
./configure --with-tcl=/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/Tcl.framework/tclConfig.sh --with-sslinc=/usr/local/opt/openssl/include --with-ssllib=/usr/local/opt/openssl/lib
64-bit OpenIndiana Hipster 2020.10 SunOS 5.11 gcc 10.2.0 Tcl 8.6.10 OpenSSL 1.0.2u
Additional Notes
gmake
32-bit Minix 3.3.0 clang 3.4 Tcl 8.6.1 OpenSSL 1.0.1g
Additional Notes
./configure --with-sslinc=/usr/pkg/include --with-ssllib=/usr/pkg/lib
The following warnings are harmless and will probably go away over time:
clang: warning: argument unused during compilation: '-g'
clang: warning: argument unused during compilation: '-g3'
Following tests with eggdrop version 5b223c3d9c5595eecb0e1db3141b19194cdaf23c (20201006)
64-bit Ubuntu 20.04.1 Linux 5.4.0 gcc 9.3.0 Tcl 8.6.10 OpenSSL 1.1.1f
64-bit Fedora 10 Linux 2.6.27.41 glibc 2.9 gcc 4.3.2 Tcl 8.5.3 OpenSSL 0.9.8g
Additional Notes
./configure --with-tcl=/home/michael/opt/tcl-8.5.3/lib/
LD_LIBRARY_PATH=/home/michael/opt/tcl-8.5.3/lib make
64-bit Arch Linux 5.8.13 glibc 2.32 gcc 10.2.0 Tcl 8.6.10 OpenSSL 1.1.1h
Additional Tests
with tcl 8.4.18
with clang 10.0.1
with tcc 0.9.27
Compiles fine, but _modular_ compile coredumps, so `make static` must be used with tcc, see #751
Meanwhile, more analysis was done, the crash is in
https://github.com/eggheads/eggdrop/blob/5b223c3d9c5595eecb0e1db3141b19194cdaf23c/src/mod/uptime.mod/uptime.c#L281
After disabling loadmoudle uptime, eggdrop runs fine
64-bit FreeBSD 12.2-RELEASE clang 10.0.1 Tcl 8.6.10 OpenSSL 1.1.1h
64-bit FreeBSD 11.3-RELEASE-p13 clang 8.0.0 Tcl 8.6.9 OpenSSL 1.0.2s
64-bit FreeBSD 10.4-RELEASE-p13 clang 3.4.1 Tcl 8.6.8 OpenSSL 1.0.1u
64-bit OpenBSD 6.7 clang 8.0.1 Tcl 8.6.8 LibreSSL 3.1.1
64-bit OpenBSD 6.7 gcc 4.2.1 Tcl 8.6.8 LibreSSL 3.1.1
32-bit OpenBSD 5.4 gcc 4.2.1 Tcl 8.6.0 OpenSSL 1.0.1c
Additional Notes
The following warnings are OpenBSD specific and ignored here:
botcmd.o: In function `remote_tell_who':
/home/michael/usr/src/eggdrop/src/botcmd.c:411: warning: sprintf() is often misused, please use snprintf()
/home/michael/usr/src/eggdrop/src/botcmd.c:331: warning: strcat() is almost always misused, please use strlcat()
/home/michael/usr/src/eggdrop/src/botcmd.c:352: warning: strcpy() is almost always misused, please use strlcpy()
dccutil.o: In function `makepass':
/home/michael/usr/src/eggdrop/src/dccutil.c:507: warning: random() may return deterministic values, is that what you want?
64-bit NetBSD 7.0.2 gcc 4.8.4 Tcl 8.5.19 OpenSSL 1.0.1u
64-bit Haiku shredder 1 hrev52295+96 x86_64 gcc 7.3.0 Tcl 8.6.8 OpenSSL 1.0.2p
Additional Notes
./configure --with-tcl=/boot/michael/opt/tcl-8.6.8/lib/tclConfig.sh --prefix=/boot/michael/eggdrop
LIBRARY_PATH=$LIBRARY_PATH:/boot/michael/opt/tcl-8.6.8/lib make
32-bit OpenWrt 18.06.1 Linux 4.14.63 musl 1.1.19 gcc 5.4.0 Tcl 8.6.9 w/o OpenSSL
Additional Notes
./configure --with-tcl=/home/michael/opt/tcl-8.6.9/lib/tclConfig.sh
LD_LIBRARY_PATH=/home/michael/opt/tcl-8.6.9/lib make
Following tests with eggdrop version 9711e38ef62ae4d4269a803f7bd41480f61e044c (20200701)
64-bit NetBSD 8.1 gcc 5.5.0 Tcl 8.6.9 OpenSSL 1.0.2k
32-bit OpenIndiana Hipster 2020.04 SunOS 5.11 clang 9.0.1 Tcl 8.6.10 OpenSSL 1.0.2u
Additional Notes
gmake
Following tests with eggdrop version 1b58814e2a4c9ca73c7f6c1b9301681cba8d9af2 (20191006)
64-bit NetBSD 7.1.2 gcc 4.8.5 Tcl 8.5.19 OpenSSL 1.0.1u
Following tests with eggdrop version ee03769e2f0e35f8cf3b29a400d673f4172302f7 (20181106):
64-bit FreeBSD 9.3-RELEASE-p49 gcc 4.2.1 Tcl 8.6.6 OpenSSL 0.9.8zh