[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Chicken-users] chicken 4.8.0.5 on Cygwin - static build
From: |
Claude Marinier |
Subject: |
Re: [Chicken-users] chicken 4.8.0.5 on Cygwin - static build |
Date: |
Sun, 30 Mar 2014 16:20:19 -0400 (EDT) |
User-agent: |
Alpine 2.02 (DEB 1266 2009-07-14) |
On Sat, 29 Mar 2014, Claude Marinier wrote:
Does anyone know how to compile a static program under Cygwin? It cannot
find a library; the name may be "cygchicken0.a" (I switched back to debian
and cannot remember exactly).
Here is better information.
The command and error are
$ csc -deploy -static-libs -o sJoy sJoy.scm -L -lcygwin
gcc: error: /usr/local/lib/cygchicken-0.a: No such file or directory
The file /usr/local/lib/cygchicken-0.dll exists.
This matters because of the Cygwin licensing.
Cygwin™ Open Source Licensing Exception
As a special exception to GPLv3+, Red Hat grants you permission to link
software whose sources are distributed under a license that satisfies
the Open Source Definition with libcygwin.a, without libcygwin.a itself
causing the resulting program to be covered by GPLv3+.
This means that you can port an Open Source application to Cygwin™, and
distribute that executable as if it didn't include a copy of libcygwin.a
linked into it. Note that this does not apply to the Cygwin™ DLL
itself. If you distribute a (possibly modified) version of the Cygwin™
DLL, you must adhere to the terms of the GPLv3+, including the
requirement to provide sources for the Cygwin™ DLL, unless you have
obtained a special Cygwin™ license to distribute the Cygwin™ DLL in
only its binary form.
From the above, it seems I can link statically to the Cygwin library but
must distribute source with the DLL. Statically linking to the chicken
library would then be really nice.
Even though I do not indend to distribute sJoy, I may want to distribute
something else in the future.
What I have tried.
$ csc -c sJoy.scm
$ gcc -o sJoy sJoy.o -static -L/usr/local/lib -lchicken -lm
$ ls -ld sJoy*
-rwxr-xr-x 1 Claude None 1943017 Mar 30 15:26 sJoy.exe
-rw-r--r-- 1 Claude None 51769 Mar 30 15:24 sJoy.o
-rwxr-xr-x 1 Claude None 9725 Mar 29 22:27 sJoy.scm
The executable no longer needs the chicken DLL but still needs the Cygwin
DLL.
Does anyone know how to satisfy the Cygwin license?
I would prefer to use MinGW but the build does not work. There are no
errors and "install" seems OK.
$ csi
CHICKEN
(c) 2008-2013, The Chicken Team
(c) 2000-2007, Felix L. Winkelmann
Version 4.8.0.5 (stability/4.8.0) (rev 5bd53ac)
windows-mingw32-x86 [ manyargs dload ptables ]
compiled 2013-10-03 on aeryn.xorinia.dim (Darwin)
; loading C:/MinGW/msys/1.0/home/Claude/.csirc ...
Error: (import) during expansion of (import ...) - cannot import from
undefined module: parley
Call history:
<syntax> (use parley)
<syntax> (##core#require-extension (parley) #t)
<syntax> (##core#begin (##core#begin (##sys#require (quote
parley)) (import parley)) (##core#undefined))
<syntax> (##core#begin (##sys#require (quote parley)) (import
parley))
<syntax> (##sys#require (quote parley))
<syntax> (quote parley)
<syntax> (##core#quote parley)
<syntax> (import parley) <--
Trying to install stty (the likely reason for the problem with parley)
does not work. It complains about the location and then fails.
$ chicken-install -location http://code.call-cc.org/cgi-bin/henrietta.cgi
setup-helper
retrieving ...
connecting to host "code.call-cc.org", port 80 ...
requesting "/cgi-bin/henrietta.cgi?name=setup-helper&mode=default" ...
reading response ...
HTTP/1.1 200 OK
Date: Sun, 30 Mar 2014 20:07:16 GMT
Server: Apache
Connection: close
Vary: Accept-Encoding
Transfer-Encoding: chunked
Content-Type: text/plain
reading chunks .
reading files ...
./setup-helper.meta
./setup-helper-mod.scm
./setup-helper.setup
./setup-helper.scm
setup-helper located at
C:/Users/Claude/AppData/Local/Temp/temp3d54.504/setup-helper
checking platform for `setup-helper' ...
checking dependencies for `setup-helper' ...
install order:
("setup-helper")
installing setup-helper:1.5.3 ...
changing current directory to
C:/Users/Claude/AppData/Local/Temp/temp3d54.504/setup-helper
"\usr\local\bin\csi" -bnq -setup-mode -e "(require-library setup-api)"
-e "(import setup-api)" -e "(setup-error-handling)" -e "(extension-name-and-version '(\"setup-helper\" \"1.5.3\"))"
"C:\Users\Claude\AppData\Local\Temp\temp3d54.504\setup-helper\setup-helper.setup"
The system cannot find the path specified.
Error: shell command terminated with nonzero exit code
1
"\"\\usr\\local\\bin\\csi\" -bnq -setup-mode -e \"(require-library setup-api)\"
...
Does anyone know how to fix this?
Merci.
--
Claude Marinier
- Re: [Chicken-users] chicken 4.8.0.5 on Cygwin - static build,
Claude Marinier <=