Oh, incomplete typing: it was supposed to be: (to add your module) Can you paste here the content of the Makefile in your internal library?
Cheers, Daniel On 12/01/2017 11:52, Patrick wrote: > I use a slightly modified version of ....pkg/kamailio/rpm/kamailio.spec > > By "mode" if you mean in the compile flag -DRTC_COMMON_TRACE, I update > DEFS in each module that uses it the internal library > DEFS+=-DKAMAILIO_MOD_INTERFACE *-DRTC_COMMON_TRACE* > > If you were instead asking about including the module,m then yes - I > added that to the rpm spec: > %{_libdir}/kamailio/modules/db_arl.so > > > On Thu, Jan 12, 2017 at 5:32 AM, Daniel-Constantin Mierla > <mico...@gmail.com <mailto:mico...@gmail.com>> wrote: > > Hello, > > do you have your own rpm specs, or do you use an updated version > (to add your mode) of some spec in kamailio repository? > > Cheers, > Daniel > > > On 11/01/2017 16:24, Patrick wrote: >> Hi Daniel, Thanks for the help >> >> Sort of. >> The internal library seems to be compiled and linked each my >> module is compiled - this happens 2x, for %build and for %install >> of the RPM >> This doesn't seem to be a problem when the %build stage is executed: >> >> >> Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.EOkbPI >> ... >> + make all quiet=verbose 'skip_modules=mysql jabber cpl-c >> avp_radius auth_radius group_radius uri_radius pa postgres osp >> tlsops unixodbc dbtext' cfg-target=//etc/kamailio/ >> ... >> gcc -fPIC -DPIC -g -funroll-loops -Wcast-align -m64 >> -minline-all-stringops -falign-loops -ftree-vectorize >> -fno-strict-overflow -mtune=opteron -Wall -DNAME='"kamailio"' >> -DVERSION='"4.2.4"' -DARCH='"x86_64"' -DOS='linux_' >> -DOS_QUOTED='"linux"' -DCOMPILER='"gcc 4.4.7"' -D__CPU_x86_64 >> -D__OS_linux -DSER_VER=4002004 >> -DCFG_DIR='"/usr/local/etc/kamailio/"' -DPKG_MALLOC -DSHM_MEM >> -DSHM_MMAP -DDNS_IP_HACK -DUSE_MCAST -DUSE_TCP -DDISABLE_NAGLE >> -DHAVE_RESOLV_RES -DUSE_DNS_CACHE -DUSE_DNS_FAILOVER >> -DUSE_DST_BLACKLIST -DUSE_NAPTR -DWITH_XAVP -DF_MALLOC >> -DDBG_F_MALLOC -DMEM_JOIN_FREE -DUSE_TLS -DTLS_HOOKS >> -DUSE_CORE_STATS -DSTATISTICS -DMALLOC_STATS -DWITH_AS_SUPPORT >> -DFAST_LOCK -DADAPTIVE_WAIT -DADAPTIVE_WAIT_LOOPS=1024 >> -DCC_GCC_LIKE_ASM -DHAVE_GETHOSTBYNAME2 -DHAVE_UNION_SEMUN >> -DHAVE_SCHED_YIELD -DHAVE_MSG_NOSIGNAL -DHAVE_MSGHDR_MSG_CONTROL >> -DHAVE_ALLOCA_H -DHAVE_TIMEGM -DHAVE_SCHED_SETSCHEDULER >> -DUSE_RAW_SOCKS -DHAVE_EPOLL -DHAVE_SIGIO_RT >> -DSIGINFO64_WORKARROUND -DUSE_FUTEX -DHAVE_SELECT >> -DKAMAILIO_MOD_INTERFACE -DRTC_COMMON_TRACE >> -DMOD_NAME='"db_arl"' -c db_arl_mod.c -o db_arl_mod.o -MMD -MP >> Makefile.defs defs skipped >> make[2]: `libsrdb2.so.1.0' is up to date. >> Makefile.defs defs skipped >> make[2]: `libsrdb1.so.1.0' is up to date. >> Makefile.defs defs skipped >> make[2]: `librtctrace.so.1.0' is up to date. >> COL_LOCAL_BUILDS_ROOT=/home/pshea/_localbuilds/ >> Compiling db_arl_base.cpp >> g++ -fPIC -DPIC -g -funroll-loops -Wcast-align -m64 >> -minline-all-stringops -falign-loops -ftree-vectorize >> -fno-strict-overflow -mtune=opteron -Wall -Wno-write-strings >> -Wno-deprecated -Wno-unused-function -Wno-sign-compare >> -Wno-strict-aliasing -I >> /home/pshea/_localbuilds//ExternalLibs/boost/V1.60.0_27/ -I >> ./jsoncpp-dist/ -fPIC -DPIC -g -funroll-loops -Wcast-align -m64 >> -minline-all-stringops -falign-loops -ftree-vectorize >> -fno-strict-overflow -mtune=opteron -Wall -DNAME='"kamailio"' >> -DVERSION='"4.2.4"' -DARCH='"x86_64"' -DOS='linux_' >> -DOS_QUOTED='"linux"' -DCOMPILER='"gcc 4.4.7"' -D__CPU_x86_64 >> -D__OS_linux -DSER_VER=4002004 >> -DCFG_DIR='"/usr/local/etc/kamailio/"' -DPKG_MALLOC -DSHM_MEM >> -DSHM_MMAP -DDNS_IP_HACK -DUSE_MCAST -DUSE_TCP -DDISABLE_NAGLE >> -DHAVE_RESOLV_RES -DUSE_DNS_CACHE -DUSE_DNS_FAILOVER >> -DUSE_DST_BLACKLIST -DUSE_NAPTR -DWITH_XAVP -DF_MALLOC >> -DDBG_F_MALLOC -DMEM_JOIN_FREE -DUSE_TLS -DTLS_HOOKS >> -DUSE_CORE_STATS -DSTATISTICS -DMALLOC_STATS -DWITH_AS_SUPPORT >> -DFAST_LOCK -DADAPTIVE_WAIT -DADAPTIVE_WAIT_LOOPS=1024 >> -DCC_GCC_LIKE_ASM -DHAVE_GETHOSTBYNAME2 -DHAVE_UNION_SEMUN >> -DHAVE_SCHED_YIELD -DHAVE_MSG_NOSIGNAL -DHAVE_MSGHDR_MSG_CONTROL >> -DHAVE_ALLOCA_H -DHAVE_TIMEGM -DHAVE_SCHED_SETSCHEDULER >> -DUSE_RAW_SOCKS -DHAVE_EPOLL -DHAVE_SIGIO_RT >> -DSIGINFO64_WORKARROUND -DUSE_FUTEX -DHAVE_SELECT >> -DKAMAILIO_MOD_INTERFACE -DRTC_COMMON_TRACE >> -DMOD_NAME='"db_arl"' -c db_arl_base.cpp -o db_arl_base.o >> db_arl_base.cpp: In function 'std::string convert_value(int, >> const db_val_t*)': >> db_arl_base.cpp:789: warning: enumeration value 'DB1_UNKNOWN' not >> handled in switch >> COL_LOCAL_BUILDS_ROOT=/home/pshea/_localbuilds/ >> Compiling jsoncpp-dist/jsoncpp.cpp >> g++ -fPIC -DPIC -g -funroll-loops -Wcast-align -m64 >> -minline-all-stringops -falign-loops -ftree-vectorize >> -fno-strict-overflow -mtune=opteron -Wall -Wno-write-strings >> -Wno-deprecated -Wno-unused-function -Wno-sign-compare >> -Wno-strict-aliasing -I >> /home/pshea/_localbuilds//ExternalLibs/boost/V1.60.0_27/ -I >> ./jsoncpp-dist/ -fPIC -DPIC -g -funroll-loops -Wcast-align -m64 >> -minline-all-stringops -falign-loops -ftree-vectorize >> -fno-strict-overflow -mtune=opteron -Wall -DNAME='"kamailio"' >> -DVERSION='"4.2.4"' -DARCH='"x86_64"' -DOS='linux_' >> -DOS_QUOTED='"linux"' -DCOMPILER='"gcc 4.4.7"' -D__CPU_x86_64 >> -D__OS_linux -DSER_VER=4002004 >> -DCFG_DIR='"/usr/local/etc/kamailio/"' -DPKG_MALLOC -DSHM_MEM >> -DSHM_MMAP -DDNS_IP_HACK -DUSE_MCAST -DUSE_TCP -DDISABLE_NAGLE >> -DHAVE_RESOLV_RES -DUSE_DNS_CACHE -DUSE_DNS_FAILOVER >> -DUSE_DST_BLACKLIST -DUSE_NAPTR -DWITH_XAVP -DF_MALLOC >> -DDBG_F_MALLOC -DMEM_JOIN_FREE -DUSE_TLS -DTLS_HOOKS >> -DUSE_CORE_STATS -DSTATISTICS -DMALLOC_STATS -DWITH_AS_SUPPORT >> -DFAST_LOCK -DADAPTIVE_WAIT -DADAPTIVE_WAIT_LOOPS=1024 >> -DCC_GCC_LIKE_ASM -DHAVE_GETHOSTBYNAME2 -DHAVE_UNION_SEMUN >> -DHAVE_SCHED_YIELD -DHAVE_MSG_NOSIGNAL -DHAVE_MSGHDR_MSG_CONTROL >> -DHAVE_ALLOCA_H -DHAVE_TIMEGM -DHAVE_SCHED_SETSCHEDULER >> -DUSE_RAW_SOCKS -DHAVE_EPOLL -DHAVE_SIGIO_RT >> -DSIGINFO64_WORKARROUND -DUSE_FUTEX -DHAVE_SELECT >> -DKAMAILIO_MOD_INTERFACE -DRTC_COMMON_TRACE >> -DMOD_NAME='"db_arl"' -c jsoncpp-dist/jsoncpp.cpp -o jsoncpp.o >> g++ -shared -m64 -Wl,-O2 -Wl,-E db_arl_mod.o db_arl_base.o >> jsoncpp.o -lcurl -pthread -L../../lib/srdb2/ -lsrdb2 >> -L../../lib/srdb1/ -lsrdb1 * -L../../lib/rtctrace/ -lrtctrace* >> -Wl,-rpath,/tmp/kamailio/BUILD/kamailio-4.2.4/lib/srdb2 >> -Wl,-rpath,/tmp/kamailio/BUILD/kamailio-4.2.4/lib/srdb1 >> -Wl,-rpath,/tmp/kamailio/BUILD/kamailio-4.2.4/lib/rtctrace -o >> db_arl.so >> >> >> >> >> However, during the %install stage - this does seem to cause a >> problem. >> There are different options passed to make, in this case, and I >> am trying to figure out how this causes a problem. >> In this case, you'll see that the internal library is NOT "up to >> date" so make attempts to *rebuild*it. In the link line, you'll >> see the objects from the LIBS in my custom module. >> >> >> Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.AkEuuP >> ... >> + make install quiet=verbose 'skip_modules=mysql jabber cpl-c >> avp_radius auth_radius group_radius uri_radius pa postgres osp >> tlsops unixodbc dbtext' >> *basedir=/tmp/kamailio/BUILDROOT/kamailio-4.2.4-0.x86_64 >> prefix=/usr >> >> cfg-prefix=/tmp/kamailio/BUILDROOT/kamailio-4.2.4-0.x86_64*cfg-target=//etc/kamailio/ >> ... >> Makefile.defs defs skipped >> make[2]: `libsrdb2.so.1.0' is up to date. >> Makefile.defs defs skipped >> make[2]: `libsrdb1.so.1.0' is up to date. >> Makefile.defs defs skipped >> Makefile.defs defs skipped >> */opt/rh/devtoolset-4/root/usr/bin/g++ -fPIC -DPIC -g >> -funroll-loops -Wcast-align -m64 -minline-all-stringops >> -falign-loops -ftree-vectorize -fno-strict-overflow >> -mtune=opteron -Wall >> >> -I/home/pshea/_localbuilds//RTC/Common/2.0.0_247//Applications_rhel6_x64_dts4_pic/include >> -DNAME='"kamailio"' -DVERSION='"4.2.4"' -DARCH='"x86_64"' >> -DOS='linux_' -DOS_QUOTED='"linux"' -DCOMPILER='"gcc 4.4.7"' >> -D__CPU_x86_64 -D__OS_linux -DSER_VER=4002004 >> -DCFG_DIR='"/usr/local/etc/kamailio/"' -DPKG_MALLOC -DSHM_MEM >> -DSHM_MMAP -DDNS_IP_HACK -DUSE_MCAST -DUSE_TCP -DDISABLE_NAGLE >> -DHAVE_RESOLV_RES -DUSE_DNS_CACHE -DUSE_DNS_FAILOVER >> -DUSE_DST_BLACKLIST -DUSE_NAPTR -DWITH_XAVP -DF_MALLOC >> -DDBG_F_MALLOC -DMEM_JOIN_FREE -DUSE_TLS -DTLS_HOOKS >> -DUSE_CORE_STATS -DSTATISTICS -DMALLOC_STATS -DWITH_AS_SUPPORT >> -DFAST_LOCK -DADAPTIVE_WAIT -DADAPTIVE_WAIT_LOOPS=1024 >> -DCC_GCC_LIKE_ASM -DHAVE_GETHOSTBYNAME2 -DHAVE_UNION_SEMUN >> -DHAVE_SCHED_YIELD -DHAVE_MSG_NOSIGNAL -DHAVE_MSGHDR_MSG_CONTROL >> -DHAVE_ALLOCA_H -DHAVE_TIMEGM -DHAVE_SCHED_SETSCHEDULER >> -DUSE_RAW_SOCKS -DHAVE_EPOLL -DHAVE_SIGIO_RT >> -DSIGINFO64_WORKARROUND -DUSE_FUTEX -DHAVE_SELECT -std=c++0x >> >> -I/home/pshea/_localbuilds//RTC/Common/2.0.0_247//Applications_rhel6_x64_dts4_pic/include >> -c rtctrace.c -o rtctrace.o -MMD -MP* >> * >> * >> */opt/rh/devtoolset-4/root/usr/bin/g++ -shared -m64 -Wl,-O2 >> -Wl,-E -Wl,-soname,librtctrace.so.1 rtctrace.o db_arl_base.o >> jsoncpp.o -lcurl -pthread >> >> -L/home/pshea/_localbuilds//RTC/Common/2.0.0_247//Applications_rhel6_x64_dts4_pic/lib >> -lrtccommon >> >> -L/home/pshea/_localbuilds//ExternalLibs/boost/V1.60.0_22/Server_Linux26_x64_dts4_pic/lib >> -lboost_system -lboost_thread -lpthread -o librtctrace.so.1.0* >> *g++: error: db_arl_base.o: No such file or directory* >> *g++: error: jsoncpp.o: No such file or directory* >> make[2]: *** [librtctrace.so.1.0] Error 1 >> make[1]: *** [../../lib/rtctrace/librtctrace.so] Error 2 >> make: *** [install-modules] Error 1 >> error: Bad exit status from /var/tmp/rpm-tmp.AkEuuP (%install) >> >> >> >> On Wed, Jan 11, 2017 at 8:36 AM, Daniel-Constantin Mierla >> <mico...@gmail.com <mailto:mico...@gmail.com>> wrote: >> >> Hello, >> >> to be sure I understand properly the issue: you say that the >> value of the LIBS from Makefile of the module is inherited >> when compiling the internal library? >> >> Cheers, >> Daniel >> >> >> On 11/01/2017 04:21, Patrick wrote: >>> I added a C++ module to kamalio at some point, and now I am >>> trying to integrate that module with another C++ internal >>> library, but I'm getting all sorts of headaches when trying >>> to compile. >>> >>> The latest problem is during the "make install" part of the >>> build - it seems like the objects from the module are >>> "infecting" the link line of the internal library it's >>> dependent on. >>> >>> Here is the Makefile for the module. At the time, the only >>> way I figured to link in the C++ object was adding them to >>> the LIBS. Now, i think this interferes with the 'make >>> install' dependencies. >>> >>> Any thoughs on how to do this properly would be great! >>> >>> Thanks >>> >>> >>> *_Module Makefile_* >>> >>> # >>> # db_cassandra module makefile >>> # >>> # >>> # WARNING: do not run this directly, it should be run by the >>> master Makefile >>> >>> include ../../Makefile.defs >>> >>> CXX=g++ >>> LD=g++ >>> auto_gen= >>> NAME=db_arl.so >>> >>> ifeq ($(CROSS_COMPILE),) >>> CURL_BUILDER=$(shell \ >>> if pkg-config --exists libcurl; then \ >>> echo 'pkg-config libcurl'; \ >>> else \ >>> which curl-config; \ >>> fi) >>> endif >>> >>> DEFS+=-DKAMAILIO_MOD_INTERFACE -DRTC_COMMON_TRACE >>> *LIBS += db_arl_base.o jsoncpp.o*-lcurl -pthread >>> >>> CXXFLAGS=$(CFLAGS:-Wno-deprecated option=) >>> CXXFLAGS+= -Wno-write-strings -Wno-deprecated >>> -Wno-unused-function -Wno-sign-compare -Wno-strict-aliasing >>> CXXFLAGS+= -I >>> ${COL_LOCAL_BUILDS_ROOT}/ExternalLibs/boost/V1.60.0_27/ >>> CXXFLAGS+= -I ./jsoncpp-dist/ >>> >>> SERLIBPATH=../../lib >>> SER_LIBS+=$(SERLIBPATH)/srdb2/srdb2 >>> SER_LIBS+=$(SERLIBPATH)/srdb1/srdb1 >>> *SER_LIBS+=$(SERLIBPATH)/rtctrace/rtctrace* >>> >>> include ../../Makefile.modules >>> >>> jsoncpp.o: jsoncpp-dist/jsoncpp.cpp >>> @echo COL_LOCAL_BUILDS_ROOT=${COL_LOCAL_BUILDS_ROOT} >>> @echo "Compiling $<" >>> $(CXX) $(CXXFLAGS) $(CFLAGS) $(C_DEFS) $(DEFS) -c $< -o $@ >>> >>> db_arl_base.o: db_arl_base.cpp db_arl_base.h >>> @echo COL_LOCAL_BUILDS_ROOT=${COL_LOCAL_BUILDS_ROOT} >>> @echo "Compiling $<" >>> $(CXX) $(CXXFLAGS) $(CFLAGS) $(C_DEFS) $(DEFS) -c $< -o $@ >>> >>> db_arl.so: db_arl_base.o jsoncpp.o >>> >>> >>> During 'make install' the objects in *red*have no business >>> in the link line for the internal library >>> /opt/rh/devtoolset-4/root/usr/bin/g++ -fPIC -DPIC -g >>> -funroll-loops -Wcast-align -m64 -minline-all-stringops >>> -falign-loops -ftree-vectorize -fno-strict-overflow >>> -mtune=opteron -Wall >>> >>> -I/home/pshea/_localbuilds/RTC/Common/2.0.0_247//Applications_rhel6_x64_dts4_pic/include >>> -DNAME='"kamailio"' -DVERSION='"4.2.4"' -DARCH='"x86_64"' >>> -DOS='linux_' -DOS_QUOTED='"linux"' -DCOMPILER='"gcc 4.4.7"' >>> -D__CPU_x86_64 -D__OS_linux -DSER_VER=4002004 >>> -DCFG_DIR='"/usr/local/etc/kamailio/"' -DPKG_MALLOC >>> -DSHM_MEM -DSHM_MMAP -DDNS_IP_HACK -DUSE_MCAST -DUSE_TCP >>> -DDISABLE_NAGLE -DHAVE_RESOLV_RES -DUSE_DNS_CACHE >>> -DUSE_DNS_FAILOVER -DUSE_DST_BLACKLIST -DUSE_NAPTR >>> -DWITH_XAVP -DF_MALLOC -DDBG_F_MALLOC -DMEM_JOIN_FREE >>> -DUSE_TLS -DTLS_HOOKS -DUSE_CORE_STATS -DSTATISTICS >>> -DMALLOC_STATS -DWITH_AS_SUPPORT -DFAST_LOCK -DADAPTIVE_WAIT >>> -DADAPTIVE_WAIT_LOOPS=1024 -DCC_GCC_LIKE_ASM >>> -DHAVE_GETHOSTBYNAME2 -DHAVE_UNION_SEMUN -DHAVE_SCHED_YIELD >>> -DHAVE_MSG_NOSIGNAL -DHAVE_MSGHDR_MSG_CONTROL >>> -DHAVE_ALLOCA_H -DHAVE_TIMEGM -DHAVE_SCHED_SETSCHEDULER >>> -DUSE_RAW_SOCKS -DHAVE_EPOLL -DHAVE_SIGIO_RT >>> -DSIGINFO64_WORKARROUND -DUSE_FUTEX -DHAVE_SELECT >>> -std=c++0x >>> >>> -I/home/pshea/_localbuilds/RTC/Common/2.0.0_247//Applications_rhel6_x64_dts4_pic/include >>> -c rtctrace.c -o rtctrace.o -MMD -MP >>> /opt/rh/devtoolset-4/root/usr/bin/g++ -shared -m64 -Wl,-O2 >>> -Wl,-E -Wl,-soname,librtctrace.so.1 rtctrace.o >>> * db_arl_base.o jsoncpp.o*-lcurl -pthread >>> >>> -L/home/pshea/_localbuilds/RTC/Common/2.0.0_247//Applications_rhel6_x64_dts4_pic/lib >>> -lrtccommon >>> >>> -L/home/pshea/_localbuilds/ExternalLibs/boost/V1.60.0_22/Server_Linux26_x64_dts4_pic/lib >>> -lboost_system -lboost_thread -lpthread -o librtctrace.so.1.0 >>> *g++: error: db_arl_base.o: No such file or directory* >>> *g++: error: jsoncpp.o: No such file or directory* >>> >>> >>> >>> _______________________________________________ >>> SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing >>> list >>> sr-users@lists.sip-router.org >>> <mailto:sr-users@lists.sip-router.org> >>> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users >>> <http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users> >> >> -- >> Daniel-Constantin Mierla >> www.twitter.com/miconda <http://www.twitter.com/miconda> -- >> www.linkedin.com/in/miconda <http://www.linkedin.com/in/miconda> >> Kamailio World Conference - May 8-10, 2017 - www.kamailioworld.com >> <http://www.kamailioworld.com> >> >> _______________________________________________ SIP Express >> Router (SER) and Kamailio (OpenSER) - sr-users mailing list >> sr-users@lists.sip-router.org >> <mailto:sr-users@lists.sip-router.org> >> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users >> <http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users> >> > -- > Daniel-Constantin Mierla > www.twitter.com/miconda <http://www.twitter.com/miconda> -- > www.linkedin.com/in/miconda <http://www.linkedin.com/in/miconda> > Kamailio World Conference - May 8-10, 2017 - www.kamailioworld.com > <http://www.kamailioworld.com> > -- Daniel-Constantin Mierla www.twitter.com/miconda -- www.linkedin.com/in/miconda Kamailio World Conference - May 8-10, 2017 - www.kamailioworld.com
_______________________________________________ SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list sr-users@lists.sip-router.org http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users