chicken-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Chicken-users] Chicken on Termux


From: Alexander Shendi (web.de)
Subject: Re: [Chicken-users] Chicken on Termux
Date: Sat, 13 May 2017 11:00:43 +0200
User-agent: K-9 Mail for Android

Hi Phil,

you have to set LD_LIBRARY_PATH explicitly :

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/chicken-4.12.0/lib

Then you should be able to invoke "csi" directly. You don't need my patch, if you don't mind a linker warning message each time you run "csi".

Best Regards,

Alexander

Am 13. Mai 2017 03:15:30 MESZ schrieb Phil Bewig <address@hidden>:
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) <address@hidden> 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=a738f447edf76ecbaa7b47eeced51fa138972add#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 <address@hidden>:
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.


--
Diese Nachricht wurde von meinem Android-Mobiltelefon mit K-9 Mail gesendet.
reply via email to

[Prev in Thread] Current Thread [Next in Thread]