1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
|
--- a/GNUmakefile
+++ b/GNUmakefile
@@ -109,7 +109,7 @@
ZLIB_LINK:=
endif
I_LINK:= $(MOD_LINK) $(ENCODING_LINK) $(CHARSET_LINK) $(PTHREAD_LINK) \
- -lm $(ZLIB_LINK)
+ $(ZLIB_LINK) $(STDCXXLINK)
S_SOURCES:= enc_int.c \
mmap_file.c \
@@ -150,7 +150,7 @@
User.c
endif
S_OBJECTS:= $(S_SOURCES:.c=.o)
-S_LINK:= $(SOCKET_LINK) $(PTHREAD_LINK)
+S_LINK:= $(SOCKET_LINK) $(PTHREAD_LINK) $(STDCXXLINK)
E_SOURCES:= mmap_file.c \
conf_var.c \
@@ -175,7 +175,7 @@
E_SOURCES+= fnmatch.c # see the comment in pattern_map.h
endif
E_OBJECTS:= $(E_SOURCES:.c=.o)
-E_LINK:= $(PTHREAD_LINK)
+E_LINK:= $(PTHREAD_LINK) $(STDCXXLINK)
LIB_TARGET:= WWW.pm
@@ -184,10 +184,10 @@
##
extract: $(E_OBJECTS)
- $(CC) $(CFLAGS) -o $@ $^ $(E_LINK)
+ $(LD) $(CFLAGS) -o $@ $^ $(E_LINK)
index: $(I_OBJECTS) $(CHARSET_LIB) $(ENCODING_LIB) $(MOD_LIBS)
- $(CC) $(CFLAGS) $(CHARSET_LIB_PATH) $(ENCODING_LIB_PATH) \
+ $(LD) $(CFLAGS) $(CHARSET_LIB_PATH) $(ENCODING_LIB_PATH) \
$(MOD_LIB_PATHS) -o $@ $(I_OBJECTS) $(I_LINK)
init_modules.c: mod/*/mod_*.h init_modules-sh
@@ -197,7 +197,7 @@
./init_mod_vars-sh > $@ || $(RM) $@
search: $(S_OBJECTS)
- $(CC) $(CFLAGS) -o $@ $^ $(S_LINK)
+ $(LD) $(CFLAGS) -o $@ $^ $(S_LINK)
$(CHARSET_LIB): FORCE
@$(MAKE) -C $(dir $@) DEBUGFLAGS="$(DEBUGFLAGS)"
--- a/config/config.mk
+++ b/config/config.mk
@@ -179,6 +179,13 @@
# doesn't have it or any equivalent since any errors from this
# command are ignored in the makefiles.
+LD:= gcc
+# This is the command the provides linking since g++ links in
+# unnecessary extra stuff.
+
+STDCXXLINK:= -lstdc++
+# This is necessary to link C++ programs using gcc
+
###############################################################################
#
# C++ compiler
|