Tiny Core Linux
Off-Topic => Off-Topic - Tiny Tux's Corner => Topic started by: jazzbiker on July 27, 2023, 10:58:19 AM
-
Hi Core people,
I'm trying to build guile 2.2 for my needs (want to try gEDA-gaf 0.10.2). Tried 2.2.7, 2.2.2, 3.0.9. Read Juanito's compile_guile reciept, LFS, void-packages - nothing helps.
Error looks like:
GEN guile-procedures.texi
Uncaught exception:
Throw to key encoding-error with args ("scm_to_stringn" "cannot convert narrow string to output locale" 38 #f #f)
If someone succeed building guile 2.2 or higher please share Your success story.
Thanks in advance.
-
Sorry, forgot to mention that I'm trying on TCx86 13.1.
-
Hi jazzbiker
Just a longshot, but do have glibc_gconv.tcz installed?
-
Do you have texinfo, glibc_gconv and glibc_i18n_locale loaded?
Are there any configure switches that disable building documentation?
Do you have a locale set?
If none of the above work you could hack the Makefile so it omits the documentation.
-
Didn't thought about texinfo, in Your compile_guile it was not mentioned.
glibc_gconv loaded.
glibc_i18n_locale - need to look, haven't checked. But locale is off.
Was reading ./configure --help but noticed nothing about disabling the docs.
Thank's a lot! :-)
Time to compile.
-
glibc_i18n_locale had no effect.
Hack the Makefile - mission impossible :-( It is generated and is 68k in size ...
Edit: loading texinfo had no effect simply making. But maybe I must clean and configure again.
-
It would be better to “make distclean” and run configure again.
-
Hi jazzbiker
... If none of the above work you could hack the Makefile so it omits the documentation.
... Hack the Makefile - mission impossible :-( It is generated and is 68k in size ...
You might be able to accomplish this by just deleting the
make files under the doc directory tree.
-
You might be able to accomplish this by just deleting the
make files under the doc directory tree.
Hi Rich,
It seems to be the great idea! What's Your opinion when it must be done with respect to configure? Before or after?
Maybe I will try to remove the whole doc directory?
-
It would be better to “make distclean” and run configure again.
Sorry, no luck. Your patch on Makefiles turning off the "-g -O2" applied. :-(
-
You might be able to accomplish this by just deleting the
make files under the doc directory tree.
Hi Rich,
Sorry but no luck too. Error thrown after the number of
...
SNARF values.doc
SNARF variable.doc
SNARF vectors.doc
SNARF version.doc
SNARF vports.doc
SNARF weak-set.doc
SNARF weak-table.doc
SNARF weak-vector.doc
SNARF posix.doc
SNARF net_db.doc
SNARF socket.doc
SNARF regex-posix.doc
GEN guile-procedures.texi
Uncaught exception:
Throw to key encoding-error with args ("scm_to_stringn" "cannot convert narrow string to output locale" 38 #f #f)
inside libguile directory.
There are warnings during compile about
if (sizeof (c) == 8)
ret = (((unsigned long)c) << 32) | b;
else
ret = b;
shifting of 32-bit variable. But sizeof (c) is not 8. Strange and suspicious is that those warnings are issued exactly from narrow_string_hash() function in libguile/hash.c. But this shift must not be performed - normally.
Anyway time to take the pause. Thank You and Juanito for the help.
-
Hi jazzbiker. FWIW I tried to compile guile 2.2.7 on TCL 14.x x86_64 and am able to reproduce your problem.
My locale is en_US.UTF-8. Changing locale to C did not help. Installing the additional extensions that Juanito recommneded also did not help. I tried to find the configure option that disables documentation but was unsuccessful.
The build instructions that I found (here (http://repo.tinycorelinux.net/12.x/x86_64/tcz/src/guile/compile_guile) and here (http://repo.tinycorelinux.net/9.x/x86_64/tcz/src/guile/compile_guile)) are missing the instructions of what to edit in the configure script. Note the incomplete "for...do..done" statement:
edit configure
for termlib in ncursesw curses termcap terminfo termlib pdcurses ; do
CC="gcc -flto -mtune=generic -Os -pipe" CXX="g++ -flto -mtune=generic -Os -pipe -fno-exceptions -fno-rtti" ./configure --prefix=/usr/local --disable-static --localstatedir=/var
The mystery edit could be totally unrelated to the compilation error or could be the secret to success.
-
I'm now at TC10 x86 and I want to say that guile 2.2.7 compiled successfully. Now it is very slowly building some prebuild object files. Seems that it will take all night long at my slow box.
-
I'm glad you figured it out!
-
Error thrown during module/scripts/snarf-check-and-output-texi.scm
While building 2.2.7 it is uncaught exception and build hangs.Building 3.0.9 manages to catch an exception and exits with error messages.
snarf-check-and-output-texi.scm seems to use C functions through ffi. libffi version changed from 3.2.1 (TC11) to 3.3 (TC12 and later).
-
Also gmp.tcz changed from 6.1.2 (TC10) through 6.2.0 (TC11) to 6.2.1 (TC12 and later).
Current (TC14) guile.tcz was build against earlier versions of libffi and gmp. I may try using guile-2.2 built under TC10 in the later TC versions.
-
The difference between building scripts for libffi 3.2.1 and 3.3 is "-flto" applied to 3.3 version.
-
It's a bit cryptic, but this:
edit configure
for termlib in ncursesw curses termcap terminfo termlib pdcurses ; do
..means search for the line: for termlib in ncurses curses termcap terminfo termlib pdcurses ; do
..and change it to: for termlib in ncursesw curses termcap terminfo termlib pdcurses ; do
-
In TC12 x86 all dependencies are the same as in TC13 x86. But in TC12 guile-3.0.9 is built while in TC13 not. Compilation completes in both cases but compiled with gcc11 (TC13) can not work properly and successfully accomplish the build.
-
Thank you, Juanito. I assumed it was a command meant to be run in the shell. Now I understand.
-
In TC12 x86 all dependencies are the same as in TC13 x86. But in TC12 guile-3.0.9 is built while in TC13 not. Compilation completes in both cases but compiled with gcc11 (TC13) can not work properly and successfully accomplish the build.
Hi jazzbiker. TC14 x86_64 has gcc12, which seems to be similarly impacted as gcc11 (assuming gcc is the problem).
-
Hi Juanito. I tried again on TCL14 x86_64, this time with a properly-edited configure script (now that I understand the edit--sorry for being dense) and latest guile source code (version 3.0.9). Still same error :(
$ make
...
SNARF net_db.doc
SNARF socket.doc
SNARF regex-posix.doc
GEN guile-procedures.texi
Pre-boot error; key: encoding-error, args: ("scm_to_stringn" "cannot convert narrow string to output locale" 38 #f #f)Aborted
make[3]: *** [Makefile:4656: guile-procedures.texi] Error 1
make[3]: Leaving directory '/mnt/data/Downloads/guile-3.0.9/libguile'
make[2]: *** [Makefile:2725: all] Error 2
make[2]: Leaving directory '/mnt/data/Downloads/guile-3.0.9/libguile'
make[1]: *** [Makefile:2152: all-recursive] Error 1
make[1]: Leaving directory '/mnt/data/Downloads/guile-3.0.9'
make: *** [Makefile:2038: all] Error 2
Command exited with non-zero status 2
-
I want to mention that the question in the topic name is now not actual for me concerning building dependency for gEDA-gaf 1.10.2. On geda-project.org site the sources that are proposed to download require guile >= 2.2. But authors in the git version rolled back the requirements for guile version back to >= 2.0.11, so I don't need another guile version to build gEDA-gaf 1.10.2.
Still the question remains why the latest GNU C compiler don't build GNU extension language properly :-) If it may help I can try some digging but now I don't know in what direction. Building new guile version with gdb support and running the failing file under the debugger? Not a piece of cake, I guess :-)
-
not shore if/how relevant my sum-what uneducated musings on this subject might be
however !...
i dug up a few topics mentioning the string after the error's "Uncaught exception:
Throw to key encoding-error with args" mentioned @ https://forum.tinycorelinux.net/index.php/topic,26345.msg169858.html#msg169858
& "Pre-boot error; key: encoding-error, args:" @ https://forum.tinycorelinux.net/index.php/topic,26345.msg169876.html#msg169876
perhaps the below threads might help illuminate the exact source of the problem or at least rule out some factors ?? :-\
Chunked store references in compiled code break grafting (again)
https://issues.guix.gnu.org/30395
bug#11083: guile-2.0.5 bug report
https://bug-guile.gnu.narkive.com/S0anG9Gy/bug-11083-guile-2-0-5-bug-report
buggy GUILE ? (also, guile vs. guile30?)
https://forums.fedoraforum.org/showthread.php?329977-buggy-GUILE-(also-guile-vs-guile30-)&p=1867013
....
presumably greping the archives @ https://savannah.gnu.org/mail/?group=guile
or even posting to a/the relevent guile list
where id presume those with more knowledge of guile building pitfalls
are likely to read / reply !
sayonara.