chicken-users
[Top][All Lists]
Advanced

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

Re: [Chicken-users] cross-compiling eggs using feature-test


From: Mario Domenech Goulart
Subject: Re: [Chicken-users] cross-compiling eggs using feature-test
Date: Tue, 14 Jan 2014 16:44:17 +0000
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (gnu/linux)

Hi Kristian,

On Tue, 14 Jan 2014 17:30:04 +0100 Kristian Lein-Mathisen <address@hidden> 
wrote:

> I'm having some trouble compiling the socket egg with my CHICKEN
> cross-compiler. I have a cross-compiler that compiles my eggs for my
> host architecture (x86) and then my target (android):
>
> [user ~]$ aosp-chicken-install socket
>
> # installing for host works:
>
> 'host/linux-x86/chicken/bin/aosp-csi' -bnq -setup-mode -e "
> (require-library setup-api)" -e "(import setup-api)" -e "
> (setup-error-handling)" -e "(extension-name-and-version '(\"socket\"
> \"0.2.5\"))" -e "(host-extension #t)" 'socket.setup'
> 'host/linux-x86/chicken/bin/aosp-csc' -feature compiling-extension -
> setup-mode -host socket-features.scm
> ./socket-features > socket-config.scm
>
> # when it reaches target, it fails:
>
> 'host/linux-x86/chicken/bin/aosp-csi' -bnq -e "(require-library
> setup-api)" -e "(import setup-api)" -e "(setup-error-handling)" -e "
> (extension-name-and-version '(\"socket\" \"0.2.5\"))" -e "
> (destination-prefix
> \"/home/klm/cube/aosp-new/out/target/product/tr1imx6/system/\")" -e "
> (runtime-prefix \"target/product/tr1imx6/system/\")" 'socket.setup'
> 'host/linux-x86/chicken/bin/aosp-csc' -feature compiling-extension
> socket-features.scm
> ./socket-features > socket-config.scm
> sh: ./socket-features: cannot execute binary file
>
> Error: shell command failed with nonzero exit status 32256:
>
> ./socket-features > socket-config.scm
>
> In socket.setup, we find these two lines:
>
> (compile socket-features.scm)
> (run (./socket-features > socket-config.scm))
>
> And I think this is the cause of the trouble: The host machine cannot
> execute the compiled target's binary executable to determine its
> features.
>
> Specifying (compile -host socket-features.scm) was tempting, but it
> incorrectly detects my target system to support SO_REUSEPORT which it
> does not.
>
> Are there any good ways to fix this? I have noted the feature-test egg
> uses this method in its documentation too.

If I understand the problem correctly, eggs can't really try to detect
target features when running on the host system.  When cross-compiling,
I think you'll have to specify the features in advance (according to the
target's profile) and skip the detection.

The .setup from the crypt egg can be useful as an example.

Best wishes.
Mario
-- 
http://parenteses.org/mario



reply via email to

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