Kai-Martin Knaak
2014-09-23 02:54:53 UTC
Hi guys.
You may remember that there is no current windows version of geda-gaf.
I'd really like to see some of the improvements of the last years in
the windows version too. So I keep trying. The road block is the
dependence on guile 2. Unfortunately, minipack and MXE both only support
guile 1.8 out of the box. Last weekend I decided to give MXE a shot
(again).
So this is what I did:
1) git cloned the current master branch of MXE
2) build the environment with
make gcc
3) bumped the version in guile.mk :
/----------------
PKG := guile
#$(PKG)_IGNORE := 2%
$(PKG)_VERSION := 2.0.11
$(PKG)_CHECKSUM := ae86544b39048a160f4db1c0653a79b40b6c1ee6
(...)
define $(PKG)_BUILD
(...)
'$(TARGET)-gcc' \
-W -Wall -disable-Werror -ansi -pedantic \
'$(2).c' -o '$(PREFIX)/$(TARGET)/bin/test-guile.exe' \
`'$(TARGET)-pkg-config' guile-$(call SHORT_PKG_VERSION,$(PKG))
--cflags --libs` \ -DGUILE_MAJOR_MINOR=\"$(call
SHORT_PKG_VERSION,$(PKG))\" endef
\----------------
In addition I added "-disable-Werror". The original "-Werror" flag made
the build process exit at the config stage. It complained about the
type "long long", which allegedly is not supported in c90.
With this flag warnings are ignored and the build declares success.
However, I get immediate segfault if I start the resulting guile.exe with
wine32. This should bring up a simple command line environment. Instead,
I get:
/----------------------------
/usr/local/src/minipack/result/bin$ wine32 guile.exe
wine: Unhandled page fault on read access to 0x0000001d at address
0x709ca8eb (thread 0040), starting debugger... Unhandled exception: page
fault on read access to 0x0000001d in 32-bit code (0x709ca8eb). Register
dump: CS:0023 SS:002b DS:002b ES:002b FS:0063 GS:006b
EIP:709ca8eb ESP:004327c0 EBP:00000015 EFLAGS:00010202( R- -- I - -
- ) EAX:00c7ffc0 EBX:709c2760 ECX:00000004 EDX:00000000
ESI:00000000 EDI:00000000
(...)
00000022 (D) Z:\usr\local\src\minipack\result\bin\guile.exe
00000033 0
00000032 0
00000021 0
0000002e 0 <==
\------------------------------
I am lost here. How would I debug this? Any lead? Would gdb be an option?
What would be the most likely culprit?
---<)kaimartin(>---
PS: My host system is on Debian/testing/jessie, fairly recently updated.
PPS: The main text of this post went to the MXE list, too. Maybe some of
the devs there points me to the right direction.
You may remember that there is no current windows version of geda-gaf.
I'd really like to see some of the improvements of the last years in
the windows version too. So I keep trying. The road block is the
dependence on guile 2. Unfortunately, minipack and MXE both only support
guile 1.8 out of the box. Last weekend I decided to give MXE a shot
(again).
So this is what I did:
1) git cloned the current master branch of MXE
2) build the environment with
make gcc
3) bumped the version in guile.mk :
/----------------
PKG := guile
#$(PKG)_IGNORE := 2%
$(PKG)_VERSION := 2.0.11
$(PKG)_CHECKSUM := ae86544b39048a160f4db1c0653a79b40b6c1ee6
(...)
define $(PKG)_BUILD
(...)
'$(TARGET)-gcc' \
-W -Wall -disable-Werror -ansi -pedantic \
'$(2).c' -o '$(PREFIX)/$(TARGET)/bin/test-guile.exe' \
`'$(TARGET)-pkg-config' guile-$(call SHORT_PKG_VERSION,$(PKG))
--cflags --libs` \ -DGUILE_MAJOR_MINOR=\"$(call
SHORT_PKG_VERSION,$(PKG))\" endef
\----------------
In addition I added "-disable-Werror". The original "-Werror" flag made
the build process exit at the config stage. It complained about the
type "long long", which allegedly is not supported in c90.
With this flag warnings are ignored and the build declares success.
However, I get immediate segfault if I start the resulting guile.exe with
wine32. This should bring up a simple command line environment. Instead,
I get:
/----------------------------
/usr/local/src/minipack/result/bin$ wine32 guile.exe
wine: Unhandled page fault on read access to 0x0000001d at address
0x709ca8eb (thread 0040), starting debugger... Unhandled exception: page
fault on read access to 0x0000001d in 32-bit code (0x709ca8eb). Register
dump: CS:0023 SS:002b DS:002b ES:002b FS:0063 GS:006b
EIP:709ca8eb ESP:004327c0 EBP:00000015 EFLAGS:00010202( R- -- I - -
- ) EAX:00c7ffc0 EBX:709c2760 ECX:00000004 EDX:00000000
ESI:00000000 EDI:00000000
(...)
00000022 (D) Z:\usr\local\src\minipack\result\bin\guile.exe
00000033 0
00000032 0
00000021 0
0000002e 0 <==
\------------------------------
I am lost here. How would I debug this? Any lead? Would gdb be an option?
What would be the most likely culprit?
---<)kaimartin(>---
PS: My host system is on Debian/testing/jessie, fairly recently updated.
PPS: The main text of this post went to the MXE list, too. Maybe some of
the devs there points me to the right direction.
--
Kai-Martin Knaak
--
Kai-Martin Knaak
Kai-Martin Knaak
--
Kai-Martin Knaak