chicken-hackers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Chicken-hackers] csc -Ob (-O5) bug


From: Derrell Piper
Subject: [Chicken-hackers] csc -Ob (-O5) bug
Date: Tue, 15 Dec 2009 17:01:01 -0500

Hi,

There's a bug with the unsafe processing in csc.  When it's compiling unsafe, 
it doesn't reflect this out to the 'install_name_tool' invocation, resulting in 
no fixup in the resulting image.  So if libuchicken.dylib doesn't happen to be 
in the standard library search path, it blows up at runtime:

fluffy656% csc -verbose hello.scm
/usr/local/chicken/bin/chicken hello.scm -output-file hello.c -verbose
Loading compiler extensions...
debugging info: calltrace
loading identifier database /usr/local/chicken/lib/chicken/4/modules.db ...
compiling `hello.scm' ...
pass: source
pass: canonicalized
pass: initial node tree
pass: cps
pass: analysis
pass: optimized-iteration
pass: analysis
pass: optimized-iteration
pass: analysis
pass: optimized-iteration
pass: analysis
pass: optimized
pass: final-analysis
pass: closure-converted
generating `hello.c' ...
compilation finished.
gcc hello.c -o hello.o -c -no-cpp-precomp -fno-strict-aliasing -fno-common 
-DHAVE_CHICKEN_CONFIG_H -m64 -DC_ENABLE_PTABLES -Os -fomit-frame-pointer 
-I/usr/local/chicken/include
rm hello.c
gcc hello.o -o hello -m64 -L/usr/local/chicken/lib -lchicken -lm
install_name_tool -change libchicken.dylib 
/usr/local/chicken/lib/libchicken.dylib hello
rm hello.o
fluffy657% otool -L hello
hello:
        /usr/local/chicken/lib/libchicken.dylib (compatibility version 1.0.0, 
current version 1.0.0)
        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current 
version 125.0.0)
fluffy658% ./hello
Hello, World!

fluffy659% csc -O5 -verbose hello.scm
/usr/local/chicken/bin/chicken hello.scm -output-file hello.c -unsafe-libraries 
-optimize-level 5 -verbose
Loading compiler extensions...
debugging info: none
loading identifier database /usr/local/chicken/lib/chicken/4/modules.db ...
compiling `hello.scm' ...
pass: source
pass: canonicalized
pass: initial node tree
pass: analysis
pass: lambda lifted
pass: cps
pass: analysis
pass: optimized-iteration
pass: analysis
pass: optimized-iteration
pass: analysis
pass: optimized-iteration
pass: analysis
pass: optimized
pass: final-analysis
pass: closure-converted
generating `hello.c' ...
compilation finished.
gcc hello.c -o hello.o -c -no-cpp-precomp -fno-strict-aliasing -fno-common 
-DHAVE_CHICKEN_CONFIG_H -m64 -DC_ENABLE_PTABLES -Os -fomit-frame-pointer -O3 
-fomit-frame-pointer -I/usr/local/chicken/include
rm hello.c
gcc hello.o -o hello -m64 -L/usr/local/chicken/lib -luchicken -lm
install_name_tool -change libchicken.dylib 
/usr/local/chicken/lib/libchicken.dylib hello
rm hello.o
fluffy660% otool -L hello
hello:
        libuchicken.dylib (compatibility version 1.0.0, current version 1.0.0)
        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current 
version 125.0.0)
fluffy661% ./hello
dyld: Library not loaded: libuchicken.dylib
  Referenced from: /Users/ddp/src/scm/./hello
  Reason: image not found
Trace/BPT trap
fluffy662% install_name_tool -change libuchicken.dylib 
/usr/local/chicken/lib/libuchicken.dylib hello
fluffy663% ./hello
Hello, World!





reply via email to

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