chicken-users
[Top][All Lists]
Advanced

[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

reply via email to

[Prev in Thread] Current Thread [Next in Thread]