Re: [racket-dev] racket-5.1{, .0.6} not building foreign interface not supported

2011-04-08 Thread Matthew Flatt
At Fri, 08 Apr 2011 12:45:50 +0200, Marijn wrote:
> subject is valid for both its meanings:
> 
> 1) my build fails and complains "make-stubborn-will-executor: foreign
> interface not supported for this platform"
> 
> 2) it seems impossible to disable foreign as I get this even if I pass
> --disable-foreign to configure

Providing `--disable-foreign' will definitely disable the foreign
interface. Maybe you meant `--enable-foreign' above?

The log that you enclosed shows `configure' being called with
`--disable-foreign', and it looks like the log is showing a
package-based build. Is the `--disable-foreign' flag built into the
package?

> PS It seems that configure.{ac,in} is missing from the source tarball.

It's in the "racket" subdirectory of "src".

_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


Re: [racket-dev] racket-5.1{, .0.6} not building foreign interface not supported

2011-04-08 Thread Marijn
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Hi Matthew,

thanks for your quick response.

On 04/08/11 14:14, Matthew Flatt wrote:
> At Fri, 08 Apr 2011 12:45:50 +0200, Marijn wrote:
>> subject is valid for both its meanings:
>>
>> 1) my build fails and complains "make-stubborn-will-executor: foreign
>> interface not supported for this platform"
>>
>> 2) it seems impossible to disable foreign as I get this even if I pass
>> --disable-foreign to configure
>
> Providing `--disable-foreign' will definitely disable the foreign
> interface. Maybe you meant `--enable-foreign' above?

I get this behavior with both --enable-foreign and --disable-foreign,
but I don't see how it could be relevant that foreign interface is not
supported my platform when I disabled foreign. If I disable it then it
should skip this part which fails, right?

> The log that you enclosed shows `configure' being called with
> `--disable-foreign', and it looks like the log is showing a
> package-based build. Is the `--disable-foreign' flag built into the
> package?

I'm not sure I understand this question. Yes, I am using a package-based
build which passes all flags to configure including --disable-foreign.

>> PS It seems that configure.{ac,in} is missing from the source tarball.
>
> It's in the "racket" subdirectory of "src".

Ah thanks.

Marijn

-BEGIN PGP SIGNATURE-
Version: GnuPG v2.0.17 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAk2fAd4ACgkQp/VmCx0OL2xV0wCfc5sX+3cVKsU2BlelLjbzKW27
CX4AoLXYEntEvtKeorugEncXWHHCNPVD
=0qHt
-END PGP SIGNATURE-
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


Re: [racket-dev] racket-5.1{, .0.6} not building foreign interface not supported

2011-04-08 Thread Matthew Flatt
At Fri, 08 Apr 2011 14:38:54 +0200, Marijn wrote:
> I get this behavior with both --enable-foreign and --disable-foreign,
> but I don't see how it could be relevant that foreign interface is not
> supported my platform when I disabled foreign. If I disable it then it
> should skip this part which fails, right?

Oh, I understand now. You want the FFI to be disabled, but Racket
doesn't build without the FFI enabled.

I'll look into that, but Racket is evolving toward a point where the
FFI will be required always. We may be there already (in which case
`--disable-foreign' should be removed). As of v5.1, the FFI is required
for any drawing or GUI program (including DrRacket).

_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


Re: [racket-dev] racket-5.1{, .0.6} not building foreign interface not supported

2011-04-10 Thread Matthew Flatt
I've made `--disable-foreign' work again, at least for plain `racket'.

Just to be clear:

 * GRacket no longer works without the FFI (so the `--enable-gracket'
   and `--disable-foreign' combination in your build log isn't useful).

 * The `--disable-foreign' option may eventually disappear completely.

Meanwhile, `configure' now detects when libffi is already installed and
uses it (instead of building the version that is included with Racket).

At Fri, 8 Apr 2011 06:47:24 -0600, Matthew Flatt wrote:
> At Fri, 08 Apr 2011 14:38:54 +0200, Marijn wrote:
> > I get this behavior with both --enable-foreign and --disable-foreign,
> > but I don't see how it could be relevant that foreign interface is not
> > supported my platform when I disabled foreign. If I disable it then it
> > should skip this part which fails, right?
> 
> Oh, I understand now. You want the FFI to be disabled, but Racket
> doesn't build without the FFI enabled.
> 
> I'll look into that, but Racket is evolving toward a point where the
> FFI will be required always. We may be there already (in which case
> `--disable-foreign' should be removed). As of v5.1, the FFI is required
> for any drawing or GUI program (including DrRacket).

_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


Re: [racket-dev] racket-5.1{, .0.6} not building foreign interface not supported

2011-04-13 Thread Matthew Flatt
At Wed, 13 Apr 2011 11:54:44 +0200, Marijn wrote:
> > Meanwhile, `configure' now detects when libffi is already installed and
> > uses it (instead of building the version that is included with Racket).
> 
> I am now able to build with the bundled libffi, but when I delete that
> from the source and try to build it doesn't find the system library:
> 
> x86_64-pc-linux-gnu-gcc -march=native -ggdb -O2 -pipe -DMZ_DONT_USE_JIT
> -DMZ_USES_SHARED_LIB -I./../racket -I./../racket/include
> -I./../racket/src -Ilibffi/include -c ./foreign.c  -fPIC -DPIC -o
> .libs/foreign.o
> ./foreign.c:73:17: error: ffi.h: No such file or directory
> 
> libffi uses pkgconfig but I'd have to check up on how to use that again

I've pushed changed to make `configure' use `pkg-config' for libffi.

_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


Re: [racket-dev] racket-5.1{, .0.6} not building foreign interface not supported

2011-04-14 Thread Marijn
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Hi Matthew,

On 04/13/11 19:00, Matthew Flatt wrote:
> At Wed, 13 Apr 2011 11:54:44 +0200, Marijn wrote:
>>> Meanwhile, `configure' now detects when libffi is already installed and
>>> uses it (instead of building the version that is included with Racket).
>>
>> I am now able to build with the bundled libffi, but when I delete that
>> from the source and try to build it doesn't find the system library:
>>
>> x86_64-pc-linux-gnu-gcc -march=native -ggdb -O2 -pipe -DMZ_DONT_USE_JIT
>> -DMZ_USES_SHARED_LIB -I./../racket -I./../racket/include
>> -I./../racket/src -Ilibffi/include -c ./foreign.c  -fPIC -DPIC -o
>> .libs/foreign.o
>> ./foreign.c:73:17: error: ffi.h: No such file or directory
>>
>> libffi uses pkgconfig but I'd have to check up on how to use that again
> 
> I've pushed changed to make `configure' use `pkg-config' for libffi.

configure doesn't detect that I have a system libffi installed.
Specifically,

  AC_TRY_LINK([#include ],
  [ffi_cif cif; ]
  [ffi_prep_cif(&cif, FFI_DEFAULT_ABI, 0, &ffi_type_void,
NULL);],
 have_libffi=yes,
 have_libffi=no)

seems to be failing. If I fool it by inserting

  have_libffi=yes

after that test, then everything seems to build fine. I'm not sure how
to debug that AC_TRY_LINK invocation or what kind of information would
help you to do it, so please tell me if you need anything.

Marijn
-BEGIN PGP SIGNATURE-
Version: GnuPG v2.0.17 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAk2msuwACgkQp/VmCx0OL2zUPACguYhksn5Xvg+epnKJfx76qU8a
I1oAoLEn7gfFfgw3KWQGclYgpCMT51FK
=45zy
-END PGP SIGNATURE-
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


Re: [racket-dev] racket-5.1{, .0.6} not building foreign interface not supported

2011-04-14 Thread Matthew Flatt
At Thu, 14 Apr 2011 10:40:12 +0200, Marijn wrote:
> I'm not sure how
> to debug that AC_TRY_LINK invocation or what kind of information would
> help you to do it, so please tell me if you need anything.

Can you send me "config.log"? It shows the compilation commands and
error messages when AC_TRY_LINK tries to compile and link.

_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


Re: [racket-dev] racket-5.1{, .0.6} not building foreign interface not supported

2011-04-14 Thread Marijn
On 04/14/11 14:03, Matthew Flatt wrote:
> At Thu, 14 Apr 2011 10:40:12 +0200, Marijn wrote:
>> I'm not sure how
>> to debug that AC_TRY_LINK invocation or what kind of information would
>> help you to do it, so please tell me if you need anything.
> 
> Can you send me "config.log"? It shows the compilation commands and
> error messages when AC_TRY_LINK tries to compile and link.


configure:5116: result: yes
configure:5121: checking for libffi
configure:5173: x86_64-pc-linux-gnu-gcc -o conftest -march=native -ggdb
-O2 -pipe -I/usr/lib64/libffi-3.0.10rc8/include  -Wl,-O1
-Wl,--as-needed -lffi
conftest.c -ldl -lm  -ldl -lm -rdynamic >&5
/var/tmp/portage/dev-scheme/racket-999/temp/ccc4wcaM.o: In function `main':
/var/tmp/portage/dev-scheme/racket-999/work/racket-999/src/conftest.c:29: 
undefined
reference to `ffi_type_void'
/var/tmp/portage/dev-scheme/racket-999/work/racket-999/src/conftest.c:29: 
undefined
reference to `ffi_prep_cif'
collect2: ld returned 1 exit status
configure:5179: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define USE_SINGLE_FLOATS 1
| #define HAVE_LIBM 1
| #define HAVE_LIBDL 1
| #define MZ_USE_NOINLINE 1
| #define HAVE_CODESET 1
| #define HAVE_GETADDRINFO 1
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| /* end confdefs.h.  */
| #include 
| int
| main ()
| {
| ffi_cif cif;
|   ffi_prep_cif(&cif, FFI_DEFAULT_ABI, 0, &ffi_type_void,
NULL);
|   ;
|   return 0;
| }
configure:5195: result: no
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.

It was created by configure, which was
generated by GNU Autoconf 2.61.  Invocation command line was

  $ ./configure --prefix=/usr --build=x86_64-pc-linux-gnu 
--host=x86_64-pc-linux-gnu --mandir=/usr/share/man --infodir=/usr/share/info 
--datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib 
--libdir=/usr/lib64 --enable-gracket --disable-plot --disable-docs 
--enable-shared --disable-jit --enable-foreign --disable-places 
--disable-futures --disable-backtrace --disable-pthread --disable-perl --with-x

## - ##
## Platform. ##
## - ##

hostname = fusion
uname -m = x86_64
uname -r = 2.6.36-gentoo-r8
uname -s = Linux
uname -v = #1 SMP PREEMPT Wed Mar 9 14:02:29 CET 2011

/usr/bin/uname -p = Intel(R) Core(TM)2 Duo CPU E8600 @ 3.33GHz
/bin/uname -X = unknown

/bin/arch  = unknown
/usr/bin/arch -k   = unknown
/usr/convex/getsysinfo = unknown
/usr/bin/hostinfo  = unknown
/bin/machine   = unknown
/usr/bin/oslevel   = unknown
/bin/universe  = unknown

PATH: /usr/lib64/portage/bin/ebuild-helpers/4
PATH: /usr/lib64/portage/bin/ebuild-helpers
PATH: /usr/local/sbin
PATH: /usr/local/bin
PATH: /usr/sbin
PATH: /usr/bin
PATH: /sbin
PATH: /bin
PATH: /opt/bin
PATH: /usr/x86_64-pc-linux-gnu/gcc-bin/4.4.5


## --- ##
## Core tests. ##
## --- ##

configure:1693: loading site script /usr/share/config.site
| #!/bin/bash
| # Copyright 2009 Gentoo Foundation
| # Distributed under the terms of the GNU General Public License v2
| 
| TOPDIR=/usr/share/crossdev/include/site
| 
| config_site_arch() {
|   local host=$(echo ${CHOST/-/ } | awk '{print $1}')
| 
|   [[ ${host/arm.*eb/} != ${host} ]] && host=armeb
|   [[ ${host/arm/} != ${host} ]] && [[ ${host} != armeb ]] && host=arm
| 
|   [[ ${host/mips.*el/} != ${host} ]] && host=mipsel
| 
|   #[[ ${host/i[4-5]/6} != ${host} ]] && host=i686
| 
|   echo ${host}
| }
| 
| config_site_names() {
|   local site_arch=$(config_site_arch)
|   local sites=""
|   local x
| 
|   [[ ${CHOST/-linux-/} != $CHOST ]] && sites+=" linux ${site_arch}-linux"
|   [[ ${CHOST/darwin/} != $CHOST ]] && sites+=" darwin ${site_arch}-linux"
| 
|   [[ ${CHOST/-linux-uclibc/} != $CHOST ]] && sites+=" linux-uclibc 
${site_arch}-linux-uclibc"
|   [[ ${CHOST/-linux-gnu/} != $CHOST ]] && sites+=" linux-gnu 
${site_arch}-linux-gnu"
| 
|   [[ ${CHOST/-linux-uclibceabi/} != $CHOST ]] && sites+=" 
linux-uclibceabi ${site_arch}-linux-uclibceabi"
|   [[ ${CHOST/-linux-gnueabi/} != $CHOST ]] && sites+=" linux-gnueabi 
${site_arch}-linux-gnueabi"
| 
|   for x in ${sites} ${CHOST}; do
|   [[ -e ${TOPDIR}/${x} ]] && echo ${TOPDIR}/${x}
|   done
| }
| 
| if [[ ${CHOST} != "" ]]; then
|   sites="$(config_site_names)"
|   if [[ ${sites} != "" ]]; then
|   for site in ${sites}; do
|   echo "$(basename $0): loading site script ${site}"
|   . ${site}
|   done
|   fi
|   unset site

Re: [racket-dev] racket-5.1{, .0.6} not building foreign interface not supported

2011-04-14 Thread Marijn
On 04/14/11 14:03, Matthew Flatt wrote:
> At Thu, 14 Apr 2011 10:40:12 +0200, Marijn wrote:
>> I'm not sure how
>> to debug that AC_TRY_LINK invocation or what kind of information would
>> help you to do it, so please tell me if you need anything.
> 
> Can you send me "config.log"? It shows the compilation commands and
> error messages when AC_TRY_LINK tries to compile and link.


configure:5116: result: yes
configure:5121: checking for libffi
configure:5173: x86_64-pc-linux-gnu-gcc -o conftest -march=native -ggdb
-O2 -pipe -I/usr/lib64/libffi-3.0.10rc8/include  -Wl,-O1
-Wl,--as-needed -lffi
conftest.c -ldl -lm  -ldl -lm -rdynamic >&5
/var/tmp/portage/dev-scheme/racket-999/temp/ccc4wcaM.o: In function `main':
/var/tmp/portage/dev-scheme/racket-999/work/racket-999/src/conftest.c:29: 
undefined
reference to `ffi_type_void'
/var/tmp/portage/dev-scheme/racket-999/work/racket-999/src/conftest.c:29: 
undefined
reference to `ffi_prep_cif'
collect2: ld returned 1 exit status
configure:5179: $? = 1
configure: failed program was:
| /* confdefs.h.  */
| #define PACKAGE_NAME ""
| #define PACKAGE_TARNAME ""
| #define PACKAGE_VERSION ""
| #define PACKAGE_STRING ""
| #define PACKAGE_BUGREPORT ""
| #define USE_SINGLE_FLOATS 1
| #define HAVE_LIBM 1
| #define HAVE_LIBDL 1
| #define MZ_USE_NOINLINE 1
| #define HAVE_CODESET 1
| #define HAVE_GETADDRINFO 1
| #define STDC_HEADERS 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_MEMORY_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_UNISTD_H 1
| /* end confdefs.h.  */
| #include 
| int
| main ()
| {
| ffi_cif cif;
|   ffi_prep_cif(&cif, FFI_DEFAULT_ABI, 0, &ffi_type_void,
NULL);
|   ;
|   return 0;
| }
configure:5195: result: no
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.

It was created by configure, which was
generated by GNU Autoconf 2.61.  Invocation command line was

  $ ./configure --prefix=/usr --build=x86_64-pc-linux-gnu 
--host=x86_64-pc-linux-gnu --mandir=/usr/share/man --infodir=/usr/share/info 
--datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib 
--libdir=/usr/lib64 --enable-gracket --disable-plot --disable-docs 
--enable-shared --disable-jit --enable-foreign --disable-places 
--disable-futures --disable-backtrace --disable-pthread --disable-perl --with-x

## - ##
## Platform. ##
## - ##

hostname = fusion
uname -m = x86_64
uname -r = 2.6.36-gentoo-r8
uname -s = Linux
uname -v = #1 SMP PREEMPT Wed Mar 9 14:02:29 CET 2011

/usr/bin/uname -p = Intel(R) Core(TM)2 Duo CPU E8600 @ 3.33GHz
/bin/uname -X = unknown

/bin/arch  = unknown
/usr/bin/arch -k   = unknown
/usr/convex/getsysinfo = unknown
/usr/bin/hostinfo  = unknown
/bin/machine   = unknown
/usr/bin/oslevel   = unknown
/bin/universe  = unknown

PATH: /usr/lib64/portage/bin/ebuild-helpers/4
PATH: /usr/lib64/portage/bin/ebuild-helpers
PATH: /usr/local/sbin
PATH: /usr/local/bin
PATH: /usr/sbin
PATH: /usr/bin
PATH: /sbin
PATH: /bin
PATH: /opt/bin
PATH: /usr/x86_64-pc-linux-gnu/gcc-bin/4.4.5


## --- ##
## Core tests. ##
## --- ##

configure:1693: loading site script /usr/share/config.site
| #!/bin/bash
| # Copyright 2009 Gentoo Foundation
| # Distributed under the terms of the GNU General Public License v2
| 
| TOPDIR=/usr/share/crossdev/include/site
| 
| config_site_arch() {
|   local host=$(echo ${CHOST/-/ } | awk '{print $1}')
| 
|   [[ ${host/arm.*eb/} != ${host} ]] && host=armeb
|   [[ ${host/arm/} != ${host} ]] && [[ ${host} != armeb ]] && host=arm
| 
|   [[ ${host/mips.*el/} != ${host} ]] && host=mipsel
| 
|   #[[ ${host/i[4-5]/6} != ${host} ]] && host=i686
| 
|   echo ${host}
| }
| 
| config_site_names() {
|   local site_arch=$(config_site_arch)
|   local sites=""
|   local x
| 
|   [[ ${CHOST/-linux-/} != $CHOST ]] && sites+=" linux ${site_arch}-linux"
|   [[ ${CHOST/darwin/} != $CHOST ]] && sites+=" darwin ${site_arch}-linux"
| 
|   [[ ${CHOST/-linux-uclibc/} != $CHOST ]] && sites+=" linux-uclibc 
${site_arch}-linux-uclibc"
|   [[ ${CHOST/-linux-gnu/} != $CHOST ]] && sites+=" linux-gnu 
${site_arch}-linux-gnu"
| 
|   [[ ${CHOST/-linux-uclibceabi/} != $CHOST ]] && sites+=" 
linux-uclibceabi ${site_arch}-linux-uclibceabi"
|   [[ ${CHOST/-linux-gnueabi/} != $CHOST ]] && sites+=" linux-gnueabi 
${site_arch}-linux-gnueabi"
| 
|   for x in ${sites} ${CHOST}; do
|   [[ -e ${TOPDIR}/${x} ]] && echo ${TOPDIR}/${x}
|   done
| }
| 
| if [[ ${CHOST} != "" ]]; then
|   sites="$(config_site_names)"
|   if [[ ${sites} != "" ]]; then
|   for site in ${sites}; do
|   echo "$(basename $0): loading site script ${site}"
|   . ${site}
|   done
|   fi
|   unset site

Re: [racket-dev] racket-5.1{, .0.6} not building foreign interface not supported

2011-04-14 Thread Matthew Flatt
At Thu, 14 Apr 2011 16:56:30 +0200, Marijn wrote:
> configure:5173: x86_64-pc-linux-gnu-gcc -o conftest -march=native -ggdb
> -O2 -pipe -I/usr/lib64/libffi-3.0.10rc8/include  -Wl,-O1
> -Wl,--as-needed -lffi
> conftest.c -ldl -lm  -ldl -lm -rdynamic >&5

I mixed up LDFLAGS and LIBS, now fixed.

Another try?

_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev


Re: [racket-dev] racket-5.1{, .0.6} not building foreign interface not supported

2011-04-15 Thread Marijn
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

On 04/14/11 18:55, Matthew Flatt wrote:
> At Thu, 14 Apr 2011 16:56:30 +0200, Marijn wrote:
>> configure:5173: x86_64-pc-linux-gnu-gcc -o conftest -march=native -ggdb
>> -O2 -pipe -I/usr/lib64/libffi-3.0.10rc8/include  -Wl,-O1
>> -Wl,--as-needed -lffi
>> conftest.c -ldl -lm  -ldl -lm -rdynamic >&5
> 
> I mixed up LDFLAGS and LIBS, now fixed.
> 
> Another try?

Thanks Matthew, that did it.

Marijn

-BEGIN PGP SIGNATURE-
Version: GnuPG v2.0.17 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAk2oBJ0ACgkQp/VmCx0OL2wKfgCeNGCjzt6RH6l5H2hATqTJxv6t
I4gAn2IVLLDzKWxr66k9qoBcLzY5pebB
=F+Dz
-END PGP SIGNATURE-
_
  For list-related administrative tasks:
  http://lists.racket-lang.org/listinfo/dev