From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: shookie@email.de Newsgroups: gmane.lisp.guile.bugs Subject: bug#13848: Statically linking guile-2.0. Date: Sun, 10 Mar 2013 19:54:22 +0100 Message-ID: <70756B90-0AA4-44C7-AA56-AB726F1DE1A2@email.de> References: <5130D52F.3000704@email.de> <87vc994y8f.fsf@gnu.org> <51354234.4000208@email.de> <87vc96i1st.fsf@gnu.org> <513612F7.90002@email.de> <87lia1kbd5.fsf@gnu.org> <513670C8.9000101@email.de> <874ngoazrt.fsf@gnu.org> <513B3CDA.1010409@email.de> <87txokxjf3.fsf@pobox.com> <6DCD2DC1-4838-448F-A056-CE5954C745A2@email.de> <87hakjxish.fsf@pobox.com> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 (Mac OS X Mail 6.2 \(1499\)) Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: quoted-printable X-Trace: ger.gmane.org 1362941722 6343 80.91.229.3 (10 Mar 2013 18:55:22 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sun, 10 Mar 2013 18:55:22 +0000 (UTC) Cc: Ludovic =?UTF-8?Q?Court=C3=A8s?= , 13848@debbugs.gnu.org To: Andy Wingo Original-X-From: bug-guile-bounces+guile-bugs=m.gmane.org@gnu.org Sun Mar 10 19:55:46 2013 Return-path: Envelope-to: guile-bugs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1UElPM-0008Ro-Qa for guile-bugs@m.gmane.org; Sun, 10 Mar 2013 19:55:45 +0100 Original-Received: from localhost ([::1]:34234 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UElP0-0004Xo-PF for guile-bugs@m.gmane.org; Sun, 10 Mar 2013 14:55:22 -0400 Original-Received: from eggs.gnu.org ([208.118.235.92]:36516) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UElOu-0004Xf-TI for bug-guile@gnu.org; Sun, 10 Mar 2013 14:55:20 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UElOr-0000w5-B3 for bug-guile@gnu.org; Sun, 10 Mar 2013 14:55:16 -0400 Original-Received: from debbugs.gnu.org ([140.186.70.43]:40240) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UElOr-0000vw-5u for bug-guile@gnu.org; Sun, 10 Mar 2013 14:55:13 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.72) (envelope-from ) id 1UElPe-0003l8-GJ for bug-guile@gnu.org; Sun, 10 Mar 2013 14:56:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: shookie@email.de Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-CC: bug-guile@gnu.org Resent-Date: Sun, 10 Mar 2013 18:56:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 13848 X-GNU-PR-Package: guile X-GNU-PR-Keywords: Original-Received: via spool by 13848-submit@debbugs.gnu.org id=B13848.136294172814404 (code B ref 13848); Sun, 10 Mar 2013 18:56:02 +0000 Original-Received: (at 13848) by debbugs.gnu.org; 10 Mar 2013 18:55:28 +0000 Original-Received: from localhost ([127.0.0.1]:44349 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1UElP5-0003kG-Ai for submit@debbugs.gnu.org; Sun, 10 Mar 2013 14:55:28 -0400 Original-Received: from mout.web.de ([212.227.15.3]:56270) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1UElP0-0003k1-Ig for 13848@debbugs.gnu.org; Sun, 10 Mar 2013 14:55:25 -0400 Original-Received: from [192.168.0.3] ([92.231.229.87]) by smtp.web.de (mrweb003) with ESMTPSA (Nemesis) id 0LwHmQ-1UpQIq3Zle-017NKR; Sun, 10 Mar 2013 19:54:23 +0100 In-Reply-To: <87hakjxish.fsf@pobox.com> X-Mailer: Apple Mail (2.1499) X-Provags-ID: V02:K0:qyeZwiaYC4hz07LPtJjj+63fN8h+Uz/Zbv2poJ4mF7E ovHcvjTzzPGTI8+OTNXGY0pAqWELtIoSFItObq5yuesrOtMXrM cw+lR+vwYJ5hRN8DTAFd5wzjjD0G7FttjYkQoi0qXvog09f/z+ 14u3dKrgUL6uEM8jVzGjAc+L8R5vY2/xvDB13EnaF8EtBA8GwN 4TEul5FMkhnWhKgZeKDwg== X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 140.186.70.43 X-BeenThere: bug-guile@gnu.org List-Id: "Bug reports for GUILE, GNU's Ubiquitous Extension Language" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-guile-bounces+guile-bugs=m.gmane.org@gnu.org Original-Sender: bug-guile-bounces+guile-bugs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.lisp.guile.bugs:6923 Archived-At: On 10.03.2013, at 18:32, Andy Wingo wrote: > Hi :) >=20 > On Sun 10 Mar 2013 05:09, shookie@email.de writes: >=20 >> The struct timespec is still an issue in a mingw build on windows, = but >> I know how to handle it. >=20 > How do you handle it, for the record? by adding=20 #ifndef _TIMESPEC_DEFINED struct timespec { time_t tv_sec; long tv_nsec; }; #endif to lib/stat-time.h and libguile/threads.c. Don't particularly like it, = but that's what works. If you don't wanna make that part of the main = source tree, I got no problem making a patch part of my build process. I = gotta do some patching anyway to be able to have relative/runtime = initialized load paths on windows. >=20 > I assume you are using pthreads-w32? /* This is an implementation of the threads API of POSIX 1003.1-2001. * * = --------------------------------------------------------------------------= * * Pthreads-win32 - POSIX Threads Library for Win32 * Copyright(C) 1998 John E. Bossom * Copyright(C) 1999,2005 Pthreads-win32 contributors * * Contact Email: rpj@callisto.canberra.edu.au That's what the pthread.h says. >=20 >> As I said, I build everything on windows. >>=20 >> I have to build bdw-gc with --enable-threads=3Dposix. If I don't, I = get errors along this line: >>=20 >> = ./.libs/libguile-2.0.a(libguile_2.0_la-threads.o):threads.c:(.text+0xfb8):= undefined reference to `GC_pthread_detach' >> = ./.libs/libguile-2.0.a(libguile_2.0_la-threads.o):threads.c:(.text+0x10de)= : undefined reference to `GC_pthread_create' >> = ./.libs/libguile-2.0.a(libguile_2.0_la-threads.o):threads.c:(.text+0x1221)= : undefined reference to `GC_pthread_detach' >> = ./.libs/libguile-2.0.a(libguile_2.0_la-threads.o):threads.c:(.text+0x12d1)= : undefined reference to `GC_pthread_create' >=20 > You can build bdw-gc without threads, and then build Guile without > threads. In my builds I was doing --enable-threads=3Dposix. >=20 >> The problem is, when I do build bdw-gc with posix threads, the guile >> module compiling is all broken, it periodically drops messages like >> this: >>=20 >> GUILEC ice-9/eval.go >> Backtrace: >> In unknown file: >> ?: 3 [apply-smob/1 # #t ...] >> ?: 2 [apply-smob/1 #] >> ?: 1 [primitive-eval ((@ # %) (begin # # #))] >> ?: 0 [chmod # 438] >=20 > You passed the `GEN guile-procedures.texi' phase? If so, things are > already going well. That's the first time the newly built Guile is > used, and if it went through it means at least you have a functional > Guile. >=20 > This problem sounds similar to something Eli Zaretskii reported: > http://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D10474#14: >=20 > The next problem is here: >=20 > GUILEC ice-9/eval.go > Backtrace: > In unknown file: > ?: 5 [boot-closure #t # ...] > ?: 4 [catch-closure] > ?: 3 [primitive-eval ((@ # %) (begin # # #))] > ?: 2 [chmod # 438] > ?: 1 [boot-closure system-error "chmod" ...] > ?: 0 [delete-file "ice-9/eval.go.9IiPxC"] >=20 > ERROR: In procedure delete-file: > ERROR: In procedure delete-file: Permission denied >=20 > This happens because Guile calls fchmod, which is #define'd to -1 on > MinGW. >=20 > However the code is different now, than it was when Eli made his = report; > now if you don't have fchmod (as mingw does not), chmod only accepts > strings -- and here it seems that we are trying to chmod a port. I = will > see what I can do here. Sounds promising! Regards Jan Schukat P.S. I guess I append some more info, namely my configure command line, = and the most interesting build output section (after that its mostly = backtraces from guile compiling): ./configure --prefix=3D/c/Users/shookie/guiletest/lib --disable-shared = --disable-fast-install --with-gnu-ld --disable-deprecated --enable-nls = --with-libgmp-prefix=3D/c/Users/shookie/guiletest/lib = LIBFFI_CFLAGS=3D'-I/c/Use rs/shookie/guiletest/lib/lib/libffi-3.0.12/include' LIBFFI_LIBS=3D'-lffi' = BDW_GC_LIBS=3D'-lgc' BDW_GC_CFLAGS=3D'-I/c/Users/shookie/guiletest/lib' = CPPFLAGS=3D'-D HAVE_GC_SET_FINALIZER_NOTIFIER -D = HAVE_GC_GET_FREE_SPACE_DIVISOR -D HAVE_GC_GET_HEAP _USAGE_SAFE -D HAVE_GC_SET_FINALIZE_ON_DEMAND' CFLAGS=3D'-s' && make = install =85. CC libguile_2.0_la-threads.lo threads.c: In function 'scm_pthread_cond_timedwait': threads.c:2006:3: warning: passing argument 3 of = 'pthread_cond_timedwait' from incompatible pointer type [enabled by = default] In file included from ../lib/time.h:369:0, from = c:\mingw\bin\../lib/gcc/mingw32/4.7.2/../../../../include/sys/time.h:3, from ../lib/sys/time.h:30, from ../libguile/scmconfig.h:26, from ../libguile/bdw-gc.h:24, from threads.c:27: = c:\mingw\bin\../lib/gcc/mingw32/4.7.2/../../../../include/pthread.h:1097:3= 1: note: expected 'const struct timespec *' but argument is of type = 'const struct scm_t_timespec *' CC libguile_2.0_la-throw.lo CC libguile_2.0_la-trees.lo CC libguile_2.0_la-uniform.lo CC libguile_2.0_la-values.lo CC libguile_2.0_la-variable.lo CC libguile_2.0_la-vectors.lo CC libguile_2.0_la-version.lo CC libguile_2.0_la-vm.lo CC libguile_2.0_la-vports.lo CC libguile_2.0_la-weaks.lo CCLD libguile-2.0.la libtool: link: warning: library `c:/mingw/lib/libunistring.la' was = moved. copying selected object files to avoid basename conflicts... CC guile-guile.o CCLD guile.exe libtool: link: warning: library `c:/mingw/lib/libunistring.la' was = moved. GEN guile-procedures.texi rm -f guile-procedures.txt makeinfo --force -o guile-procedures.txt guile-procedures.texi || test = -f guile-procedures.txt = /c/Users/shookie/guiletest/lib/guile-2.0/libguile//guile-procedures.texi:1= 0246: Cross reference to nonexistent node `Backslash Escapes' (perhaps = incorrect sectioning?). = /c/Users/shookie/guiletest/lib/guile-2.0/libguile//guile-procedures.texi:9= 941: Cross reference to nonexistent node `Network Address Conversion' = (perhaps incorrect sectioning?). = /c/Users/shookie/guiletest/lib/guile-2.0/libguile//guile-procedures.texi:9= 880: Cross reference to nonexistent node `Network Databases' (perhaps = incorrect sectioning?). = /c/Users/shookie/guiletest/lib/guile-2.0/libguile//guile-procedures.texi:9= 830: Cross reference to nonexistent node `Network Databases' (perhaps = incorrect sectioning?). = /c/Users/shookie/guiletest/lib/guile-2.0/libguile//guile-procedures.texi:9= 304: Cross reference to nonexistent node `Hash Tables' (perhaps = incorrect sectioning?). = /c/Users/shookie/guiletest/lib/guile-2.0/libguile//guile-procedures.texi:9= 297: Cross reference to nonexistent node `Hash Tables' (perhaps = incorrect sectioning?). = /c/Users/shookie/guiletest/lib/guile-2.0/libguile//guile-procedures.texi:9= 290: Cross reference to nonexistent node `Hash Tables' (perhaps = incorrect sectioning?). = /c/Users/shookie/guiletest/lib/guile-2.0/libguile//guile-procedures.texi:9= 204: Cross reference to nonexistent node `File Ports' (perhaps incorrect = sectioning?). = /c/Users/shookie/guiletest/lib/guile-2.0/libguile//guile-procedures.texi:8= 569: Cross reference to nonexistent node `Vtables' (perhaps incorrect = sectioning?). = /c/Users/shookie/guiletest/lib/guile-2.0/libguile//guile-procedures.texi:8= 187: Cross reference to nonexistent node `Locales' (perhaps incorrect = sectioning?). = /c/Users/shookie/guiletest/lib/guile-2.0/libguile//guile-procedures.texi:8= 006: Cross reference to nonexistent node `Bitwise Operations' (perhaps = incorrect sectioning?). = /c/Users/shookie/guiletest/lib/guile-2.0/libguile//guile-procedures.texi:6= 697: Cross reference to nonexistent node `Character Sets' (perhaps = incorrect sectioning?). = /c/Users/shookie/guiletest/lib/guile-2.0/libguile//guile-procedures.texi:6= 675: Cross reference to nonexistent node `Character Sets' (perhaps = incorrect sectioning?). = /c/Users/shookie/guiletest/lib/guile-2.0/libguile//guile-procedures.texi:6= 619: Cross reference to nonexistent node `Multiple Values' (perhaps = incorrect sectioning?). = /c/Users/shookie/guiletest/lib/guile-2.0/libguile//guile-procedures.texi:5= 563: Cross reference to nonexistent node `File Ports' (perhaps incorrect = sectioning?). = /c/Users/shookie/guiletest/lib/guile-2.0/libguile//guile-procedures.texi:5= 272: Cross reference to nonexistent node `Ports and File Descriptors' = (perhaps incorrect sectioning?). = /c/Users/shookie/guiletest/lib/guile-2.0/libguile//guile-procedures.texi:5= 261: Cross reference to nonexistent node `Ports and File Descriptors' = (perhaps incorrect sectioning?). = /c/Users/shookie/guiletest/lib/guile-2.0/libguile//guile-procedures.texi:5= 250: Cross reference to nonexistent node `Ports and File Descriptors' = (perhaps incorrect sectioning?). = /c/Users/shookie/guiletest/lib/guile-2.0/libguile//guile-procedures.texi:3= 319: Cross reference to nonexistent node `File Ports' (perhaps incorrect = sectioning?). = /c/Users/shookie/guiletest/lib/guile-2.0/libguile//guile-procedures.texi:3= 126: Cross reference to nonexistent node `Locales' (perhaps incorrect = sectioning?). = /c/Users/shookie/guiletest/lib/guile-2.0/libguile//guile-procedures.texi:2= 797: Cross reference to nonexistent node `Hash Tables' (perhaps = incorrect sectioning?). = /c/Users/shookie/guiletest/lib/guile-2.0/libguile//guile-procedures.texi:2= 790: Cross reference to nonexistent node `Hash Tables' (perhaps = incorrect sectioning?). = /c/Users/shookie/guiletest/lib/guile-2.0/libguile//guile-procedures.texi:2= 783: Cross reference to nonexistent node `Hash Tables' (perhaps = incorrect sectioning?). = /c/Users/shookie/guiletest/lib/guile-2.0/libguile//guile-procedures.texi:2= 213: Cross reference to nonexistent node `Character Encoding of Source = Files' (perhaps incorrect sectioning?). = /c/Users/shookie/guiletest/lib/guile-2.0/libguile//guile-procedures.texi:2= 207: Cross reference to nonexistent node `Ports and File Descriptors' = (perhaps incorrect sectioning?). = /c/Users/shookie/guiletest/lib/guile-2.0/libguile//guile-procedures.texi:2= 189: Cross reference to nonexistent node `Ports and File Descriptors' = (perhaps incorrect sectioning?). = /c/Users/shookie/guiletest/lib/guile-2.0/libguile//guile-procedures.texi:1= 575: Cross reference to nonexistent node `Ports and File Descriptors' = (perhaps incorrect sectioning?). = /c/Users/shookie/guiletest/lib/guile-2.0/libguile//guile-procedures.texi:1= 563: Cross reference to nonexistent node `Closing' (perhaps incorrect = sectioning?). make[5]: Entering directory = `/c/Users/shookie/guiletest/lib/guile-2.0/libguile' /bin/mkdir -p '/c/Users/user/guiletest/lib/lib'