[Solved] Backporting Asterisk to Chaos Calmer

Hi everybody,

I'm trying to backport Asterisk 18.x to chaos calmer. Please, don't ask why! I'm managing a Technicolor router given by the ISP I cannot upgrade.

I managed to backport by myself jansson and other libraries that were needed. Now asterisk 18 compiles and reaches almost the end. The linker on the asterisk executable gives, indeed, an error:

arm-openwrt-linux-uclibcgnueabi-g++ -o asterisk -Wl,--export-dynamic -Wl,--version-script,asterisk.exports -Wl,--dynamic-list,asterisk.dynamics -L/opt/openwrt_agtef_gpl/staging_dir/target-arm_cortex-a9+neon_uClibc-0.9.33.2_eabi/usr/lib -L/opt/openwrt_agtef_gpl/staging_dir/target-arm_cortex-a9+neon_uClibc-0.9.33.2_eabi/lib -L/opt/openwrt_agtef_gpl/staging_dir/toolchain-arm_cortex-a9+neon_gcc-4.8-linaro_uClibc-0.9.33.2_eabi/usr/lib -L/opt/openwrt_agtef_gpl/staging_dir/toolchain-arm_cortex-a9+neon_gcc-4.8-linaro_uClibc-0.9.33.2_eabi/lib -L/opt/openwrt_agtef_gpl/staging_dir/target-arm_cortex-a9+neon_uClibc-0.9.33.2_eabi/usr/lib/libiconv-stub/lib -L/opt/openwrt_agtef_gpl/staging_dir/target-arm_cortex-a9+neon_uClibc-0.9.33.2_eabi/usr/lib/libintl-stub/lib     abstract_jb.o acl.o adsi.o alaw.o alertpipe.o aoc.o app.o ast_expr2.o ast_expr2f.o asterisk.o astfd.o astmm.o astobj2.o astobj2_container.o astobj2_global.o astobj2_hash.o astobj2_rbtree.o audiohook.o autochan.o autoservice.o backtrace.o bridge.o bridge_after.o bridge_basic.o bridge_channel.o bridge_roles.o bucket.o callerid.o channel.o channel_internal_api.o chanvars.o cli.o codec.o codec_builtin.o config_options.o conversions.o core_local.o core_unreal.o crypt.o data_buffer.o datastore.o db.o devicestate.o dial.o dns.o dns_core.o dns_naptr.o dns_query_set.o dns_recurring.o dns_srv.o dns_system_resolver.o dns_test.o dns_tlsa.o dns_txt.o endpoints.o event.o features_config.o file.o fixedjitterbuf.o format.o format_cache.o format_cap.o format_compatibility.o frame.o framehook.o fskmodem.o global_datastores.o hashtab.o heap.o image.o io.o iostream.o jitterbuf.o json.o libasteriskpj.o loader.o lock.o logger_category.o manager_bridges.o manager_channels.o manager_endpoints.o manager_mwi.o manager_system.o max_forwards.o md5.o media_cache.o media_index.o message.o mixmonitor.o mwi.o named_locks.o netsock2.o optional_api.o options.o parking.o pbx.o pbx_app.o pbx_builtins.o pbx_functions.o pbx_hangup_handler.o pbx_ignorepat.o pbx_include.o pbx_sw.o pbx_switch.o pbx_timing.o pbx_variables.o pickup.o poll.o presencestate.o privacy.o rtp_engine.o say.o sched.o sdp_srtp.o security_events.o sem.o serializer.o sha1.o sip_api.o slinfactory.o smoother.o sorcery.o srv.o stasis.o stasis_bridges.o stasis_cache.o stasis_cache_pattern.o stasis_channels.o stasis_endpoints.o stasis_message.o stasis_message_router.o stasis_state.o stasis_system.o stdtime/localtime.o strcompat.o stream.o stringfields.o strings.o stun.o syslog.o taskprocessor.o tcptls.o tdd.o term.o test.o threadpool.o threadstorage.o time.o timing.o translate.o ulaw.o uri.o utf8.o utils.o uuid.o version.o xml.o xmldoc.o ccss.o cdr.o cel.o config.o dnsmgr.o dsp.o enum.o features.o http.o indications.o logger.o manager.o named_acl.o plc.o sounds.o udptl.o -L. -lasteriskssl  buildinfo.o  -L/opt/openwrt_agtef_gpl/staging_dir/target-arm_cortex-a9+neon_uClibc-0.9.33.2_eabi/usr/lib -lxml2 -L/opt/openwrt_agtef_gpl/staging_dir/target-arm_cortex-a9+neon_uClibc-0.9.33.2_eabi/usr/lib -lz -lm -ldl  -L/opt/openwrt_agtef_gpl/staging_dir/target-arm_cortex-a9+neon_uClibc-0.9.33.2_eabi/usr/lib -lsqlite3  -L/opt/openwrt_agtef_gpl/staging_dir/target-arm_cortex-a9+neon_uClibc-0.9.33.2_eabi/usr/lib -lssl -lcrypto -L/opt/openwrt_agtef_gpl/staging_dir/target-arm_cortex-a9+neon_uClibc-0.9.33.2_eabi/usr/lib -ljansson  -luuid  -lcrypt   -lrt   -ldl -L/opt/openwrt_agtef_gpl/staging_dir/target-arm_cortex-a9+neon_uClibc-0.9.33.2_eabi/usr/lib -lcap  -lpthread -lm -lresolv  -L/opt/openwrt_agtef_gpl/staging_dir/target-arm_cortex-a9+neon_uClibc-0.9.33.2_eabi/usr/lib -ledit -lncurses
utils.o: In function `ast_gethostbyname':
utils.c:(.text+0xca4): warning: gethostbyname_r is obsolescent, use getnameinfo() instead.
/opt/openwrt_agtef_gpl/staging_dir/target-arm_cortex-a9+neon_uClibc-0.9.33.2_eabi/usr/lib/libcrypto.so: warning: gethostbyname is obsolescent, use getnameinfo() instead.
dns.o: In function `ast_search_dns':
dns.c:(.text+0xa8): undefined reference to `res_nsearch'
dns.o: In function `ast_search_dns_ex':
dns.c:(.text+0x3b0): undefined reference to `res_nsearch'

any clue on where these two functions should come from? Do I need to upgrade the uClibc?

Thanks in advance,

See https://buildroot.uclibc.narkive.com/ez7xzS4C/git-commit-package-asterisk-enable-for-uclibc-toolchains

You need to patch the asterisk configure script to probe the availability of res_nsearch in addition to res_ninit

1 Like

Definitely saved my day! Thank you so much!
If someone else lands here, this is the patch you need to apply: https://git.buildroot.net/buildroot/diff/package/asterisk/0005-configure-fix-detection-of-re-entrant-resolver-funct.patch?id=81e5615052122d26842b25b7f0a2039ef8045fe8

If your problem is solved, please consider marking this topic as [Solved]. See How to mark a topic as [Solved] for a short how-to.

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.