[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Mingw-cross-env-list] guile, v2.0.11
From: |
Kai-Martin Knaak |
Subject: |
[Mingw-cross-env-list] guile, v2.0.11 |
Date: |
Sat, 9 Aug 2014 17:54:47 +0200 |
Hi.
I'd like to cross compile the electronics design suite geda for windows
http://geda-project.org
The core of the schematic component depends on the scheme dialect
guile. So I was pleased to see guile among the packages included in the
list of supported packages. However, the mxe recipe guile.mk loads and
compiles guile 1.8.8 but geda needs at least guile 2.0.0
So I tried to bump the version in the mxe recipe. Essentially, I just set
$(PKG)_VERSION to 2.0.11 and $(PKG)_CHECKSUM to the string given in the
release message of this version.
The sources got downloaded fine and cross compile started as it should.
As expected, it stumbled at some point and exited with errors. According
to the log in
/usr/local/src/mxe/log/guile_i686-pc-mingw32.static
the build system failed to find sys/selected.h :
/--------------------
(...)
'i686-pc-mingw32.static-gcc' -W -Wall -Werror -ansi -pedantic
'./src/guile-test.c' -o
'/usr/local/src/mxe/usr/i686-pc-mingw32.static/bin/test-guile.exe'
`'i686-pc-mingw32.static-pkg-config' guile-2.0 --cflags --libs`
-DGUILE_MAJOR_MINOR=\"2.0\"
In file included
from
/usr/local/src/mxe/usr/i686-pc-mingw32.static/include/guile/2.0/libguile/threads.h:31:0,
from
/usr/local/src/mxe/usr/i686-pc-mingw32.static/include/guile/2.0/libguile/async.h:28,
from
/usr/local/src/mxe/usr/i686-pc-mingw32.static/include/guile/2.0/libguile.h:37,
from ./src/guile-test.c:8:
/usr/local/src/mxe/usr/i686-pc-mingw32.static/include/guile/2.0/libguile/iselect.h:31:24:
fatal error: sys/select.h: No such file or directory
#include <sys/select.h>
^
compilation terminated.
Makefile:374: recipe for target
'build-only-guile_i686-pc-mingw32.static' failed
make[1]: *** [build-only-guile_i686-pc-mingw32.static] Error 1
make[1]: Leaving directory '/usr/local/src/mxe'
real 1m54.223s
user 3m22.628s
sys 0m20.144s
(...)
\--------------------
The file sys/select.h is installed on my host system and in the mxe environment,
too. Probably, because it is part of libc6
/-----------
$ locate sys/select.h
/usr/include/sys/select.h
/usr/include/x86_64-linux-gnu/sys/select.h
/usr/local/src/mxe/tmp-guile-i686-pc-mingw32.static/guile-2.0.11/lib/sys/select.h
\-----------
libguile/iselect.h is quite short. Without comments it boils down to
three includes and a type cast:
/------iselect.h--------
#ifndef SCM_ISELECT_H
#define SCM_ISELECT_H
#include "libguile/__scm.h"
#include <sys/types.h>
#include <sys/select.h>
SCM_API int scm_std_select (int fds,
fd_set *rfds,
fd_set *wfds,
fd_set *efds,
struct timeval *timeout);
#define SELECT_TYPE fd_set
#endif /* SCM_ISELECT_H */
\--------------
If I assume, the linker analyses the file from top to bottom, this
implies that it was able to locate <sys/types.h>. I tried to check
by commenting out the <sys/select.h> line. However, iselect.h got
rewritten during "mxe make guile" and my changes did not influence
the outcome.
I guess, my mxe set-up needs some tweaking. But where should I look?
Any hints appreciated,
---<)kaimartin(>---
PS: My host system is on debian/testing, updated weekly.
--
Kai-Martin Knaak
signature.asc
Description: PGP signature
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Mingw-cross-env-list] guile, v2.0.11,
Kai-Martin Knaak <=