A number of places in the Makefile assume that the compiler is GCC and the linker...
authorAlbert Lee <trisk@acm.jhu.edu>
Fri, 18 Dec 2009 01:06:56 +0000 (02:06 +0100)
committerJelmer Vernooij <jelmer@samba.org>
Fri, 18 Dec 2009 01:06:56 +0000 (02:06 +0100)
In the log_mapping structure, the index is an unsigned int but being initialised or compared to -1 in several cases. I've changed this to a size_t to be consistent with struct line's argc member in libirc since size_t is not guaranteed to be an unsigned int. I've added casts for the -1 initialisation.

Makefile
Makefile.settings.in
configure.ac
src/log_subst.c

index c4adc5a465f8f0f769499168533dc7fdb53d01f2..121e5f31218e1f4ecc9af11561be650e5731053a 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -18,7 +18,7 @@ LIBS += $(GNUTLS_LIBS)
 CFLAGS += $(GNUTLS_CFLAGS)
 
 CFLAGS+=-DHAVE_CONFIG_H -DDEFAULT_CONFIG_DIR=\"$(DEFAULT_CONFIG_DIR)\" -DHELPFILE=\"$(HELPFILE)\"
-CFLAGS+=-ansi -Wall -DMODULESDIR=\"$(modulesdir)\" -DSTRICT_MEMORY_ALLOCS=
+CFLAGS+=-DMODULESDIR=\"$(modulesdir)\" -DSTRICT_MEMORY_ALLOCS=
 
 .PHONY: all clean distclean install install-bin install-dirs install-doc install-data install-pkgconfig
 
@@ -80,7 +80,7 @@ dep_files = $(patsubst %.o, %.d, $(objs))
 
 ctrlproxy$(EXEEXT): src/main.o $(objs) $(LIBIRC)
        @echo Linking $@: $(LD) $(LDFLAGS) -rdynamic -o $@ $^ $(LIBS)
-       @$(LD) $(LDFLAGS) -rdynamic -o $@ $^ $(LIBS)
+       @$(LD) $(LDFLAGS) $(DYNAMIC) -o $@ $^ $(LIBS)
 
 src/settings.o: CFLAGS+=-DSYSCONFDIR=\"${sysconfdir}\"
 
@@ -92,11 +92,11 @@ daemon_objs += daemon/main.o daemon/user.o daemon/client.o daemon/backend.o
 
 ctrlproxyd$(EXEEXT): $(daemon_objs) $(objs) $(LIBIRC)
        @echo Linking $@
-       @$(LD) $(LDFLAGS) -rdynamic -o $@ $^ $(LIBS)
+       @$(CC) $(LDFLAGS) $(DYNAMIC) -o $@ $^ $(LIBS)
 
 ctrlproxy-admin$(EXEEXT): src/admin-cmd.o
        @echo Linking $@
-       @$(LD) $(LDFLAGS) -rdynamic -o $@ $^ $(LIBS)
+       @$(CC) $(LDFLAGS) $(DYNAMIC) -o $@ $^ $(LIBS)
 
 %.o: %.c
        @echo Compiling $<
@@ -185,7 +185,7 @@ lcov:
 
 %.$(SHLIBEXT):
        @echo Linking $@
-       @$(LD) -shared $(LDFLAGS) -o $@ $^
+       @$(CC) -shared $(LDFLAGS) -o $@ $^
 
 cscope.out::
        cscope -b -R
@@ -288,4 +288,6 @@ example/libirc-simple: example/irc_simple.o $(LIBIRC)
 
 example/irc_simple.o: CFLAGS+=-I$(libircdir)
 
+ifeq ($(GCC),yes)
 -include $(dep_files)
+endif
index 1a0a8ab88cd590b4e4ccb21e9e9ac7aa0e012fe9..e0bae0b9c358320c504f02a151c9472d604f6723 100644 (file)
@@ -3,6 +3,8 @@ SHLIBEXT = so
 LIBS = @LIBS@ @GLIB_LIBS@
 CC = @CC@
 LD = @CC@
+GCC = @GCC@
+DYNAMIC = @DYNAMIC@
 prefix = @prefix@
 exec_prefix = @exec_prefix@
 datarootdir = @datarootdir@
index 521883f65c1a703b3ec6d9c27160675227be1c19..63ec1f25b16e882f9ff391abac327f86a1ad9b77 100644 (file)
@@ -31,9 +31,15 @@ AC_CONFIG_HEADER([config.h])
 # Checks for programs.
 AC_PROG_CC
 AC_PROG_INSTALL
-AC_PATH_PROG(LD,ld)
 AC_PATH_PROG(IRCDTORTURE,ircdtorture)
 
+if test "$GCC" = "yes"; then
+       CFLAGS="$CFLAGS -ansi -Wall"
+       DYNAMIC="-rdynamic"
+fi
+AC_SUBST(GCC)
+AC_SUBST(DYNAMIC)
+
 AC_ARG_ENABLE(gcov,
 [ --enable-gcov                Enable GCOV support ],
 [ WITH_GCOV=1 ], [ WITH_GCOV=0 ])
index 0fbf8153970bcbc1493cc5b59f479ba269d3ff98..01d815492d1b61fbeb3eed5599da54f52bbed254 100644 (file)
@@ -30,7 +30,7 @@ struct subst_context {
 struct log_mapping {
        char *command;
        char subst;
-       unsigned int index;
+       size_t index;
        /* If index is -1 */
        char *(*callback) (struct subst_context *subst_ctx, 
                                           const struct irc_line *line,
@@ -161,20 +161,20 @@ static char *get_modechanges(struct subst_context *subst_ctx, const struct irc_l
 }
 
 static struct log_mapping mappings[] = {
-       {NULL, '@', -1, get_identifier },
-       {NULL, 'h', -1, get_hours },
-       {NULL, 'M', -1, get_minutes },
-       {NULL, 's', -1, get_seconds },
-       {NULL, 'd', -1, get_day },
-       {NULL, 'B', -1, get_month },
-       {NULL, 'Y', -1, get_year },
-       {NULL, 'e', -1, get_seconds_since_1970 },
-       {NULL, 'b', -1, get_monthname },
-       {NULL, 'n', -1, get_nick },
-       {NULL, 'u', -1, get_user },
-       {NULL, 'N', -1, get_network },
-       {NULL, 'S', -1, get_server },
-       {NULL, '%', -1, get_percent },
+       {NULL, '@', (size_t)-1, get_identifier },
+       {NULL, 'h', (size_t)-1, get_hours },
+       {NULL, 'M', (size_t)-1, get_minutes },
+       {NULL, 's', (size_t)-1, get_seconds },
+       {NULL, 'd', (size_t)-1, get_day },
+       {NULL, 'B', (size_t)-1, get_month },
+       {NULL, 'Y', (size_t)-1, get_year },
+       {NULL, 'e', (size_t)-1, get_seconds_since_1970 },
+       {NULL, 'b', (size_t)-1, get_monthname },
+       {NULL, 'n', (size_t)-1, get_nick },
+       {NULL, 'u', (size_t)-1, get_user },
+       {NULL, 'N', (size_t)-1, get_network },
+       {NULL, 'S', (size_t)-1, get_server },
+       {NULL, '%', (size_t)-1, get_percent },
        {"JOIN", 'c', 1, NULL },
        {"PART", 'c', 1, NULL },
        {"PART", 'm', 2, NULL },
@@ -192,7 +192,7 @@ static struct log_mapping mappings[] = {
        {"TOPIC", 't', 2, NULL },
        {"MODE", 't', 1, NULL },
        {"MODE", 'p', 2, NULL },
-       {"MODE", 'c', -1, get_modechanges },
+       {"MODE", 'c', (size_t)-1, get_modechanges },
        {"NICK", 'r', 1, NULL },
        {NULL, '0', 0, NULL },
        {NULL, '1', 1, NULL },