- master branch is open for new features to be part of future release
series 5.7.x
- testing phase for v5.6.x series
- mark the end of development for 5.6.x series
... | ... |
@@ -283,7 +283,7 @@ ifneq (,$(findstring gcc, $(CC_LONGVER))) |
283 | 283 |
# sed with POSIX.1 regex doesn't support |, + or ? |
284 | 284 |
# (darwin, solaris ...) => this complicated expression |
285 | 285 |
MKDEP=$(CC) -MM -MG |
286 |
- #transform gcc version into 2.9x or 3.0 |
|
286 |
+ #transform gcc version into some well-known versions, or 9 for newer versions |
|
287 | 287 |
CC_SHORTVER:=$(shell echo "$(CC_VER)" | cut -d" " -f 2| \ |
288 | 288 |
sed -e 's/[^0-9]*-\(.*\)/\1/'| \ |
289 | 289 |
sed -e 's/2\.9.*/2.9x/' \ |
... | ... |
@@ -310,7 +310,9 @@ ifneq (,$(findstring gcc, $(CC_LONGVER))) |
310 | 310 |
-e 's/10\.[0-9]\..*/9.0+/' \ |
311 | 311 |
-e 's/10\.[0-9]$$/9.0+/' \ |
312 | 312 |
-e 's/11\.[0-9]\..*/9.0+/' \ |
313 |
- -e 's/11\.[0-9]$$/9.0+/') |
|
313 |
+ -e 's/11\.[0-9]$$/9.0+/' \ |
|
314 |
+ -e 's/12\.[0-9]\..*/9.0+/' \ |
|
315 |
+ -e 's/12\.[0-9]$$/9.0+/') |
|
314 | 316 |
ifeq (,$(strip $(filter-out 3.0 3.4 4.x 4.2+ 4.5+ 5.0+ 6.0+ 7.0+ 8.0+ 9.0+,$(CC_SHORTVER)))) |
315 | 317 |
# dependencies can be generated on-the-fly while compiling *.c |
316 | 318 |
CC_MKDEP_OPTS=-MMD -MP |
... | ... |
@@ -524,7 +524,12 @@ ifeq ($(OS), darwin) |
524 | 524 |
doc_dir = share/doc/$(MAIN_NAME)/ |
525 | 525 |
man_dir = man/ |
526 | 526 |
data_dir = share/$(MAIN_NAME)/ |
527 |
+ MACPORTS = $(shell which port 2>/dev/null) |
|
528 |
+ifeq ($(MACPORTS),) |
|
527 | 529 |
LOCALBASE ?= /usr/local |
530 |
+else |
|
531 |
+ LOCALBASE ?= /opt/local |
|
532 |
+endif |
|
528 | 533 |
endif |
529 | 534 |
|
530 | 535 |
LOCALBASE ?= /usr/local |
... | ... |
@@ -1890,7 +1890,7 @@ ifeq ($(OS), linux) |
1890 | 1890 |
endif |
1891 | 1891 |
ifeq ($(CC_NAME), gcc) |
1892 | 1892 |
# link librt for glibc <= 2.17 |
1893 |
- GLIBCVER:=$(shell ldd --version | head -1 | awk '{ sub(/\./, "", $NF); print $NF }' ) |
|
1893 |
+ GLIBCVER=$(shell ldd --version | head -1 | sed -e 's/^.* //' -e 's/\.//' ) |
|
1894 | 1894 |
ifeq ($(shell [ $(GLIBCVER) -le 217 ] && echo librt), librt) |
1895 | 1895 |
LIBS+=-lrt |
1896 | 1896 |
endif |
... | ... |
@@ -1888,6 +1888,13 @@ ifeq ($(OS), linux) |
1888 | 1888 |
ifeq ($(NO_SELECT),) |
1889 | 1889 |
C_DEFS+=-DHAVE_SELECT |
1890 | 1890 |
endif |
1891 |
+ ifeq ($(CC_NAME), gcc) |
|
1892 |
+ # link librt for glibc <= 2.17 |
|
1893 |
+ GLIBCVER:=$(shell ldd --version | head -1 | awk '{ sub(/\./, "", $NF); print $NF }' ) |
|
1894 |
+ ifeq ($(shell [ $(GLIBCVER) -le 217 ] && echo librt), librt) |
|
1895 |
+ LIBS+=-lrt |
|
1896 |
+ endif |
|
1897 |
+ endif |
|
1891 | 1898 |
endif |
1892 | 1899 |
|
1893 | 1900 |
ifeq ($(OS), gnu_kfreebsd) |
... | ... |
@@ -308,7 +308,9 @@ ifneq (,$(findstring gcc, $(CC_LONGVER))) |
308 | 308 |
-e 's/9\.[0-9]\..*/9.0+/' \ |
309 | 309 |
-e 's/9\.[0-9]$$/9.0+/' \ |
310 | 310 |
-e 's/10\.[0-9]\..*/9.0+/' \ |
311 |
- -e 's/10\.[0-9]$$/9.0+/') |
|
311 |
+ -e 's/10\.[0-9]$$/9.0+/' \ |
|
312 |
+ -e 's/11\.[0-9]\..*/9.0+/' \ |
|
313 |
+ -e 's/11\.[0-9]$$/9.0+/') |
|
312 | 314 |
ifeq (,$(strip $(filter-out 3.0 3.4 4.x 4.2+ 4.5+ 5.0+ 6.0+ 7.0+ 8.0+ 9.0+,$(CC_SHORTVER)))) |
313 | 315 |
# dependencies can be generated on-the-fly while compiling *.c |
314 | 316 |
CC_MKDEP_OPTS=-MMD -MP |
- enables compilation with debug symbols by default for other architectures in core
- pull request GH #2811
- closes GH #2789
... | ... |
@@ -923,8 +923,8 @@ ifeq ($(use_fast_lock), yes) |
923 | 923 |
found_lock_method=yes |
924 | 924 |
endif |
925 | 925 |
|
926 |
-CFLAGS= |
|
927 |
-LDFLAGS= |
|
926 |
+CFLAGS=-g |
|
927 |
+LDFLAGS=-g |
|
928 | 928 |
C_INCLUDES= |
929 | 929 |
# setting CFLAGS |
930 | 930 |
ifeq ($(mode), release) |
... | ... |
@@ -934,7 +934,7 @@ ifeq ($(ARCH), i386) |
934 | 934 |
ifeq ($(CC_NAME), gcc) |
935 | 935 |
C_DEFS+=-DCC_GCC_LIKE_ASM |
936 | 936 |
#common stuff |
937 |
- CFLAGS=-g $(CC_OPT) -funroll-loops -Wcast-align $(PROFILE) |
|
937 |
+ CFLAGS+=$(CC_OPT) -funroll-loops -Wcast-align $(PROFILE) |
|
938 | 938 |
#if gcc 9.0+ 8.0+, 7.0+, 6.0+, 5.0+, 4.5+ or 4.2+ |
939 | 939 |
ifeq (,$(strip $(filter-out 4.2+ 4.5+ 5.0+ 6.0+ 7.0+ 8.0+ 9.0+,$(CC_SHORTVER)))) |
940 | 940 |
$(call set_if_empty,CPUTYPE,generic) |
... | ... |
@@ -991,12 +991,12 @@ else # CC_NAME, gcc |
991 | 991 |
ifeq ($(CC_NAME), clang) |
992 | 992 |
$(call set_if_empty,CPUTYPE,athlon64) |
993 | 993 |
C_DEFS+=-DCC_GCC_LIKE_ASM |
994 |
- CFLAGS+=-g -m32 $(CC_OPT) -mtune=$(CPUTYPE) |
|
994 |
+ CFLAGS+=-m32 $(CC_OPT) -mtune=$(CPUTYPE) |
|
995 | 995 |
LDFLAGS+=-m32 |
996 | 996 |
else # CC_NAME, clang |
997 | 997 |
ifeq ($(CC_NAME), icc) |
998 | 998 |
C_DEFS+=-DCC_GCC_LIKE_ASM |
999 |
- CFLAGS=-g -O3 -ipo -ipo_obj -unroll $(PROFILE) \ |
|
999 |
+ CFLAGS+=-O3 -ipo -ipo_obj -unroll $(PROFILE) \ |
|
1000 | 1000 |
-tpp6 -xK #-openmp #optimize for PIII |
1001 | 1001 |
# -prefetch doesn't seem to work |
1002 | 1002 |
#( ty to inline acroos files, unroll loops,prefetch, |
... | ... |
@@ -1016,7 +1016,7 @@ ifeq ($(ARCH), x86_64) |
1016 | 1016 |
ifeq ($(CC_NAME), gcc) |
1017 | 1017 |
C_DEFS+=-DCC_GCC_LIKE_ASM |
1018 | 1018 |
#common stuff |
1019 |
- CFLAGS=-g $(CC_OPT) -funroll-loops -Wcast-align $(PROFILE) |
|
1019 |
+ CFLAGS+=$(CC_OPT) -funroll-loops -Wcast-align $(PROFILE) |
|
1020 | 1020 |
#if gcc 4.5+ |
1021 | 1021 |
ifeq ($(CC_SHORTVER),$(filter $(CC_SHORTVER),4.2+ 4.5+ 5.0+ 6.0+ 7.0+ 8.0+ 9.0+)) |
1022 | 1022 |
$(call set_if_empty,CPUTYPE,generic) |
... | ... |
@@ -1073,13 +1073,13 @@ else # CC_NAME, gcc |
1073 | 1073 |
ifeq ($(CC_NAME), clang) |
1074 | 1074 |
$(call set_if_empty,CPUTYPE,opteron) |
1075 | 1075 |
C_DEFS+=-DCC_GCC_LIKE_ASM |
1076 |
- CFLAGS+=-g -m64 \ |
|
1076 |
+ CFLAGS+=-m64 \ |
|
1077 | 1077 |
$(CC_OPT) |
1078 | 1078 |
LDFLAGS+=-m64 |
1079 | 1079 |
else # CC_NAME, clang |
1080 | 1080 |
ifeq ($(CC_NAME), icc) |
1081 | 1081 |
C_DEFS+=-DCC_GCC_LIKE_ASM |
1082 |
- CFLAGS=-g -O3 -ipo -ipo_obj -unroll $(PROFILE) \ |
|
1082 |
+ CFLAGS+=-O3 -ipo -ipo_obj -unroll $(PROFILE) \ |
|
1083 | 1083 |
-tpp6 -xK #-openmp #optimize for PIII |
1084 | 1084 |
# -prefetch doesn't seem to work |
1085 | 1085 |
#( ty to inline acroos files, unroll loops,prefetch, |
... | ... |
@@ -1099,7 +1099,7 @@ ifeq ($(ARCH), sparc64) |
1099 | 1099 |
ifeq ($(CC_NAME), gcc) |
1100 | 1100 |
C_DEFS+=-DCC_GCC_LIKE_ASM -DSPARC64_MODE |
1101 | 1101 |
#common stuff |
1102 |
- CFLAGS=-g $(CC_OPT) -funroll-loops $(PROFILE) \ |
|
1102 |
+ CFLAGS+=$(CC_OPT) -funroll-loops $(PROFILE) \ |
|
1103 | 1103 |
#-Wcast-align \ |
1104 | 1104 |
#-Wmissing-prototypes |
1105 | 1105 |
#if gcc 9.0+ 8.0+, 7.0+, 6.0+, 5.0+, 4.5+ or 4.2+ |
... | ... |
@@ -1175,7 +1175,7 @@ else #CC_NAME, gcc |
1175 | 1175 |
ifeq ($(CC_NAME), suncc) |
1176 | 1176 |
C_DEFS+=-DCC_GCC_LIKE_ASM |
1177 | 1177 |
C_DEFS+=-DSPARC64_MODE |
1178 |
- CFLAGS+= -m64 -g -xO3 -xtarget=native -xmemalign=8i \ |
|
1178 |
+ CFLAGS+= -m64 -xO3 -xtarget=native -xmemalign=8i \ |
|
1179 | 1179 |
-fma=fused -fns=yes \ |
1180 | 1180 |
-xc99 # C99 support |
1181 | 1181 |
LDFLAGS+=-m64 |
... | ... |
@@ -1193,7 +1193,7 @@ ifeq ($(ARCH), sparc) |
1193 | 1193 |
ifeq ($(CC_NAME), gcc) |
1194 | 1194 |
C_DEFS+=-DCC_GCC_LIKE_ASM |
1195 | 1195 |
#common stuff |
1196 |
- CFLAGS=-g $(CC_OPT) -funroll-loops $(PROFILE) \ |
|
1196 |
+ CFLAGS+=$(CC_OPT) -funroll-loops $(PROFILE) \ |
|
1197 | 1197 |
#-Wcast-align \ |
1198 | 1198 |
#-Wmissing-prototypes |
1199 | 1199 |
#if gcc 5.0+, 4.5+ or 4.2+ |
... | ... |
@@ -1243,7 +1243,7 @@ endif #CC_SHORTVER, 9.0+ 8.0+, 7.0+, 6.0+, 5.0+, 4.5+ or 4.2+ |
1243 | 1243 |
else #CC_NAME, gcc |
1244 | 1244 |
ifeq ($(CC_NAME), suncc) |
1245 | 1245 |
C_DEFS+=-DCC_GCC_LIKE_ASM |
1246 |
- CFLAGS+= -g -xO3 -xtarget=native -xmemalign=4i \ |
|
1246 |
+ CFLAGS+=-xO3 -xtarget=native -xmemalign=4i \ |
|
1247 | 1247 |
-fma=fused -fns=yes \ |
1248 | 1248 |
-xc99 # C99 support |
1249 | 1249 |
# -Dinline="" # add this if cc < 5.3 (define inline as null) |
... | ... |
@@ -1260,7 +1260,7 @@ ifeq ($(ARCH), arm) |
1260 | 1260 |
ifeq ($(CC_NAME), gcc) |
1261 | 1261 |
C_DEFS+=-DCC_GCC_LIKE_ASM |
1262 | 1262 |
#common stuff |
1263 |
- CFLAGS=-marm -march=armv5t $(CC_OPT) -funroll-loops -fsigned-char $(PROFILE) |
|
1263 |
+ CFLAGS+=-marm -march=armv5t $(CC_OPT) -funroll-loops -fsigned-char $(PROFILE) |
|
1264 | 1264 |
#if gcc 4.5+ or 4.2+ |
1265 | 1265 |
ifeq (,$(strip $(filter-out 4.2+ 4.5+ 5.0+ 6.0+ 7.0+ 8.0+ 9.0+,$(CC_SHORTVER)))) |
1266 | 1266 |
CFLAGS+= -ftree-vectorize -fno-strict-overflow |
... | ... |
@@ -1308,7 +1308,7 @@ ifeq ($(ARCH), arm6) |
1308 | 1308 |
ifeq ($(CC_NAME), gcc) |
1309 | 1309 |
C_DEFS+=-DCC_GCC_LIKE_ASM |
1310 | 1310 |
#common stuff |
1311 |
- CFLAGS=-march=armv6 $(CC_OPT) -funroll-loops -fsigned-char \ |
|
1311 |
+ CFLAGS+=-march=armv6 $(CC_OPT) -funroll-loops -fsigned-char \ |
|
1312 | 1312 |
$(PROFILE) |
1313 | 1313 |
#if gcc 7.0+, 6.0+, 5.0+, 4.5+ or 4.2+ |
1314 | 1314 |
ifeq (,$(strip $(filter-out 4.2+ 4.5+ 5.0+ 6.0+ 7.0+ 8.0+ 9.0+,$(CC_SHORTVER)))) |
... | ... |
@@ -1355,7 +1355,7 @@ ifeq ($(ARCH), arm7) |
1355 | 1355 |
ifeq ($(CC_NAME), gcc) |
1356 | 1356 |
C_DEFS+=-DCC_GCC_LIKE_ASM |
1357 | 1357 |
#common stuff, use armv7-a as lowest common architecture |
1358 |
- CFLAGS=-march=armv7-a $(CC_OPT) -funroll-loops -fsigned-char \ |
|
1358 |
+ CFLAGS+=-march=armv7-a $(CC_OPT) -funroll-loops -fsigned-char \ |
|
1359 | 1359 |
$(PROFILE) |
1360 | 1360 |
#if gcc 7.0+, 6.0+, 5.0+, 4.5+ or 4.2+ |
1361 | 1361 |
ifeq (,$(strip $(filter-out 4.2+ 4.5+ 5.0+ 6.0+ 7.0+ 8.0+ 9.0+,$(CC_SHORTVER)))) |
... | ... |
@@ -1402,7 +1402,7 @@ ifeq ($(ARCH), mips) |
1402 | 1402 |
ifeq ($(CC_NAME), gcc) |
1403 | 1403 |
C_DEFS+=-DCC_GCC_LIKE_ASM |
1404 | 1404 |
#common stuff |
1405 |
- CFLAGS=$(CC_OPT) -funroll-loops $(PROFILE) |
|
1405 |
+ CFLAGS+=$(CC_OPT) -funroll-loops $(PROFILE) |
|
1406 | 1406 |
#if gcc 9.0+ 8.0+, 7.0+, 6.0, 5.0+, 4.5+ or 4.2+ |
1407 | 1407 |
ifeq (,$(strip $(filter-out 4.2+ 4.5+ 5.0+ 6.0+ 7.0+ 8.0+ 9.0+,$(CC_SHORTVER)))) |
1408 | 1408 |
CFLAGS+=-mfp32 -march=r3000 \ |
... | ... |
@@ -1451,7 +1451,7 @@ ifeq ($(ARCH), mips2) |
1451 | 1451 |
ifeq ($(CC_NAME), gcc) |
1452 | 1452 |
C_DEFS+=-DCC_GCC_LIKE_ASM |
1453 | 1453 |
#common stuff |
1454 |
- CFLAGS= $(CC_OPT) -funroll-loops $(PROFILE) |
|
1454 |
+ CFLAGS+= $(CC_OPT) -funroll-loops $(PROFILE) |
|
1455 | 1455 |
#if gcc 9.0+ 8.0+, 7.0+, 6.0+, 5.0+, 4.5+ or 4.2+ |
1456 | 1456 |
ifeq (,$(strip $(filter-out 4.2+ 4.5+ 5.0+ 6.0+ 7.0+ 8.0+ 9.0+,$(CC_SHORTVER)))) |
1457 | 1457 |
CFLAGS+=-ftree-vectorize -fno-strict-overflow |
... | ... |
@@ -1497,7 +1497,7 @@ ifeq ($(ARCH), mips64) |
1497 | 1497 |
ifeq ($(CC_NAME), gcc) |
1498 | 1498 |
C_DEFS+=-DCC_GCC_LIKE_ASM |
1499 | 1499 |
#common stuff |
1500 |
- CFLAGS= $(CC_OPT) -funroll-loops $(PROFILE) |
|
1500 |
+ CFLAGS+= $(CC_OPT) -funroll-loops $(PROFILE) |
|
1501 | 1501 |
#if gcc 9.0+ 8.0+, 7.0+, 6.0+, 5.0+, 4.5+ or 4.2+ |
1502 | 1502 |
ifeq (,$(strip $(filter-out 4.2+ 4.5+ 5.0+ 6.0+ 7.0+ 8.0+ 9.0+,$(CC_SHORTVER)))) |
1503 | 1503 |
CFLAGS+=-ftree-vectorize -fno-strict-overflow |
... | ... |
@@ -1544,7 +1544,7 @@ ifeq ($(ARCH), alpha) |
1544 | 1544 |
ifeq ($(CC_NAME), gcc) |
1545 | 1545 |
C_DEFS+=-DCC_GCC_LIKE_ASM |
1546 | 1546 |
#common stuff |
1547 |
- CFLAGS= $(CC_OPT) -funroll-loops $(PROFILE) |
|
1547 |
+ CFLAGS+= $(CC_OPT) -funroll-loops $(PROFILE) |
|
1548 | 1548 |
#if gcc 5.0+, 4.5 or 4.2+ |
1549 | 1549 |
ifeq (,$(strip $(filter-out 4.2+ 4.5+ 5.0+ 6.0+ 7.0+ 8.0+ 9.0+,$(CC_SHORTVER)))) |
1550 | 1550 |
CFLAGS+= -fno-strict-overflow |
... | ... |
@@ -1590,7 +1590,7 @@ ifeq ($(ARCH), ppc) |
1590 | 1590 |
ifeq ($(CC_NAME), gcc) |
1591 | 1591 |
C_DEFS+=-DCC_GCC_LIKE_ASM |
1592 | 1592 |
#common stuff |
1593 |
- CFLAGS= |
|
1593 |
+ CFLAGS+= |
|
1594 | 1594 |
#if gcc 9.0+ 8.0+, 7.0+, 6.0+, 5.0+, 4.5+ or 4.2+ |
1595 | 1595 |
ifeq (,$(strip $(filter-out 4.2+ 4.5+ 5.0+ 6.0+ 7.0+ 8.0+ 9.0+,$(CC_SHORTVER)))) |
1596 | 1596 |
$(call set_if_empty,CPUTYPE,powerpc) |
... | ... |
@@ -1647,7 +1647,7 @@ ifeq ($(ARCH), ppc64) |
1647 | 1647 |
ifeq ($(CC_NAME), gcc) |
1648 | 1648 |
C_DEFS+=-DCC_GCC_LIKE_ASM |
1649 | 1649 |
#common stuff |
1650 |
- CFLAGS= $(CC_OPT) -funroll-loops -fsigned-char $(PROFILE) |
|
1650 |
+ CFLAGS+= $(CC_OPT) -funroll-loops -fsigned-char $(PROFILE) |
|
1651 | 1651 |
#if gcc 9.0+ 8.0+, 7.0+, 6.0+, 5.0+, 4.5+ or 4.2+ |
1652 | 1652 |
ifeq (,$(strip $(filter-out 4.2+ 4.5+ 5.0+ 6.0+ 7.0+ 8.0+ 9.0+,$(CC_SHORTVER)))) |
1653 | 1653 |
$(call set_if_empty,CPUTYPE,powerpc64) |
... | ... |
@@ -1745,7 +1745,7 @@ LIB_LDFLAGS+= $(LD_EXTRA_OPTS) $(LD_PMUTEX_OPTS) |
1745 | 1745 |
|
1746 | 1746 |
else #mode,release |
1747 | 1747 |
ifeq ($(CC_NAME), gcc) |
1748 |
- CFLAGS=-g -Wcast-align $(PROFILE) |
|
1748 |
+ CFLAGS+=-Wcast-align $(PROFILE) |
|
1749 | 1749 |
C_DEFS+=-DCC_GCC_LIKE_ASM |
1750 | 1750 |
ifeq ($(ARCH), sparc64) |
1751 | 1751 |
C_DEFS+=SPARC64_MODE |
... | ... |
@@ -1754,14 +1754,14 @@ ifeq ($(ARCH), sparc64) |
1754 | 1754 |
endif |
1755 | 1755 |
ifeq ($(LDTYPE), solaris) |
1756 | 1756 |
#solaris ld |
1757 |
- LDFLAGS+=-g $(PROFILE) |
|
1757 |
+ LDFLAGS+=$(PROFILE) |
|
1758 | 1758 |
MOD_LDFLAGS:=-G $(LDFLAGS) |
1759 | 1759 |
LIB_LDFLAGS:=-G $(LDFLAGS) |
1760 | 1760 |
LIB_SONAME=-Wl,-h, |
1761 | 1761 |
LD_RPATH=-Wl,-R, |
1762 | 1762 |
else |
1763 | 1763 |
#gnu or other ld type |
1764 |
- LDFLAGS+=-g -Wl,-E $(PROFILE) |
|
1764 |
+ LDFLAGS+=-Wl,-E $(PROFILE) |
|
1765 | 1765 |
MOD_LDFLAGS:=-shared $(LDFLAGS) |
1766 | 1766 |
LIB_LDFLAGS:=-shared $(LDFLAGS) |
1767 | 1767 |
LIB_SONAME=-Wl,-soname, |
... | ... |
@@ -1770,16 +1770,16 @@ endif |
1770 | 1770 |
endif |
1771 | 1771 |
ifeq ($(CC_NAME), icc) |
1772 | 1772 |
C_DEFS+=-DCC_GCC_LIKE_ASM |
1773 |
- CFLAGS=-g $(PROFILE) |
|
1774 |
- LDFLAGS+=-g -Wl,-E $(PROFILE) |
|
1773 |
+ CFLAGS+=$(PROFILE) |
|
1774 |
+ LDFLAGS+=-Wl,-E $(PROFILE) |
|
1775 | 1775 |
MOD_LDFLAGS:=-shared $(LDFLAGS) |
1776 | 1776 |
LIB_LDFLAGS:=-shared $(LDFLAGS) |
1777 | 1777 |
LIB_SONAME=-Wl,-soname, |
1778 | 1778 |
LD_RPATH=-Wl,-rpath, |
1779 | 1779 |
endif |
1780 | 1780 |
ifeq ($(CC_NAME), suncc) |
1781 |
- CFLAGS= -g $(PROFILE) |
|
1782 |
- LDFLAGS+=-g $(PROFILE) |
|
1781 |
+ CFLAGS+=$(PROFILE) |
|
1782 |
+ LDFLAGS+=$(PROFILE) |
|
1783 | 1783 |
MOD_LDFLAGS:=-G $(LDFLAGS) |
1784 | 1784 |
LIB_LDFLAGS:=-G $(LDFLAGS) |
1785 | 1785 |
LIB_SONAME=-Wl,-h, |
- master branch is open for new features to be part of future release
series 5.6.x
- starting of testing phase for 5.5 series
- development for 5.5 series is closed
... | ... |
@@ -673,11 +673,11 @@ data_target = $(prefix)/$(data_dir) |
673 | 673 |
# -DUSE_DNS_FAILOVER |
674 | 674 |
# if the destination resolves to multiple ips, on send error fall back |
675 | 675 |
# to the others |
676 |
-# -DUSE_DST_BLACKLIST |
|
677 |
-# blacklist bad destination (timeout, failed to connect, error sending |
|
676 |
+# -DUSE_DST_BLOCKLIST |
|
677 |
+# blocklist bad destination (timeout, failed to connect, error sending |
|
678 | 678 |
# a.s.o) |
679 |
-# -DUSE_DST_BLACKLIST_STATS |
|
680 |
-# turns on blacklist bad destination measurements |
|
679 |
+# -DUSE_DST_BLOCKLIST_STATS |
|
680 |
+# turns on blocklist bad destination measurements |
|
681 | 681 |
# -DPROFILING |
682 | 682 |
# if enabled profiling will be enabled for child processes |
683 | 683 |
# Don't forget to set PROFILE (see below) |
... | ... |
@@ -724,11 +724,11 @@ C_DEFS+= -DSHM_MMAP \ |
724 | 724 |
-DHAVE_RESOLV_RES \ |
725 | 725 |
-DUSE_DNS_CACHE \ |
726 | 726 |
-DUSE_DNS_FAILOVER \ |
727 |
- -DUSE_DST_BLACKLIST \ |
|
727 |
+ -DUSE_DST_BLOCKLIST \ |
|
728 | 728 |
-DUSE_NAPTR \ |
729 | 729 |
-DWITH_XAVP \ |
730 | 730 |
#-DUSE_DNS_CACHE_STATS \ |
731 |
- #-DUSE_DST_BLACKLIST_STATS \ |
|
731 |
+ #-DUSE_DST_BLOCKLIST_STATS \ |
|
732 | 732 |
#-DDNS_WATCHDOG_SUPPORT \ |
733 | 733 |
#-DLL_MALLOC \ |
734 | 734 |
#-DSF_MALLOC \ |
... | ... |
@@ -1981,12 +1981,11 @@ ifeq ($(OS), freebsd) |
1981 | 1981 |
ifeq ($(RAW_SOCKS), yes) |
1982 | 1982 |
C_DEFS+= -DUSE_RAW_SOCKS |
1983 | 1983 |
endif |
1984 |
+ LIBS= -lm # resolv and dlopen is in libc |
|
1984 | 1985 |
ifneq ($(found_lock_method), yes) |
1985 | 1986 |
C_DEFS+= -DUSE_PTHREAD_MUTEX # try pthread sems |
1986 | 1987 |
found_lock_method=yes |
1987 |
- LIBS+= -pthread #dlopen is in libc |
|
1988 |
- else |
|
1989 |
- LIBS= #dlopen is in libc |
|
1988 |
+ LIBS+= -pthread |
|
1990 | 1989 |
endif |
1991 | 1990 |
# check for ver >= 4.1 |
1992 | 1991 |
ifeq ($(shell [ $(OSREL_N) -gt 4001 ] && echo has_kqueue), has_kqueue) |
- detect properly the 10.x gcc version number, GH #2425
... | ... |
@@ -275,7 +275,7 @@ ifneq (,$(findstring gcc, $(CC_LONGVER))) |
275 | 275 |
RPAREN=) |
276 | 276 |
CC_VER:=$(word 1,$(CC)) $(shell $(CC) - --version 2>/dev/null|head -n 1|\ |
277 | 277 |
sed -e 's/([^$(RPAREN)]*)//g' \ |
278 |
- -e 's/^.*\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\).*/\1/'\ |
|
278 |
+ -e 's/^.*[^0-9]\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\).*/\1/'\ |
|
279 | 279 |
-e 's/^[^0-9].*\([0-9][0-9]*\.[0-9][0-9]*\).*/\1/') |
280 | 280 |
# CC_VER:=$(word 1,$(CC)) $(shell $(CC) - --version|head -n 1|cut -d" " -f 3\ |
281 | 281 |
# |sed -e 's/^.*\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\).*/\1/'\ |
... | ... |
@@ -306,7 +306,9 @@ ifneq (,$(findstring gcc, $(CC_LONGVER))) |
306 | 306 |
-e 's/8\.[0-9]\..*/8.0+/' \ |
307 | 307 |
-e 's/8\.[0-9]$$/8.0+/' \ |
308 | 308 |
-e 's/9\.[0-9]\..*/9.0+/' \ |
309 |
- -e 's/9\.[0-9]$$/9.0+/') |
|
309 |
+ -e 's/9\.[0-9]$$/9.0+/' \ |
|
310 |
+ -e 's/10\.[0-9]\..*/9.0+/' \ |
|
311 |
+ -e 's/10\.[0-9]$$/9.0+/') |
|
310 | 312 |
ifeq (,$(strip $(filter-out 3.0 3.4 4.x 4.2+ 4.5+ 5.0+ 6.0+ 7.0+ 8.0+ 9.0+,$(CC_SHORTVER)))) |
311 | 313 |
# dependencies can be generated on-the-fly while compiling *.c |
312 | 314 |
CC_MKDEP_OPTS=-MMD -MP |
- the full version with stderr output included has a different first
line on MacOS, making head -n 1 not extract the version number line
... | ... |
@@ -273,7 +273,7 @@ MKTAGS=ctags |
273 | 273 |
ifneq (,$(findstring gcc, $(CC_LONGVER))) |
274 | 274 |
CC_NAME=gcc |
275 | 275 |
RPAREN=) |
276 |
- CC_VER:=$(word 1,$(CC)) $(shell $(CC) - --version|head -n 1|\ |
|
276 |
+ CC_VER:=$(word 1,$(CC)) $(shell $(CC) - --version 2>/dev/null|head -n 1|\ |
|
277 | 277 |
sed -e 's/([^$(RPAREN)]*)//g' \ |
278 | 278 |
-e 's/^.*\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\).*/\1/'\ |
279 | 279 |
-e 's/^[^0-9].*\([0-9][0-9]*\.[0-9][0-9]*\).*/\1/') |
... | ... |
@@ -335,7 +335,7 @@ endif |
335 | 335 |
ifneq (, $(findstring clang, $(CC_LONGVER))) |
336 | 336 |
#clang should be gcc compatible |
337 | 337 |
CC_NAME=clang |
338 |
- CC_FULLVER:=$(shell echo "$(CC_LONGVER)" | head -n 1 | sed -e 's/.*version \([0-9]\.[0-9]\).*/\1/g' ) |
|
338 |
+ CC_FULLVER:=$(shell $(CC) --version 2>/dev/null | head -n 1 | sed -e 's/.*version \([0-9]\.[0-9]\).*/\1/g' ) |
|
339 | 339 |
CC_SHORTVER:=$(shell echo "$(CC_FULLVER)" | cut -d. -f1,2 ) |
340 | 340 |
CC_VER=$(CC) $(CC_FULLVER) |
341 | 341 |
CC_OPT=-O3 |
- master branch is open for new features to be part of future release
series 5.5.x
- start of pre-release phase for 5.4.x series
- marking end of development for 5.4.x series
... | ... |
@@ -2166,10 +2166,10 @@ export exported_vars |
2166 | 2166 |
# variable changeable only at configure time (once saved in config.mak they |
2167 | 2167 |
# cannot be overwritten from environment or command line, unless make cfg |
2168 | 2168 |
# is run) |
2169 |
-saved_fixed_vars:= MAIN_NAME CFG_NAME SCR_NAME FLAVOUR INSTALL_FLAVOUR \ |
|
2169 |
+saved_fixed_vars:= MAIN_NAME CFG_NAME SCR_NAME FLAVOUR INSTALL_FLAVOUR \ |
|
2170 | 2170 |
SRC_NAME RELEASE OS ARCH \ |
2171 | 2171 |
C_DEFS DEFS_RM PROFILE CC LD MKDEP MKTAGS LDFLAGS C_INCLUDES \ |
2172 |
- CC_MKDEP_OPTS \ |
|
2172 |
+ CC_NAME CC_MKDEP_OPTS \ |
|
2173 | 2173 |
MOD_LDFLAGS LIB_LDFLAGS UTILS_LDFLAGS LIB_SONAME LD_RPATH \ |
2174 | 2174 |
LIB_SUFFIX LIB_PREFIX \ |
2175 | 2175 |
LIBS \ |
kamailio uses dlopen, and on some systems, one must link with -ldl.
On others, this is not needed and there is no libdl. For now, simply
omit -ldl on NetBSD (which doesn't have or require it), and don't try
to change behavior on other systems.
... | ... |
@@ -210,9 +210,18 @@ endif |
210 | 210 |
|
211 | 211 |
endif |
212 | 212 |
|
213 |
+# dlopen requires -ldl on some systems, but not others. Until there |
|
214 |
+# is clarity on which require -ldl, add just enough ifeq to fix |
|
215 |
+# systems known not to use it. |
|
216 |
+ifeq ($(OS), netbsd) |
|
217 |
+LIBDL="" |
|
218 |
+else |
|
219 |
+LIBDL="-ldl" |
|
220 |
+endif |
|
221 |
+ |
|
213 | 222 |
ifeq ($(LIBSSL_SET_MUTEX_SHARED), 1) |
214 | 223 |
CC_PMUTEX_OPTS = -pthread -DKSR_PTHREAD_MUTEX_SHARED |
215 |
-LD_PMUTEX_OPTS = -pthread -rdynamic -ldl -Wl,-Bsymbolic-functions |
|
224 |
+LD_PMUTEX_OPTS = -pthread -rdynamic $(LIBDL) -Wl,-Bsymbolic-functions |
|
216 | 225 |
else |
217 | 226 |
CC_PMUTEX_OPTS = |
218 | 227 |
LD_PMUTEX_OPTS = |
- on some linux distros is not linked by default
- CC_EXTRA_OPTS and LD_EXTRA_OPTS may be set from environment
... | ... |
@@ -211,8 +211,11 @@ endif |
211 | 211 |
endif |
212 | 212 |
|
213 | 213 |
ifeq ($(LIBSSL_SET_MUTEX_SHARED), 1) |
214 |
-CC_EXTRA_OPTS+= -pthread -DKSR_PTHREAD_MUTEX_SHARED |
|
215 |
-LD_EXTRA_OPTS+= -pthread -rdynamic -ldl -Wl,-Bsymbolic-functions |
|
214 |
+CC_PMUTEX_OPTS = -pthread -DKSR_PTHREAD_MUTEX_SHARED |
|
215 |
+LD_PMUTEX_OPTS = -pthread -rdynamic -ldl -Wl,-Bsymbolic-functions |
|
216 |
+else |
|
217 |
+CC_PMUTEX_OPTS = |
|
218 |
+LD_PMUTEX_OPTS = |
|
216 | 219 |
endif |
217 | 220 |
|
218 | 221 |
ifeq ($(OS), solaris) |
... | ... |
@@ -1676,7 +1679,7 @@ $(error Unsupported compiler ($(CC):$(CC_NAME)), try gcc) |
1676 | 1679 |
endif #CC_NAME, gcc |
1677 | 1680 |
endif #ARCH, ppc |
1678 | 1681 |
|
1679 |
-CFLAGS+= $(CC_EXTRA_OPTS) |
|
1682 |
+CFLAGS+= $(CC_EXTRA_OPTS) $(CC_PMUTEX_OPTS) |
|
1680 | 1683 |
|
1681 | 1684 |
|
1682 | 1685 |
# setting LDFLAGS |
... | ... |
@@ -1725,9 +1728,9 @@ ifeq ($(CC_NAME), clang) |
1725 | 1728 |
LD_RPATH=-Wl,-rpath, |
1726 | 1729 |
endif |
1727 | 1730 |
|
1728 |
-LDFLAGS+= $(LD_EXTRA_OPTS) |
|
1729 |
-MOD_LDFLAGS+= $(LD_EXTRA_OPTS) |
|
1730 |
-LIB_LDFLAGS+= $(LD_EXTRA_OPTS) |
|
1731 |
+LDFLAGS+= $(LD_EXTRA_OPTS) $(LD_PMUTEX_OPTS) |
|
1732 |
+MOD_LDFLAGS+= $(LD_EXTRA_OPTS) $(LD_PMUTEX_OPTS) |
|
1733 |
+LIB_LDFLAGS+= $(LD_EXTRA_OPTS) $(LD_PMUTEX_OPTS) |
|
1731 | 1734 |
|
1732 | 1735 |
else #mode,release |
1733 | 1736 |
ifeq ($(CC_NAME), gcc) |
... | ... |
@@ -2171,7 +2174,8 @@ saved_fixed_vars:= MAIN_NAME CFG_NAME SCR_NAME FLAVOUR INSTALL_FLAVOUR \ |
2171 | 2174 |
# variable changeable at compile time |
2172 | 2175 |
# extra: prefix DESTDIR BASEDIR basedirt |
2173 | 2176 |
saved_chg_vars:=\ |
2174 |
- CC_EXTRA_OPTS CPUTYPE CFLAGS_RM CFLAGS MOD_CFLAGS LIB_CFLAGS UTILS_CFLAGS \ |
|
2177 |
+ CC_EXTRA_OPTS CC_PMUTEX_OPTS CPUTYPE CFLAGS_RM CFLAGS MOD_CFLAGS \ |
|
2178 |
+ LIB_CFLAGS UTILS_CFLAGS \ |
|
2175 | 2179 |
BASEDIR basedir DESTDIR LIBDIR RUNBASEDIR runbasedir \ |
2176 | 2180 |
PREFIX prefix \ |
2177 | 2181 |
cfg_prefix cfg_dir bin_prefix bin_dir modules_prefix modules_dir \ |
- master branch is open for new features to be part of v5.4.x series
... | ... |
@@ -1340,9 +1340,8 @@ ifeq ($(ARCH), arm7) |
1340 | 1340 |
# if gcc |
1341 | 1341 |
ifeq ($(CC_NAME), gcc) |
1342 | 1342 |
C_DEFS+=-DCC_GCC_LIKE_ASM |
1343 |
- #common stuff, use armv7-a similar to debian |
|
1344 |
- #build flags from https://wiki.debian.org/ArmHardFloatPort |
|
1345 |
- CFLAGS=-march=armv7-a -mfpu=vfpv3-d16 $(CC_OPT) -funroll-loops -fsigned-char \ |
|
1343 |
+ #common stuff, use armv7-a as lowest common architecture |
|
1344 |
+ CFLAGS=-march=armv7-a $(CC_OPT) -funroll-loops -fsigned-char \ |
|
1346 | 1345 |
$(PROFILE) |
1347 | 1346 |
#if gcc 7.0+, 6.0+, 5.0+, 4.5+ or 4.2+ |
1348 | 1347 |
ifeq (,$(strip $(filter-out 4.2+ 4.5+ 5.0+ 6.0+ 7.0+ 8.0+ 9.0+,$(CC_SHORTVER)))) |
... | ... |
@@ -863,12 +863,10 @@ endif |
863 | 863 |
|
864 | 864 |
ifeq ($(ARCH), arm6) |
865 | 865 |
use_fast_lock=yes |
866 |
- C_DEFS+=-DNOSMP # memory barriers not implemented for arm |
|
867 | 866 |
endif |
868 | 867 |
|
869 | 868 |
ifeq ($(ARCH), arm7) |
870 | 869 |
use_fast_lock=yes |
871 |
- C_DEFS+=-DNOSMP # memory barriers not implemented for arm |
|
872 | 870 |
endif |
873 | 871 |
|
874 | 872 |
ifeq ($(ARCH), aarch64) |
- add the possibility to optimize for ARMv7 architecture (e.g. newer Rasberry Pi 3)
- can currently be enabled by editing the Makefile.defs and adding '-march=native'
at the documented line
- warning about swp{b} instructions needed to be fixed in atomic operations
- fallback for ARMv8 to ARMv7, as core atomic operations does not support it yet
... | ... |
@@ -136,6 +136,7 @@ endif |
136 | 136 |
|
137 | 137 |
HOST_ARCH := $(shell $(GETARCH) |sed -e s/i.86/i386/ -e s/sun4[uv]/sparc64/ \ |
138 | 138 |
-e s/armv[3-5].*/arm/ -e s/armv6.*/arm6/ \ |
139 |
+ -e s/armv7.*/arm7/ -e s/armv8.*/arm8/ \ |
|
139 | 140 |
-e "s/Power Macintosh/ppc/" \ |
140 | 141 |
-e "s/cobalt/mips2/" \ |
141 | 142 |
-e s/amd64/x86_64/ -e s/sparcv9/sparc64/ ) |
... | ... |
@@ -350,6 +351,9 @@ sparc_macros= __sparc__ __sparc __sparcv8 |
350 | 351 |
sparc64_macros= __sparcv9 __sparc_v9__ |
351 | 352 |
|
352 | 353 |
arm_macros= __arm__ __thumb__ |
354 |
+arm8_macros= __ARM_ARCH_8__ |
|
355 |
+arm8a_macros= __ARM_ARCH_8A__ |
|
356 |
+arm7_macros= __ARM_ARCH_7__ |
|
353 | 357 |
arm6_macros= __ARM_ARCH_6__ |
354 | 358 |
|
355 | 359 |
aarch64_macros= __aarch64__ |
... | ... |
@@ -367,6 +371,8 @@ alpha_macros= __alpha__ __alpha _M_ALPHA_ |
367 | 371 |
|
368 | 372 |
ifeq ($(CC_NAME),gcc) |
369 | 373 |
#if gcc use gcc arch |
374 |
+# to build with native architecture, e.g. for rasberry pi: add -march=native |
|
375 |
+# armv8 not supported yet, fallback to armv7 |
|
370 | 376 |
predef_macros:=$(shell $(CC) -dM -E -x c $(CC_EXTRA_OPTS) $(extra_defs) \ |
371 | 377 |
$(CFLAGS) /dev/null) |
372 | 378 |
|
... | ... |
@@ -384,7 +390,14 @@ endif # sparc64_macros |
384 | 390 |
|
385 | 391 |
else ifneq ($(strip $(filter $(arm_macros), $(predef_macros))),) |
386 | 392 |
|
387 |
-ifneq ($(strip $(filter $(arm6_macros), $(predef_macros))),) |
|
393 |
+# arm8 not supported yet from core atomic operations, fallback to arm7 |
|
394 |
+ifneq ($(strip $(filter $(arm8a_macros), $(predef_macros))),) |
|
395 |
+CC_ARCH=arm7 |
|
396 |
+else ifneq ($(strip $(filter $(arm8_macros), $(predef_macros))),) |
|
397 |
+CC_ARCH=arm7 |
|
398 |
+else ifneq ($(strip $(filter $(arm7_macros), $(predef_macros))),) |
|
399 |
+CC_ARCH=arm7 |
|
400 |
+else ifneq ($(strip $(filter $(arm6_macros), $(predef_macros))),) |
|
388 | 401 |
CC_ARCH=arm6 |
389 | 402 |
else # arm6_macros |
390 | 403 |
CC_ARCH=arm |
... | ... |
@@ -845,17 +858,22 @@ endif |
845 | 858 |
|
846 | 859 |
ifeq ($(ARCH), arm) |
847 | 860 |
use_fast_lock=yes |
848 |
- C_DEFS+=-DNOSMP # very unlikely to have an smp arm |
|
861 |
+ C_DEFS+=-DNOSMP # memory barriers not implemented for arm |
|
849 | 862 |
endif |
850 | 863 |
|
851 | 864 |
ifeq ($(ARCH), arm6) |
852 | 865 |
use_fast_lock=yes |
853 |
- C_DEFS+=-DNOSMP # very unlikely to have an smp arm |
|
866 |
+ C_DEFS+=-DNOSMP # memory barriers not implemented for arm |
|
867 |
+endif |
|
868 |
+ |
|
869 |
+ifeq ($(ARCH), arm7) |
|
870 |
+ use_fast_lock=yes |
|
871 |
+ C_DEFS+=-DNOSMP # memory barriers not implemented for arm |
|
854 | 872 |
endif |
855 | 873 |
|
856 | 874 |
ifeq ($(ARCH), aarch64) |
857 | 875 |
use_fast_lock=yes |
858 |
- C_DEFS+=-DNOSMP |
|
876 |
+ C_DEFS+=-DNOSMP # memory barriers not implemented for arm |
|
859 | 877 |
endif |
860 | 878 |
|
861 | 879 |
ifeq ($(ARCH), ppc) |
... | ... |
@@ -1319,6 +1337,54 @@ $(error Unsupported compiler ($(CC):$(CC_NAME)), try gcc) |
1319 | 1337 |
endif #CC_NAME, gcc |
1320 | 1338 |
endif #ARCH, arm6 |
1321 | 1339 |
|
1340 |
+ #if armv7 cpu |
|
1341 |
+ifeq ($(ARCH), arm7) |
|
1342 |
+ # if gcc |
|
1343 |
+ifeq ($(CC_NAME), gcc) |
|
1344 |
+ C_DEFS+=-DCC_GCC_LIKE_ASM |
|
1345 |
+ #common stuff, use armv7-a similar to debian |
|
1346 |
+ #build flags from https://wiki.debian.org/ArmHardFloatPort |
|
1347 |
+ CFLAGS=-march=armv7-a -mfpu=vfpv3-d16 $(CC_OPT) -funroll-loops -fsigned-char \ |
|
1348 |
+ $(PROFILE) |
|
1349 |
+ #if gcc 7.0+, 6.0+, 5.0+, 4.5+ or 4.2+ |
|
1350 |
+ifeq (,$(strip $(filter-out 4.2+ 4.5+ 5.0+ 6.0+ 7.0+ 8.0+ 9.0+,$(CC_SHORTVER)))) |
|
1351 |
+ CFLAGS+= -ftree-vectorize -fno-strict-overflow |
|
1352 |
+else |
|
1353 |
+ #if gcc 4.x+ |
|
1354 |
+ifeq ($(CC_SHORTVER), 4.x) |
|
1355 |
+ CFLAGS+= -ftree-vectorize |
|
1356 |
+else |
|
1357 |
+ #if gcc 3.4+ |
|
1358 |
+ifeq ($(CC_SHORTVER), 3.4) |
|
1359 |
+ CFLAGS+= |
|
1360 |
+else |
|
1361 |
+ #if gcc 3.0 |
|
1362 |
+ifeq ($(CC_SHORTVER), 3.0) |
|
1363 |
+ CFLAGS+= |
|
1364 |
+ #-mcpu=athlon |
|
1365 |
+else |
|