~ chicken-core (chicken-5) 076d3c14ef009d430fc8cb3458c3a1ecd478c113
commit 076d3c14ef009d430fc8cb3458c3a1ecd478c113 Author: felix <felix@call-with-current-continuation.org> AuthorDate: Thu Dec 31 01:16:13 2009 +0100 Commit: felix <felix@call-with-current-continuation.org> CommitDate: Thu Dec 31 01:16:13 2009 +0100 proper handling of install_name_tool with unsafe libraries (thanks to Derell Piper) diff --git a/csc.scm b/csc.scm index 7352b73b..f38eb012 100644 --- a/csc.scm +++ b/csc.scm @@ -199,6 +199,7 @@ (define default-shared-library-files (if msvc (list (string-append "libchicken." library-extension)) '("-lchicken"))) +(define unsafe-libraries #f) (define unsafe-library-files (list (quotewrap @@ -209,6 +210,11 @@ (define unsafe-shared-library-files (if msvc (list (string-append "libuchicken." library-extension)) '("-luchicken"))) +(define (use-unsafe-libraries) + (set! unsafe-libraries #t) + (set! library-files unsafe-library-files) + (set! shared-library-files unsafe-shared-library-files)) + (define gui-library-files default-library-files) (define gui-shared-library-files default-shared-library-files) (define library-files default-library-files) @@ -631,8 +637,7 @@ EOF [(|-O5|) (set! rest (cons* "-optimize-level" "5" rest)) (t-options "-unsafe-libraries") - (set! library-files unsafe-library-files) - (set! shared-library-files unsafe-shared-library-files) + (use-unsafe-libraries) (when (memq (build-platform) '(mingw32 cygwin gnu)) (set! compile-options (cons* "-O3" "-fomit-frame-pointer" compile-options)) ) ] @@ -677,8 +682,7 @@ EOF (set! rest (cdr rest)) ] [(-unsafe-libraries) (t-options arg) - (set! library-files unsafe-library-files) - (set! shared-library-files unsafe-shared-library-files) ] + (use-unsafe-libraries) ] [(-rpath) (check s rest) (when (eq? 'gnu (build-platform)) @@ -691,8 +695,7 @@ EOF [else (when (memq s '(-unsafe -benchmark-mode)) (when (eq? s '-benchmark-mode) - (set! library-files unsafe-library-files) - (set! shared-library-files unsafe-shared-library-files) ) ) + (use-unsafe-libraries) ) ) (when (eq? s '-to-stdout) (set! to-stdout #t) (set! translate-only #t) ) @@ -837,14 +840,14 @@ EOF (when (and osx (or (not cross-chicken) host-mode)) (unless (zero? ($system (string-append - "install_name_tool -change libchicken.dylib " + "install_name_tool -change lib" (if unsafe-libraries "u" "") "chicken.dylib " (quotewrap (make-pathname (prefix "" "lib" (if host-mode INSTALL_LIB_HOME TARGET_RUN_LIB_HOME)) - "libchicken.dylib") ) + (if unsafe-libraries "libuchicken.dylib" "libchicken.dylib")) ) " " target) ) ) (exit last-exit-code) ) ) diff --git a/manual/Acknowledgements b/manual/Acknowledgements index 8bee3a6d..7dafb5e2 100644 --- a/manual/Acknowledgements +++ b/manual/Acknowledgements @@ -29,21 +29,22 @@ Marti, Charles Martin, Bob McIsaac, Alain Mellan, Eric Merrit, Perry Metzger, Scott G. Miller, Mikael, Bruce Mitchener, Fadi Moukayed, Chris Moline, Eric E. Moore, Julian Morrison, Dan Muresan, David N. Murray, Lars Nilsson, Ian Oversby, o.t., Gene Pavlovsky, Levi -Pearson, Nicolas Pelletier, Carlos Pita, Robin Lee Powell, Pupeno, -Davide Puricelli, presto, Doug Quale, Eric Raible, Ivan Raikov, Joel -Reymont, Eric Rochester, Andreas Rottman, David Rush, Lars Rustemeier, -Daniel Sadilek, Oskar Schirmer, Burton Samograd, Reed Sheridan, Ronald -Schroeder, Spencer Schumann, Ivan Shcheklein, Alex Shinn, Ivan -Shmakov, Shmul, Tony Sidaway, Jeffrey B. Siegal, Andrey Sidorenko, -Michele Simionato, Volker Stolz, Jon Strait, Dorai Sitaram, Robert -Skeels, Jason Songhurst, Clifford Stein, Sunnan, Zbigniew Szadkowski, -Rick Taube, Nathan Thern, Mike Thomas, Minh Thu, Christian Tismer, -Andre van Tonder, John Tobey, Henrik Tramberend, Vladimir Tsichevsky, -Neil van Dyke, Sam Varner, Taylor Venable, Sander Vesik, Jaques -Vidrine, Panagiotis Vossos, Shawn Wagner, Peter Wang, Ed Watkeys, Brad -Watson, Thomas Weidner, Goeran Weinholt, Matthew Welland, Drake -Wilson, Joerg Wittenberger, Peter Wright, Mark Wutka, Richard Zidlicky -and Houman Zolfaghari for bug-fixes, tips and suggestions. +Pearson, Nicolas Pelletier, Derrell Piper, Carlos Pita, Robin Lee +Powell, Pupeno, Davide Puricelli, presto, Doug Quale, Eric Raible, +Ivan Raikov, Joel Reymont, Eric Rochester, Andreas Rottman, David +Rush, Lars Rustemeier, Daniel Sadilek, Oskar Schirmer, Burton +Samograd, Reed Sheridan, Ronald Schroeder, Spencer Schumann, Ivan +Shcheklein, Alex Shinn, Ivan Shmakov, Shmul, Tony Sidaway, Jeffrey +B. Siegal, Andrey Sidorenko, Michele Simionato, Volker Stolz, Jon +Strait, Dorai Sitaram, Robert Skeels, Jason Songhurst, Clifford Stein, +Sunnan, Zbigniew Szadkowski, Rick Taube, Nathan Thern, Mike Thomas, +Minh Thu, Christian Tismer, Andre van Tonder, John Tobey, Henrik +Tramberend, Vladimir Tsichevsky, Neil van Dyke, Sam Varner, Taylor +Venable, Sander Vesik, Jaques Vidrine, Panagiotis Vossos, Shawn +Wagner, Peter Wang, Ed Watkeys, Brad Watson, Thomas Weidner, Goeran +Weinholt, Matthew Welland, Drake Wilson, Joerg Wittenberger, Peter +Wright, Mark Wutka, Richard Zidlicky and Houman Zolfaghari for +bug-fixes, tips and suggestions. CHICKEN uses the "irregex" regular expression package written by Alex Shinn.Trap