Mercurial > irccd
changeset 1001:b01f5d65d62a
misc: various fixes for glibc
author | David Demelier <markand@malikania.fr> |
---|---|
date | Sat, 13 Feb 2021 10:09:00 +0100 |
parents | c2cb87b19307 |
children | ec5461750efd |
files | extern/libcompat/CMakeLists.txt extern/libduktape/CMakeLists.txt irccd/CMakeLists.txt irccd/conf.y irccd/dl-plugin.c irccd/jsapi-directory.c irccd/transport.c lib/irccd/channel.c lib/irccd/conn.c lib/irccd/irccd.c lib/irccd/log.c lib/irccd/subst.c tests/test-plugin-tictactoe.c |
diffstat | 13 files changed, 40 insertions(+), 11 deletions(-) [+] |
line wrap: on
line diff
--- a/extern/libcompat/CMakeLists.txt Fri Feb 12 17:51:30 2021 +0100 +++ b/extern/libcompat/CMakeLists.txt Sat Feb 13 10:09:00 2021 +0100 @@ -24,6 +24,7 @@ include(CheckFunctionExists) include(CheckIncludeFile) include(CheckStructHasMember) +include(CheckSymbolExists) set( SOURCES @@ -145,6 +146,26 @@ FILES ${libirccd-compat_SOURCE_DIR}/extern/queue/sys/queue.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/irccd/extern/sys ) +else () + # + # Make sure it has at least _SAFE macros because some implementations + # may provide terribly outdated queue.h (e.g. glibc). + # + check_symbol_exists(LIST_FOREACH_SAFE sys/queue.h COMPAT_HAVE_LIST_FOREACH_SAFE) + check_symbol_exists(SLIST_FOREACH_SAFE sys/queue.h COMPAT_HAVE_SLIST_FOREACH_SAFE) + check_symbol_exists(STAILQ_FOREACH_SAFE sys/queue.h COMPAT_HAVE_STAILQ_FOREACH_SAFE) + check_symbol_exists(TAILQ_FOREACH_SAFE sys/queue.h COMPAT_HAVE_TAILQ_FOREACH_SAFE) + + if (NOT COMPAT_HAVE_LIST_FOREACH_SAFE OR + NOT COMPAT_HAVE_SLIST_FOREACH_SAFE OR + NOT COMPAT_HAVE_STAILQ_FOREACH_SAFE OR + NOT COMPAT_HAVE_TAILQ_FOREACH_SAFE) + target_include_directories( + libirccd-compat + PUBLIC + $<BUILD_INTERFACE:${libirccd-compat_SOURCE_DIR}/extern/queue> + ) + endif () endif () # Math library
--- a/extern/libduktape/CMakeLists.txt Fri Feb 12 17:51:30 2021 +0100 +++ b/extern/libduktape/CMakeLists.txt Sat Feb 13 10:09:00 2021 +0100 @@ -24,6 +24,8 @@ PUBLIC $<BUILD_INTERFACE:${libirccd-duktape_SOURCE_DIR}> ) +target_link_libraries(libirccd-duktape m) + if (BUILD_SHARED_LIBS) target_compile_definitions(libirccd-duktape PUBLIC DUK_F_DLL_BUILD) endif ()
--- a/irccd/CMakeLists.txt Fri Feb 12 17:51:30 2021 +0100 +++ b/irccd/CMakeLists.txt Sat Feb 13 10:09:00 2021 +0100 @@ -75,7 +75,7 @@ ) if (IRCCD_WITH_JS) - target_link_libraries(irccd-fe libirccd-duktape) + target_link_libraries(irccd-fe libirccd-duktape -pthread ${CMAKE_DL_LIBS}) endif () flex_target(irccd-lex ${irccd_SOURCE_DIR}/lex.l ${irccd_BINARY_DIR}/lex.c)
--- a/irccd/conf.y Fri Feb 12 17:51:30 2021 +0100 +++ b/irccd/conf.y Sat Feb 13 10:09:00 2021 +0100 @@ -22,6 +22,7 @@ #include <stdio.h> #include <string.h> +#include <irccd/compat.h> #include <irccd/irccd.h> #include <irccd/log.h> #include <irccd/rule.h>
--- a/irccd/dl-plugin.c Fri Feb 12 17:51:30 2021 +0100 +++ b/irccd/dl-plugin.c Sat Feb 13 10:09:00 2021 +0100 @@ -25,6 +25,7 @@ #include <stdlib.h> #include <string.h> +#include <irccd/compat.h> #include <irccd/config.h> #include <irccd/log.h> #include <irccd/plugin.h>
--- a/irccd/jsapi-directory.c Fri Feb 12 17:51:30 2021 +0100 +++ b/irccd/jsapi-directory.c Sat Feb 13 10:09:00 2021 +0100 @@ -30,6 +30,8 @@ #include <duktape.h> +#include <irccd/compat.h> + #include "jsapi-system.h" enum {
--- a/irccd/transport.c Fri Feb 12 17:51:30 2021 +0100 +++ b/irccd/transport.c Sat Feb 13 10:09:00 2021 +0100 @@ -27,8 +27,8 @@ #include <sys/un.h> #include <unistd.h> -#include <config.h> - +#include <irccd/compat.h> +#include <irccd/config.h> #include <irccd/log.h> #include <irccd/transport.h> #include <irccd/util.h>
--- a/lib/irccd/channel.c Fri Feb 12 17:51:30 2021 +0100 +++ b/lib/irccd/channel.c Sat Feb 13 10:09:00 2021 +0100 @@ -21,6 +21,7 @@ #include <string.h> #include "channel.h" +#include "compat.h" #include "util.h" static inline struct irc_channel_user *
--- a/lib/irccd/conn.c Fri Feb 12 17:51:30 2021 +0100 +++ b/lib/irccd/conn.c Sat Feb 13 10:09:00 2021 +0100 @@ -25,6 +25,7 @@ #include <string.h> #include <unistd.h> +#include "compat.h" #include "conn.h" #include "util.h"
--- a/lib/irccd/irccd.c Fri Feb 12 17:51:30 2021 +0100 +++ b/lib/irccd/irccd.c Sat Feb 13 10:09:00 2021 +0100 @@ -16,8 +16,6 @@ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ -#include <config.h> - #include <sys/wait.h> #include <assert.h> #include <ctype.h> @@ -29,6 +27,8 @@ #include <string.h> #include <unistd.h> +#include "compat.h" +#include "config.h" #include "event.h" #include "irccd.h" #include "log.h"
--- a/lib/irccd/log.c Fri Feb 12 17:51:30 2021 +0100 +++ b/lib/irccd/log.c Sat Feb 13 10:09:00 2021 +0100 @@ -54,10 +54,9 @@ static void finalizer_files(void) { + /* Out and err are the same. */ if (out) fclose(out); - if (err) - fclose(err); } static void
--- a/lib/irccd/subst.c Fri Feb 12 17:51:30 2021 +0100 +++ b/lib/irccd/subst.c Sat Feb 13 10:09:00 2021 +0100 @@ -23,6 +23,7 @@ #include <stdlib.h> #include <string.h> +#include "compat.h" #include "subst.h" #include "util.h"
--- a/tests/test-plugin-tictactoe.c Fri Feb 12 17:51:30 2021 +0100 +++ b/tests/test-plugin-tictactoe.c Sat Feb 13 10:09:00 2021 +0100 @@ -16,13 +16,13 @@ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ - #include <err.h> #define GREATEST_USE_ABBREVS 0 #include <greatest.h> #include <irccd/compat.h> +#include <irccd/irccd.h> #include <irccd/js-plugin.h> #include <irccd/log.h> #include <irccd/plugin.h> @@ -69,7 +69,7 @@ if (!plugin) errx(1, "could not load plugin"); - irc_log_to_console(); + irc_bot_init(); irc_server_incref(server); irc_plugin_set_template(plugin, "draw", "draw=#{channel}:#{command}:#{nickname}:#{plugin}:#{server}"); irc_plugin_set_template(plugin, "invalid", "invalid=#{channel}:#{command}:#{nickname}:#{origin}:#{plugin}:#{server}"); @@ -83,7 +83,7 @@ irc_server_join(server, "#tictactoe", NULL); irc_channel_add(LIST_FIRST(&server->channels), "a", 0, 0); irc_channel_add(LIST_FIRST(&server->channels), "b", 0, 0); - + /* Fake server connected to send data. */ server->state = IRC_SERVER_STATE_CONNECTED; } @@ -261,7 +261,7 @@ play("a 1"); GREATEST_ASSERT_STR_EQ("", server->conn.out); - + GREATEST_PASS(); }