I began as John suggested with the following command line: TMPDIR=$HOME/tmp make C_COMPILER=clang PREFIX=$HOME/chicken-4.12.0 PLATFORM=linux install
This ran fine (about ten minutes) until it encountered an error on the line: clang -L. chicken.o batch-driver.o compiler.o optimizer.o lfa2.o compiler-syntax.o scrutinizer.o support.o c-platform.o c-backend.o -o chicken -lchicken -W1,-R"." -lm -ldl The error message is: ./libchicken.so: undefined reference to '__android_log_vprint' clan-4.0: error: linker command failed with exit code 1 (use -v to see invocation) make: *** [rules.make:247: chicken] Error 1 So I erased everything, untarred again, and did as Alexander suggested: TMPDIR=$HOME/tmp make C_COMPILER=clang PREFIX=$HOME/chicken-4.12.0 PLATFORM=android install The compile completed successfully, but when I run ./csi I get an error: CANNOT LINK EXECUTABLE: could not load library "libchicken.so" needed by "./csi"; caused by library "libchicken.so" not found Of course, libchicken.so is in the same directory as csi. I suppose that is the linker error Alexander talked about. I have questions: 1) How do I work around the link error and run csi? 2) Alexander: How do I apply your patch? (I'm not adept with C.) Is your patch forward-compatible so it will work on future versions of chicken? 3) Is there a way to compile chicken so the library is included statically and doesn't require a dynamically-loaded library? (I would prefer that to a patch.) Thanks again, Phil On Fri, May 12, 2017 at 6:16 PM, Alexander Shendi (web.de) < alexander.she...@web.de> wrote: > Dear Phil, > > It's me again. > > Some remarks: > I did successfully compile CHICKEN 4.12.0 on Termux/Android. Please use > that exact release as it contains several fixes for the Android platform. > > 1) I used PLATFORM=android as Termux uses Android's libc (Bionic) rather > than GNU libc. > 2) The complete make invocation I used was: > > TMPDIR=$HOME/tmp make C_COMPILER=clang PREFIX=$HOME/chickens/4.12.0 > PLATFORM=android install > > 3) the Android dynamic linker is rather dumb and doesn't support the > --rpath feature used by the Makefile. > It spits out a warning to that effect every time you run csi/csc or an > executable made with csc. > This also screws up the CHICKEN test suite. I have a patch that works > around that > (see https://paste.call-cc.org/paste?id=a738f447edf76ecbaa7b47eeced51f > a138972add#a0) > But if you can live with the warning message and don't need to run the > test suite you don't need to apply the patch. > > 3) I did (see above). > > 4.1) CHICKEN 's library directory (e.g. $HOME/chickens/4.12.0/lib) must be > in your $LD_LIBRARY_PATH. > 4.2) If you want to install eggs (CHICKEN's version of packages) you must > say: > TMPDIR=$HOME/tmp chicken-install <eggname> > > > 5.) Good luck! > > 6.) Do not hesitate to ask for further info. > > Best Regards, > > Alexander > > > Am 12. Mai 2017 23:00:10 MESZ schrieb Phil Bewig <pbe...@gmail.com>: >> >> I recently purchased a Lenovo TAB2 A10 tablet computer and installed >> Termux, a unix-like environment, from the Play Store. I want to compile >> Chicken for my computer so I can have a Scheme REPL with me wherever I go. >> I have several questions: >> >> 1) What is the correct PLATFORM for the make command? Is it android? >> Termux isn't really android, it is its own version of unix, similar to >> Debian. >> >> 2) Are any of the optional features required or recommended for Termux? >> >> 3) Have any other Chicken users successfully compiled Chicken on Termux? >> >> 4) Is there anything else I need to know to compile Chicken on Termux? >> >> Thanks for your help. >> >> Phil >> > > -- > Diese Nachricht wurde von meinem Android-Mobiltelefon mit K-9 Mail > gesendet. >
_______________________________________________ Chicken-users mailing list Chicken-users@nongnu.org https://lists.nongnu.org/mailman/listinfo/chicken-users