<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#ffffff" text="#000000">
    <font face="Consolas">The latest Racket sources didn't work as you
      see below:<br>
--------------------------------------------------------------------------------<br>
      # cd build<br>
      #../configure --prefix=/home/user/local/racket-5.0 --with-x=no
      --disable-gracket<br>
      # make<br>
      ...<br>
      ...<br>
      a - backgraph.o<br>
      a - win32_threads.o<br>
      a - thread_local_alloc.o<br>
      a - openbsd_stop_world.o<br>
      a - dyn_load.o<br>
      ranlib ../libmzgc.a<br>
      make[6]: Leaving directory
      `/home/user/tmp/plt-racket-a530109/src/build/racket/gc'<br>
      make[5]: Leaving directory
      `/home/user/tmp/plt-racket-a530109/src/build/racket'<br>
      make foreign-stuff<br>
      make[5]: Entering directory
      `/home/user/tmp/plt-racket-a530109/src/build/racket'<br>
      cd ../foreign; make all<br>
      make[6]: Entering directory
      `/home/user/tmp/plt-racket-a530109/src/build/foreign'<br>
      make foreign.o<br>
      make[7]: Entering directory
      `/home/user/tmp/plt-racket-a530109/src/build/foreign'<br>
      gcc -g -O2&nbsp; -Wall&nbsp;&nbsp;&nbsp;&nbsp; -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
      -I./../racket -I../../foreign/../racket/include
      -I../../foreign/../racket/src -Ilibffi/include -c
      ../../foreign/foreign.c -o foreign.o<br>
      make[7]: Leaving directory
      `/home/user/tmp/plt-racket-a530109/src/build/foreign'<br>
      make libffi/libffi.la<br>
      make[7]: Entering directory
      `/home/user/tmp/plt-racket-a530109/src/build/foreign'<br>
      cd libffi; make libffi.la<br>
      make[8]: Entering directory
      `/home/user/tmp/plt-racket-a530109/src/build/foreign/libffi'<br>
      /bin/bash: line 1: ../../../foreign/libffi/install-sh: Permission
      denied<br>
      make[8]: *** [src/.dirstamp] Error 126<br>
      make[8]: Leaving directory
      `/home/user/tmp/plt-racket-a530109/src/build/foreign/libffi'<br>
      make[7]: *** [libffi/libffi.la] Error 2<br>
      make[7]: Leaving directory
      `/home/user/tmp/plt-racket-a530109/src/build/foreign'<br>
      make[6]: *** [all] Error 2<br>
      make[6]: Leaving directory
      `/home/user/tmp/plt-racket-a530109/src/build/foreign'<br>
      make[5]: *** [foreign-stuff] Error 2<br>
      make[5]: Leaving directory
      `/home/user/tmp/plt-racket-a530109/src/build/racket'<br>
      make[4]: *** [common] Error 2<br>
      make[4]: Leaving directory
      `/home/user/tmp/plt-racket-a530109/src/build/racket'<br>
      make[3]: *** [cgc] Error 2<br>
      make[3]: Leaving directory
      `/home/user/tmp/plt-racket-a530109/src/build/racket'<br>
      make[2]: *** [3m] Error 2<br>
      make[2]: Leaving directory
      `/home/user/tmp/plt-racket-a530109/src/build/racket'<br>
      make[1]: *** [3m] Error 2<br>
      make[1]: Leaving directory
      `/home/user/tmp/plt-racket-a530109/src/build'<br>
      make: *** [all] Error 2<br>
    </font><font face="Consolas">--------------------------------------------------------------------------------</font><br>
    <br>
    <font face="Consolas">I seems that my work around, i.e. replacing <i><b>libffi</b></i>
      source tree by its <i><b>patched version <br>
          from Debian repository</b></i>, is more promising:-) It is
      available for the following architectures: <br>
      alpha, amd64, <font color="#990000"><i><b>armel</b></i></font>
      (&lt;--&gt; <font color="#000066"><i><b>Maemo5</b></i></font>),
      avr32, hppa, hurd-i386, i386, ia64, <br>
      kfreebsd-amd64, kfreebsd-i386, m68k, mips, mipsel, powerpc, s390,
      sparc.<br>
      <br>
      <br>
      Using the option --disable-foreign the compilation ran up to this
      point:<br>
-------------------------------------------------------------------------------<br>
    </font><font face="Consolas"># cd build<br>
      #../configure --prefix=/home/user/local/racket-5.0 --with-x=no
      --disable-gracket --disable-foreign<br>
      # make<br>
      ...<br>
    </font><font face="Consolas">...<br>
      a - string.o<br>
      a - struct.o<br>
      a - stxobj.o<br>
      a - symbol.o<br>
      a - syntax.o<br>
      a - thread.o<br>
      a - type.o<br>
      a - vector.o<br>
      a - foreign.o<br>
      a - ../src/gmp.o<br>
      a - ../src/unwind.o<br>
      ranlib ../libracket3m.a<br>
      ranlib: '../libracket3m.a': No such file<br>
      make[4]: *** [../libracket3m.a] Error 1<br>
      make[4]: Leaving directory
      `/home/user/tmp/plt-racket-a530109/src/build/racket/gc2'<br>
      make[3]: *** [all] Error 2<br>
      make[3]: Leaving directory
      `/home/user/tmp/plt-racket-a530109/src/build/racket/gc2'<br>
      make[2]: *** [3m] Error 2<br>
      make[2]: Leaving directory
      `/home/user/tmp/plt-racket-a530109/src/build/racket'<br>
      make[1]: *** [3m] Error 2<br>
      make[1]: Leaving directory
      `/home/user/tmp/plt-racket-a530109/src/build'<br>
      make: *** [all] Error 2<br>
    </font><font face="Consolas">-------------------------------------------------------------------------------</font><br>
    <font face="Consolas"><br>
      Regards<br>
      Nik<br>
    </font><br>
    <br>
    On 07/14/2010 02:46 PM, Matthew Flatt wrote:
    <blockquote
      cite="mid:20100714124619.5438965011A@mail-svr1.cs.utah.edu"
      type="cite">
      <pre wrap="">Right --- this is the problem that Kevin was talking about when he
mentioned that the 3m build doesn't work. It's also what I was talking
about for `raco make' and `raco setup', because something like `raco
make' is used to build some Racket files that are used to build 3m.

Besides the changes that I mentioned before, we've upgraded libffi to
the latest version, so you might now be able to build without using
`--disable-foreign'. Either way, the latest code should work.

You can download and try the latest Racket sources from here:

  <a class="moz-txt-link-freetext" href="http://github.com/plt/racket/">http://github.com/plt/racket/</a>


At Wed, 14 Jul 2010 13:10:53 +0200, nitralime wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="">I get now the following errors:
-------------------------------------------------------------------------------
-------------
.....
.....
make[3]: Entering directory `/home/user/tmp/plt-5.0/src/build/racket/gc2'
mkdir xsrc
make xsrc/precomp.h
make[4]: Entering directory `/home/user/tmp/plt-5.0/src/build/racket/gc2'
env XFORM_PRECOMP=yes ../racketcgc -cqu ../../../racket/gc2/xform.rkt 
--setup . --cpp "gcc -E -I./.. -I../../../racket/gc2/../include 
-DNEWGC_BTC_ACCOUNT  -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 
-DDONT_USE_FOREIGN "  --keep-lines -o xsrc/precomp.h 
../../../racket/gc2/precomp.c
Copying tree...
/home/user/tmp/plt-5.0/collects/ffi/unsafe.rkt:17:56: rename-out: no 
binding for identifier at: _scheme in: (rename-out (_scheme _racket))

  === context ===
/home/user/tmp/plt-5.0/collects/racket/private/reqprov.rkt:741:25
/home/user/tmp/plt-5.0/collects/racket/private/reqprov.rkt:740:18
/home/user/tmp/plt-5.0/collects/racket/private/reqprov.rkt:725:5
/home/user/tmp/plt-5.0/collects/racket/provide-transform.rkt:51:2: 
expand-export
/home/user/tmp/plt-5.0/collects/racket/private/reqprov.rkt:605:17: 
transform-simple
/home/user/tmp/plt-5.0/collects/racket/private/reqprov.rkt:601:2

make[4]: *** [xsrc/precomp.h] Error 1
make[4]: Leaving directory `/home/user/tmp/plt-5.0/src/build/racket/gc2'
make[3]: *** [all] Error 2
make[3]: Leaving directory `/home/user/tmp/plt-5.0/src/build/racket/gc2'
make[2]: *** [3m] Error 2
make[2]: Leaving directory `/home/user/tmp/plt-5.0/src/build/racket'
make[1]: *** [3m] Error 2
make[1]: Leaving directory `/home/user/tmp/plt-5.0/src/build'
make: *** [all] Error 2
-------------------------------------------------------------------------------
-------------

Regards
Nik


On 07/13/2010 06:19 PM, Kevin Tew wrote:
</pre>
        <blockquote type="cite">
          <pre wrap="">Ok I tried compiling with your configure line myself.
I had to make an additional change to get racket/racketcgc to build.

the 3m  variant still doesn't build do to more reliance on the ffi 
during xform.
setup is also going to try to use the ffi.

We have added additional dependencies on the ffi (foreign function 
interface) and need to decide if we are going to support building 
without it.
My guess is that is possible but will require some engineering effort.

Kevin

diff --git a/src/racket/src/env.c b/src/racket/src/env.c
index b1c0a8d..68b634b 100644
--- a/src/racket/src/env.c
+++ b/src/racket/src/env.c
@@ -501,7 +501,9 @@ static Scheme_Env *place_instance_init(void 
*stack_base, int initial_main_os_thr
   scheme_init_gmp_places();
   scheme_alloc_global_fdset();
   scheme_init_file_places();
+#ifndef DONT_USE_FOREIGN
   scheme_init_foreign_places();
+#endif

   env = scheme_make_empty_env();
   scheme_set_param(scheme_current_config(), MZCONFIG_ENV, 
(Scheme_Object *)env);
diff --git a/src/racket/src/thread.c b/src/racket/src/thread.c
index 7329d58..3d2c4fb 100644
--- a/src/racket/src/thread.c
+++ b/src/racket/src/thread.c
@@ -4159,7 +4159,7 @@ void scheme_thread_block(float sleep_time)
 #ifdef MZ_USE_FUTURES
   scheme_check_future_work();
 #endif
-#ifdef MZ_USE_MZRT
+#if defined(MZ_USE_MZRT) &amp;&amp; !defined(DONT_USE_FOREIGN)
   scheme_check_foreign_work();
 #endif



On 07/13/2010 10:03 AM, Kevin Tew wrote:
</pre>
          <blockquote type="cite">
            <pre wrap="">Try this patch, if it works for you.  I'll commit it

Kevin

diff --git a/src/racket/src/env.c b/src/racket/src/env.c
index b1c0a8d..68b634b 100644
--- a/src/racket/src/env.c
+++ b/src/racket/src/env.c
@@ -501,7 +501,9 @@ static Scheme_Env *place_instance_init(void 
*stack_base, int initial_main_os_thr
   scheme_init_gmp_places();
   scheme_alloc_global_fdset();
   scheme_init_file_places();
+#ifndef DONT_USE_FOREIGN
   scheme_init_foreign_places();
+#endif

   env = scheme_make_empty_env();
   scheme_set_param(scheme_current_config(), MZCONFIG_ENV, 
(Scheme_Object *)env);

On 07/13/2010 09:25 AM, nitralime wrote:
</pre>
            <blockquote type="cite">
              <pre wrap="">Hi folks!

I have tried to compile Racket on Maemo 5 (&lt;--&gt; Nokia N900).
Following the usual configure and make schema I have proceeded
as follows:

# cd plt-5.0/src/build
# ../configure  --prefix=/home/user/local/racket-5.0 --without-x 
--disable-gracket --disable-foreign
# make
...
...
a - src/unwind.o
a - src/vector.o
ranlib libracket.a
make[5]: Leaving directory `/home/user/tmp/plt-5.0/src/build/racket'
make[4]: Leaving directory `/home/user/tmp/plt-5.0/src/build/racket'
make racketcgc
make[4]: Entering directory `/home/user/tmp/plt-5.0/src/build/racket'
gcc -I. -I../../racket/include -g -O2  -Wall     -D_LARGEFILE_SOURCE 
-D_FILE_OFFSET_BITS=64 -DDONT_USE_FOREIGN 
-DINITIAL_COLLECTS_DIRECTORY='"'"`cd ../../racket/../../collects; 
pwd`"'"' -c ../../racket/main.c -o main.o
gcc -o racketcgc main.o  libracket.a libmzgc.a  -ldl -lm  -ldl -lm 
-rdynamic
libracket.a(env.o): In function `place_instance_init':
/home/user/tmp/plt-5.0/src/build/racket/src/../../../racket/src/env.c:500: 
undefined reference to `scheme_init_foreign_places'
collect2: ld returned 1 exit status
make[4]: *** [racketcgc] Error 1
make[4]: Leaving directory `/home/user/tmp/plt-5.0/src/build/racket'
make[3]: *** [cgc] Error 2
make[3]: Leaving directory `/home/user/tmp/plt-5.0/src/build/racket'
make[2]: *** [3m] Error 2
make[2]: Leaving directory `/home/user/tmp/plt-5.0/src/build/racket'
make[1]: *** [3m] Error 2
make[1]: Leaving directory `/home/user/tmp/plt-5.0/src/build'
make: *** [all] Error

Any idea how this problem can be resolved!

Regards
Nik


_________________________________________________
   For list-related administrative tasks:
   <a class="moz-txt-link-freetext" href="http://lists.racket-lang.org/listinfo/users">http://lists.racket-lang.org/listinfo/users</a>
</pre>
            </blockquote>
            <pre wrap="">

_________________________________________________
   For list-related administrative tasks:
   <a class="moz-txt-link-freetext" href="http://lists.racket-lang.org/listinfo/users">http://lists.racket-lang.org/listinfo/users</a>
</pre>
          </blockquote>
          <pre wrap="">
</pre>
        </blockquote>
        <pre wrap="">
_________________________________________________
  For list-related administrative tasks:
  <a class="moz-txt-link-freetext" href="http://lists.racket-lang.org/listinfo/users">http://lists.racket-lang.org/listinfo/users</a>
</pre>
      </blockquote>
    </blockquote>
    <br>
  </body>
</html>