### Description I want to debug `Kamailio` using `GDB` and compiled sources on `aarch64` architecture (`t4g` AWS instance). But produces object files do not contain debug info.
Then executed ``` make -n ``` And found that no `-g` options used during compilation. I have specified `CFLAGS` and `CPPFLAGS` but with wont help.
### Expected behavior On all dist used `-g` compilation flag by default. If I have specified `CFLAGS` and `CPPFLAGS` as environment variables, then these flags used by GCC during compilation.
#### Actual observed behavior `-g` flag do not used by default on `aarch64` architecture. `CFLAGS` and `CPPFLAGS` as environment variables do not used during compilation time.
### Additional info as hotfix I have used this patch ```diff diff --git a/src/Makefile.defs b/src/Makefile.defs index 027c985798..c91c34a7bb 100644 --- a/src/Makefile.defs +++ b/src/Makefile.defs @@ -885,7 +885,7 @@ endif
ifeq ($(ARCH), aarch64) use_fast_lock=yes - C_DEFS+=-DNOSMP # memory barriers not implemented for arm + C_DEFS+= -g -DNOSMP # memory barriers not implemented for arm endif
ifeq ($(ARCH), ppc) ```
You can push this change to Makefile.defs, fine for me.
@sergey-safarov the logic for the "-g" flag for other architectures is a bit different in the Makefile.def, and i am not sure if its maybe also need another extension for this architecture. Can you please quote the output of "kamailio -I" to this ticket?
@henningw here is requested info ``` [root@sbc-b2 ~]# kamailio -I Print out of kamailio internals Version: kamailio 5.6.0-dev0 (aarch64/linux) 936350-dirty Default config: /etc/kamailio/kamailio.cfg Default paths to modules: /usr/lib64/kamailio/modules Compile flags: USE_TCP, USE_TLS, USE_SCTP, TLS_HOOKS, USE_RAW_SOCKS, DISABLE_NAGLE, USE_MCAST, DNS_IP_HACK, SHM_MMAP, PKG_MALLOC, Q_MALLOC, F_MALLOC, TLSF_MALLOC, DBG_SR_MEMORY, USE_FUTEX, FAST_LOCK-ADAPTIVE_WAIT-NOSMP, USE_DNS_CACHE, USE_DNS_FAILOVER, USE_NAPTR, USE_DST_BLOCKLIST, HAVE_RESOLV_RES, TLS_PTHREAD_MUTEX_SHARED MAX_RECV_BUFFER_SIZE=262144 MAX_URI_SIZE=1024 BUF_SIZE=65535 DEFAULT PKG_SIZE=8MB DEFAULT SHM_SIZE=64MB ADAPTIVE_WAIT_LOOPS=1024 TCP poll methods: poll, epoll_lt, epoll_et, sigio_rt, select Source code revision ID: 936350 -dirty Compiled with: gcc 8.4.1 Compiled architecture: aarch64 Compiled on: 13:51:40 Jun 23 2021 Thank you for flying kamailio! ```
Thanks, can you also quickly quote "make cfg" output?
``` [root@logger-west kamailio]# make cfg make -C src/ cfg make[1]: Entering directory '/root/kamailio/src' target architecture <aarch64>, host architecture <aarch64> making config... rm -f modules.lst make --no-print-directory modules.lst saving modules list... make[1]: Leaving directory '/root/kamailio/src' ``` **config.mak** ``` [root@logger-west kamailio]# cat src/config.mak # this file is autogenerated by make cfg MAIN_NAME= kamailio CFG_NAME= kamailio SCR_NAME= sip-router FLAVOUR= kamailio INSTALL_FLAVOUR= kamailio SRC_NAME= sip-router RELEASE= 5.6.0-dev0 OS= linux ARCH= aarch64 C_DEFS= -DNAME='"kamailio"' -DVERSION='"5.6.0-dev0"' -DARCH='"aarch64"' -DOS='linux_' -DOS_QUOTED='"linux"' -DCOMPILER='"gcc 8.4.1"' -D__CPU_aarch64 -D__OS_linux -DVERSIONVAL=5006000 -DCFG_DIR='"/usr/local/etc/kamailio/"' -DSHARE_DIR='"/usr/local/share/kamailio/"' -DRUN_DIR='"/var/run/kamailio/"' -DPKG_MALLOC -DSHM_MMAP -DDNS_IP_HACK -DUSE_MCAST -DUSE_TCP -DDISABLE_NAGLE -DHAVE_RESOLV_RES -DUSE_DNS_CACHE -DUSE_DNS_FAILOVER -DUSE_DST_BLOCKLIST -DUSE_NAPTR -DWITH_XAVP -DMEM_JOIN_FREE -DF_MALLOC -DQ_MALLOC -DTLSF_MALLOC -DDBG_SR_MEMORY -DUSE_TLS -DTLS_HOOKS -DUSE_CORE_STATS -DSTATISTICS -DMALLOC_STATS -DUSE_SCTP -g -DNOSMP -DFAST_LOCK -DADAPTIVE_WAIT -DADAPTIVE_WAIT_LOOPS=1024 -DHAVE_GETHOSTBYNAME2 -DHAVE_UNION_SEMUN -DHAVE_SCHED_YIELD -DHAVE_MSG_NOSIGNAL -DHAVE_MSGHDR_MSG_CONTROL -DHAVE_ALLOCA_H -DHAVE_TIMEGM -DHAVE_SCHED_SETSCHEDULER -DHAVE_IP_MREQN -DUSE_RAW_SOCKS -DHAVE_EPOLL -DHAVE_SIGIO_RT -DSIGINFO64_WORKARROUND -DUSE_FUTEX -DHAVE_SELECT DEFS_RM= PROFILE= CC= gcc LD= gcc MKDEP= gcc -MM -MG MKTAGS= ctags LDFLAGS= -Wl,-O2 -Wl,-E -pthread -rdynamic "-ldl" -Wl,-Bsymbolic-functions C_INCLUDES= CC_NAME= gcc CC_MKDEP_OPTS= -MMD -MP MOD_LDFLAGS= -shared -Wl,-O2 -Wl,-E -pthread -rdynamic "-ldl" -Wl,-Bsymbolic-functions LIB_LDFLAGS= -shared -Wl,-O2 -Wl,-E -pthread -rdynamic "-ldl" -Wl,-Bsymbolic-functions UTILS_LDFLAGS= -Wl,-O2 -Wl,-E -pthread -rdynamic "-ldl" -Wl,-Bsymbolic-functions LIB_SONAME= -Wl,-soname, LD_RPATH= -Wl,-rpath, LIB_SUFFIX= .so LIB_PREFIX= lib LIBS= -ldl -lresolv -lm LEX= flex YACC= bison YACC_FLAGS= -d -b core/cfg PREFIX= /usr/local LOCALBASE= /usr/local TAR= tar INSTALL= install INSTALL_CFG= install -m 644 INSTALL_BIN= install -m 755 INSTALL_MODULES= install -m 755 INSTALL_DOC= install -m 644 INSTALL_MAN= install -m 644 INSTALL_LIB= install -m 755 INSTALL_TOUCH= touch INSTALL_SHARE= install -m 644 Q= 1 CC_EXTRA_OPTS= CC_PMUTEX_OPTS= -pthread -DKSR_PTHREAD_MUTEX_SHARED CPUTYPE= CFLAGS_RM= -malign-double CFLAGS= $(CC_EXTRA_OPTS) $(CC_PMUTEX_OPTS) -Wall MOD_CFLAGS= -fPIC -DPIC $(CFLAGS) LIB_CFLAGS= -fPIC -DPIC $(CFLAGS) UTILS_CFLAGS= $(CFLAGS) BASEDIR= $(DESTDIR) basedir= $(BASEDIR) DESTDIR= LIBDIR= lib64 RUNBASEDIR= $(DESTDIR) runbasedir= $(RUNBASEDIR) PREFIX= $(LOCALBASE) prefix= $(PREFIX) cfg_prefix= $(basedir)$(prefix) cfg_dir= etc/$(MAIN_NAME)/ bin_prefix= $(basedir)$(prefix) bin_dir= sbin/ modules_prefix= $(basedir)$(prefix) modules_dir= $(LIBDIR)/$(MAIN_NAME)/ doc_prefix= $(basedir)$(prefix) doc_dir= share/doc/$(MAIN_NAME)/ man_prefix= $(basedir)$(prefix) man_dir= share/man/ ut_prefix= $(basedir)$(prefix) ut_dir= share_prefix= $(basedir)$(prefix) share_dir= share/$(MAIN_NAME)/ lib_prefix= $(basedir)$(prefix) lib_dir= $(LIBDIR)/$(MAIN_NAME)/ data_prefix= $(basedir)$(prefix) data_dir= share/$(MAIN_NAME)/ cfg_target= $(prefix)/$(cfg_dir) lib_target= $(prefix)/$(lib_dir) data_target= $(prefix)/$(data_dir) run_prefix= $(runbasedir) run_dir= var/run/$(MAIN_NAME)/ run_target= $(run_prefix)/$(run_dir) share_target= $(prefix)/$(share_dir) override makefile_defs:=1 C_DEFS:=$(filter-out $(DEFS_RM) $(extra_defs),$(C_DEFS)) $(extra_defs) CFLAGS:=$(filter-out $(CFLAGS_RM) $(CC_EXTRA_OPTS), $(CFLAGS)) $(CC_EXTRA_OPTS) ```
Closed with #2811
Closed #2789.