Nim Devel as is doesn't build on Termux/Android. While I can build the Nim compiler, the following linkage of koch fails since Termux/Android needs an additional -landroid-glob flag. But nim is invoked with --skipUserCfg . How can I specify the additional library to be linked against?
Thanks for a hint, Helmut
First, I have to apply the following tiny patch (csources.patch)
--- csources_v1/makefile.orig 2021-09-14 19:01:01.165322316 +0200
+++ csources_v1/makefile 2021-09-14 20:15:14.223076934 +0200
@@ -155,6 +155,9 @@
ifeq ($(ucpu),armv7hl)
mycpu = arm
endif
+ifeq ($(ucpu),armv8l)
+ mycpu = arm
+endif
ifeq ($(ucpu),aarch64)
mycpu = arm64
endif
Then I try
git clone https://github.com/nim-lang/Nim.git
pushd Nim
git clone -q --depth 1 https://github.com/nim-lang/csources_v1.git
patch -p0 < ../csources.patch
./build_all.sh
which fails with
Cloning into 'Nim'...
/data/sdext2/data/com.termux/files/home/Nim/Nim /data/sdext2/data/com.termux/files/home/Nim
patching file csources_v1/makefile
csources_v1 exists.
cmd: which make
/data/data/com.termux/files/usr/bin/make
cmd: make -C csources_v1 -j 6 -l 4
make: Entering directory '/data/sdext2/data/com.termux/files/home/Nim/Nim/csources_v1'
cc -Ic_code -w -O3 -fno-strict-aliasing -c -o c_code/1_1/stdlib_assertions.nim.o c_code/1_1/stdlib_assertions.nim.c
make: cannot enforce load limit: getloadavg: Permission denied
cc -Ic_code -w -O3 -fno-strict-aliasing -c -o c_code/1_1/stdlib_dollars.nim.o c_code/1_1/stdlib_dollars.nim.c
... some lines deleted
cc -Ic_code -w -O3 -fno-strict-aliasing -c -o c_code/2_1/@mnim.nim.o c_code/2_1/@mnim.nim.c
cc -o ../bin/nim c_code/1_1/stdlib_assertions.nim.o c_code/1_1/stdlib_dollars.nim.o c_code/1_1/stdlib_formatfloat.nim.o c_code/2_1/stdlib_io.nim.o c_code/2_1/stdlib_system.nim.o c_code/2_1/stdlib_parseutils.nim.o c_code/2_1/stdlib_math.nim.o c_code/1_1/stdlib_algorithm.nim.o c_code/2_1/stdlib_unicode.nim.o c_code/2_1/stdlib_strutils.nim.o c_code/2_1/stdlib_pathnorm.nim.o c_code/2_1/stdlib_posix.nim.o c_code/2_1/stdlib_times.nim.o c_code/2_1/stdlib_os.nim.o c_code/1_1/stdlib_hashes.nim.o c_code/2_1/stdlib_strtabs.nim.o c_code/1_1/stdlib_sets.nim.o c_code/2_1/@mpathutils.nim.o c_code/2_1/@mropes.nim.o c_code/2_1/stdlib_tables.nim.o c_code/2_1/@mlineinfos.nim.o c_code/2_7/@mplatform.nim.o c_code/1_1/@mprefixmatches.nim.o c_code/2_1/stdlib_strformat.nim.o c_code/2_1/stdlib_terminal.nim.o c_code/2_1/@moptions.nim.o c_code/2_1/@mmsgs.nim.o c_code/1_1/@mcondsyms.nim.o c_code/2_1/stdlib_streams.nim.o c_code/2_1/stdlib_cpuinfo.nim.o c_code/2_1/stdlib_osproc.nim.o c_code/1_1/stdlib_sha1.nim.o c_code/2_1/stdlib_lexbase.nim.o c_code/1_1/stdlib_parsejson.nim.o c_code/1_1/stdlib_json.nim.o c_code/2_1/@mextccomp.nim.o c_code/1_1/@mwordrecg.nim.o c_code/2_1/@mnimblecmd.nim.o c_code/2_3/stdlib_parseopt.nim.o c_code/1_1/@mincremental.nim.o c_code/1_1/@mcommands.nim.o c_code/2_1/@mllstream.nim.o c_code/1_1/@midents.nim.o c_code/1_1/@midgen.nim.o c_code/1_1/@mint128.nim.o c_code/1_1/@mast.nim.o c_code/1_1/@mnimlexbase.nim.o c_code/1_1/@mlexer.nim.o c_code/1_1/@mparser.nim.o c_code/1_1/@mrenderer.nim.o c_code/1_1/@mfilters.nim.o c_code/1_1/@mfilter_tmpl.nim.o c_code/1_1/@msyntaxes.nim.o c_code/1_1/stdlib_intsets.nim.o c_code/1_1/@mrodutils.nim.o c_code/2_1/@mastalgo.nim.o c_code/1_1/@mtrees.nim.o c_code/1_1/@mtypes.nim.o c_code/1_1/@mbtrees.nim.o c_code/1_1/stdlib_md5.nim.o c_code/1_1/@mmodulegraphs.nim.o c_code/1_1/@mmagicsys.nim.o c_code/1_1/@mbitsets.nim.o c_code/1_1/@mnimsets.nim.o c_code/1_1/@msemfold.nim.o c_code/1_1/@mmodulepaths.nim.o c_code/1_1/@mvmdef.nim.o c_code/1_1/@msemdata.nim.o c_code/1_1/@mlinter.nim.o c_code/1_1/@[email protected] c_code/1_1/@mlookups.nim.o c_code/1_1/@msemtypinst.nim.o c_code/1_1/@mparampatterns.nim.o c_code/1_1/@mlowerings.nim.o c_code/1_1/@m..@slib@spackages@[email protected] c_code/1_1/@m..@slib@spackages@[email protected] c_code/1_1/@m..@slib@spackages@[email protected] c_code/2_1/@m..@slib@spackages@[email protected] c_code/1_1/stdlib_xmltree.nim.o c_code/1_1/stdlib_uri.nim.o c_code/1_1/stdlib_cgi.nim.o c_code/1_1/@mtypesrenderer.nim.o c_code/2_1/@mdocgen.nim.o c_code/1_1/@msigmatch.nim.o c_code/1_1/@mimporter.nim.o c_code/1_1/@mprocfind.nim.o c_code/2_1/@mpragmas.nim.o c_code/1_1/@mreorder.nim.o c_code/1_1/@mpasses.nim.o c_code/1_1/@msaturate.nim.o c_code/1_1/@mguards.nim.o c_code/1_1/@msighashes.nim.o c_code/1_1/@mliftdestructors.nim.o c_code/1_1/@msempass2.nim.o c_code/1_1/@mcgmeth.nim.o c_code/1_1/@maliases.nim.o c_code/1_1/@mpatterns.nim.o c_code/1_1/@mdfa.nim.o c_code/1_1/@minjectdestructors.nim.o c_code/1_1/@mliftlocals.nim.o c_code/1_1/@mlambdalifting.nim.o c_code/1_1/@mclosureiters.nim.o c_code/1_1/@mtransf.nim.o c_code/1_1/@mvmgen.nim.o c_code/1_1/@mvmdeps.nim.o c_code/1_1/@mvmmarshal.nim.o c_code/2_1/@mgorgeimpl.nim.o c_code/1_1/@mmacrocacheimpl.nim.o c_code/1_1/@mevaltempl.nim.o c_code/2_1/@mvm.nim.o c_code/1_1/@msemmacrosanity.nim.o c_code/1_1/@mpluginsupport.nim.o c_code/1_1/@[email protected] c_code/1_1/@[email protected] c_code/1_1/@[email protected] c_code/1_1/@mspawn.nim.o c_code/1_1/@msemparallel.nim.o c_code/1_1/@msem.nim.o c_code/1_1/@mccgutils.nim.o c_code/1_1/@mtreetab.nim.o c_code/1_1/@mndi.nim.o c_code/1_1/@mcgendata.nim.o c_code/1_1/@mccgmerge.nim.o c_code/1_1/@menumtostr.nim.o c_code/2_1/stdlib_dynlib.nim.o c_code/2_1/@mcgen.nim.o c_code/2_1/@mnimconf.nim.o c_code/1_1/@mpassaux.nim.o c_code/1_1/@mdepends.nim.o c_code/1_1/@mmodules.nim.o c_code/2_1/@mjsgen.nim.o c_code/1_1/@mdocgen2.nim.o c_code/1_1/@mmain.nim.o c_code/2_1/@mscriptconfig.nim.o c_code/2_1/@mcmdlinehelper.nim.o c_code/2_1/@mnim.nim.o -ldl -lm -lrt
/data/data/com.termux/files/usr/bin/ld: c_code/2_1/@moptions.nim.o: in function `getPackageName__ez7MSoVdvcTOZlBJgbu5Sg':
@moptions.nim.c:(.text+0x19f4): undefined reference to `glob'
/data/data/com.termux/files/usr/bin/ld: @moptions.nim.c:(.text+0x1a40): undefined reference to `globfree'
/data/data/com.termux/files/usr/bin/ld: @moptions.nim.c:(.text+0x1ad8): undefined reference to `globfree'
/data/data/com.termux/files/usr/bin/ld: c_code/2_1/@mextccomp.nim.o: in function `callCCompiler__LewyFn4Dwlat7Ce2QWFbZA_2':
@mextccomp.nim.c:(.text+0x5994): undefined reference to `glob'
/data/data/com.termux/files/usr/bin/ld: @mextccomp.nim.c:(.text+0x59e4): undefined reference to `globfree'
/data/data/com.termux/files/usr/bin/ld: c_code/2_1/@mnimblecmd.nim.o: in function `addNimblePath__LofaeXg9cmO8pKsmWT9a9bH9bw':
@mnimblecmd.nim.c:(.text+0x8e4): undefined reference to `glob'
/data/data/com.termux/files/usr/bin/ld: @mnimblecmd.nim.c:(.text+0x9fc): undefined reference to `globfree'
/data/data/com.termux/files/usr/bin/ld: c_code/2_1/@mpragmas.nim.o: in function `processCompile__0LSWh2UqkqDBtNGS0Kh9cNQ_6':
@mpragmas.nim.c:(.text+0x2350): undefined reference to `glob'
/data/data/com.termux/files/usr/bin/ld: @mpragmas.nim.c:(.text+0x23a0): undefined reference to `globfree'
clang-12: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [makefile:827: ../bin/nim] Error 1