IRC channel logs

2020-09-02.log

back to list of logs

<janneke>dannym: ./doit builds the whole development lot; it runs:
<janneke>build-gcc.sh: use the default (64 bit) gcc -- mostly just to verify we didn't break tcc
<janneke>build-32.sh: use the 32bit gcc-sans-libc with mescc lib
<janneke>build.sh: build using mescc
<janneke>dannym: they produce, respectively: tcc-gcc, i686-unknown-linux-gnu-tcc/arm-unknown-linux-gnueabihf-tcc, mes-tcc
<janneke>in the guix bootstrap, we use ./bootstrap.sh to build mes-tcc
<janneke>dannym: so, my development cycle mostly was:
<janneke>* reapply ba1c47d lotsa debug printing
<janneke>* ./doit
<janneke>compare traces produced by "compile.sh" 1: 32-bit gcc, 2: mes-tcc
<janneke>^*
<janneke>* add more debug tracing in the c code / isolate compile problem
<janneke>* rewrite c contruct or extract test+fix mescc
<dannym>janneke: Thanks
<dannym>janneke: I just get exit code 1 with no output for ./build.sh
<dannym>janneke: If I do it inside an guix environment --pure tcc --ad-hoc git
<dannym>++ mes-source/pre-inst-env mescc -dumpmachine
<dannym>+ host=
<dannym>When I add -x
<dannym>mes-source/pre-inst-env mescc -dumpmachine
<dannym>error:include-from-path: not found: :(nyacc/lex.scm)
<dannym>exiting...
<dannym>unhandled exception:error:(("include-from-path: not found: " "nyacc/lex.scm"))
<dannym>Backtrace:
<dannym>So it still doesn't find nyacc
<dannym>Because pre-inst-env does not add dependencies to GUILE_LOAD_PATH
<dannym>(that's branch "wip" of mes btw)
<dannym>Your HACKING file also specifies that one should manually fiddle with GUILE_LOAD_PATH
<dannym>And ./scripts/mescc does something like GUILE_LOAD_PATH=/usr/local/share/guile/site/2.2${GUILE_LOAD_PATH+:}${GUILE_LOAD_PATH} which is definitely useless
<dannym>for me, on Debian with Guix, where I definitely want it to use Debian's stuff
<dannym>Don't want
<dannym>./config.sh:GUILE_LOAD_PATH="/gnu/store/a6k4a1bxlqv8xv1gks1la6m8vysn7fyf-profile/share/guile/site/2.2:/gnu/store/n8b7ppdb97y39viva8cm4rmwvn7i4n5w-guile-2.2.7/share/guile/2.2:/gnu/store/n8b7ppdb97y39viva8cm4rmwvn7i4n5w-guile-2.2.7/share/guile/site/2.2:/gnu/store/n8b7ppdb97y39viva8cm4rmwvn7i4n5w-guile-2.2.7/share/guile/site:/gnu/store/n8b7ppdb97y39viva8cm4rmwvn7i4n5w-guile-2.2.7/share/guile"
<dannym>The first entry contains nyacc
<dannym>But pre-inst-env does not include config.sh
<dannym>Which is fine in general, but it also doesn't use @GUILE_LOAD_PATH@ anywhere in there
<dannym>So ./pre-inst-env won't work as it usually does in guix
<dannym>Hence mescc can't find its dependencies
<dannym>After fixing that, I get: "mes: boot failed: no such file: boot-0.scm" when invoking mescc
<dannym>When invoking build.sh
<janneke>dannym: oh my!
<janneke>i sadly don't have much time atm, a friend is visiting
<janneke>however, what i do is:
<janneke>go into the mes environment, something like: guix environment -l guix.scm in the MES source archive
<janneke>and use "doit" to set all env vars correctly
<janneke>so .. my GUILE_LOAD_PATH comes from the mes environment, the mes-source and mes symlinks pointing to the mes source archive help setup mescc
<janneke>i see that "doit" actually creates the "mes" symlink
<dannym>janneke: No problem; I'm just logging the problems here. I can workaround them myself :)
<dannym>janneke: Have fun :)
<dannym>Yeah, works much better when:
<dannym>diff --git a/build-aux/pre-inst-env.in b/build-aux/pre-inst-env.in
<dannym>index 59258df..b28adbe 100644
<dannym>--- a/build-aux/pre-inst-env.in
<dannym>+++ b/build-aux/pre-inst-env.in
<dannym>@@ -29,6 +29,9 @@ program_prefix=${program_prefix-@program_prefix@}
<dannym> MES_PREFIX=${MES_PREFIX-${abs_top_srcdir}}
<dannym> export MES_PREFIX
<dannym>
<dannym>+GUILE_LOAD_COMPILED_PATH="@GUILE_LOAD_COMPILED_PATH@"
<dannym>+GUILE_LOAD_PATH="@GUILE_LOAD_PATH@"
<dannym>+
<dannym>It's compiling tinycc now
<dannym>(I could also use doit in the future--but I just thought you'd like to know what the problems are with your pre-inst-env)
<janneke>dannym: great -- about the diff; that makes sense! -- trying to answer your recent quention about this i was looking at guix's pre-inst-env and wondered why we don't have something like that there too...
<dannym>Compiling tinycc took 15 min. It's done now
<dannym>... that reminds we why I wasn't using ./doit:
<dannym>make: *** [Makefile:329: ETAGS] Error 127
<dannym> /gnu/store/7zp9ifpgm3zj481nk6jg1im13g4mza2g-bash-minimal-5.0.16/bin/sh: etags: command not found
<dannym>in build-gcc.sh
<dannym>commenting line out
<janneke>eh...do you have my latest commit? i added
<janneke>it to read: make ETAGS ||:
<dannym>I have it
<dannym>Ok, then maybe it's something else
<janneke>==> ed3951f squash! WIP build: Add support for ARM.
<janneke>ok, good
***ChanServ sets mode: +o rekado