[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Chicken-users] Problem compiling static executable on Mac OS X
From: |
Henrik Tramberend |
Subject: |
Re: [Chicken-users] Problem compiling static executable on Mac OS X |
Date: |
Thu, 5 May 2005 19:50:12 +0200 |
It seems that Mac OS X does not fully support building static
binaries. From the gcc man page:
-static
On systems that support dynamic linking, this prevents
linking with
the shared libraries. On other systems, this option has
no effect.
This option will not work on Mac OS X unless all
libraries (includ-
ing libgcc.a) have also been compiled with -static.
Since neither
a static version of libSystem.dylib nor crt0.o are
provided, this
option is not useful to most people.
Because csc explicitly passes the names of the static chicken
libraries as arguments to gcc, it is still possible to build
executables that contain everything related to chicken using the -
static flag. I patched the csc.scm.in file to not issue the -static
flag to gcc on Mac OS X in that case.
*** csc.scm.in Thu May 5 19:45:56 2005
--- csc.scm.in.patched Thu May 5 19:43:36 2005
***************
*** 719,725 ****
(string-append link-output-flag (cleanup-
filename target-filename))
(append linking-optimization-options files
link-options) )
" ")
! (if (and static (not win)) " -static " "")
(if static extra-libraries extra-shared-libraries) ) ) )
(exit last-exit-code) )
(when (and win (not static) (not shared))
--- 719,725 ----
(string-append link-output-flag (cleanup-
filename target-filename))
(append linking-optimization-options files
link-options) )
" ")
! (if (and static (not win) (not osx)) " -static " "")
(if static extra-libraries extra-shared-libraries) ) ) )
(exit last-exit-code) )
(when (and win (not static) (not shared))
Regards
Henrik
On 2005-03-05, at 08:43, felix winkelmann wrote:
Hm... I have no idea (and no OS X system to test it).
Can somebody with access to a Mac confirm this problem?
cheers,
felix
On 5/2/05, Henrik Tramberend <address@hidden
hannover.de> wrote:
Hi,
i seem to be unable to compile a static chicken executable on Mac
OS X.
csc -v -static static.scm
/opt/chicken/bin/chicken static.scm -output-file static.c -feature
chicken-compile-static -quiet
gcc static.c -o static.o -g -DHAVE_CHICKEN_CONFIG_H -c -
DC_NO_PIC_NO_DLL -I /opt/chicken/include
rm static.c
gcc -o static static.o /opt/chicken/lib/libchicken.a -L/opt/chicken/
lib -static -ldl -lm
/usr/bin/ld: can't locate file for: -lcrt0.o
collect2: ld returned 1 exit status
*** Shell command terminated with exit status 1: gcc -o static
static.o /opt/chicken/lib/libchicken.a -L/opt/chicken/lib -static -
ldl -lm
Any idea what might be wrong here?
Regards
Henrik
_______________________________________________
Chicken-users mailing list
address@hidden
http://lists.nongnu.org/mailman/listinfo/chicken-users