Here is a little anecdote about bringing old source code using OpenSSL to recent versions…
foo.c:47:11: warning: ‘ERR_remove_state’ is deprecated [-Wdeprecated-declarations]
ERR_remove_state(0);
^~~~~~~~~~~~~~~~
...
/usr/include/openssl/err.h:248:1: note: declared here
DEPRECATEDIN_1_0_0(void ERR_remove_state(unsigned long pid))
^
Hm, okay, ERR_remove_state
is deprecated. Let me check the OpenSSL man pages…
ERR_remove_state is deprecated and has been replaced by ERR_remove_thread_state.
Ah, well, that seems easy to replace with ERR_remove_thread_state
!
*hackhackhack*
foo.c:47:11: warning: ‘ERR_remove_thread_state’ is deprecated [-Wdeprecated-declarations]
ERR_remove_thread_state(NULL);
^~~~~~~~~~~~~~~~~~~~~~~
...
/usr/include/openssl/err.h:247:1: note: declared here
DEPRECATEDIN_1_1_0(void ERR_remove_thread_state(void *))
^
(╯°□°)╯︵ ┻━┻