From 2f5430e2274b3a385fda5c7a23a434eda7155433 Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Wed, 1 Feb 2012 20:15:53 -0700 Subject: [PATCH] update pre-built libraries --- collects/racket/draw/unsafe/cairo.rkt | 2 +- collects/racket/draw/unsafe/glib.rkt | 9 +++- collects/racket/draw/unsafe/pango.rkt | 7 +-- collects/racket/draw/unsafe/png.rkt | 2 +- src/download-libs.rkt | 2 +- src/get-libs.rkt | 77 ++++++++++++++------------- src/mac/README.txt | 40 ++++++++++---- src/mac/install-libs.rkt | 5 +- src/racket/src/schvers.h | 4 +- src/worksp/README | 15 ++++++ 10 files changed, 103 insertions(+), 60 deletions(-) diff --git a/collects/racket/draw/unsafe/cairo.rkt b/collects/racket/draw/unsafe/cairo.rkt index 82c3384aa1..eeb2cc652d 100644 --- a/collects/racket/draw/unsafe/cairo.rkt +++ b/collects/racket/draw/unsafe/cairo.rkt @@ -9,7 +9,7 @@ [(unix) (ffi-lib "libcairo" '("2" ""))] [(macosx) (ffi-lib "libpixman-1.0.dylib") - (ffi-lib "libpng14.14.dylib") + (ffi-lib "libpng15.15.dylib") (ffi-lib "libcairo.2.dylib")] [(win32) (ffi-lib "zlib1.dll") diff --git a/collects/racket/draw/unsafe/glib.rkt b/collects/racket/draw/unsafe/glib.rkt index f1b7964eb8..9cca963386 100644 --- a/collects/racket/draw/unsafe/glib.rkt +++ b/collects/racket/draw/unsafe/glib.rkt @@ -10,12 +10,15 @@ (define-runtime-lib glib-lib [(unix) (ffi-lib "libglib-2.0" '("0" ""))] - [(macosx) (ffi-lib "libglib-2.0.0")] + [(macosx) + (ffi-lib "libintl.8.dylib") + (ffi-lib "libglib-2.0.0.dylib")] [(windows) (ffi-lib "libglib-2.0-0.dll")]) (define-runtime-lib gmodule-lib [(unix) (ffi-lib "libgmodule-2.0" '("0" ""))] [(macosx) + (ffi-lib "libgthread-2.0.0.dylib") (ffi-lib "libgmodule-2.0.0.dylib")] [(win32) (ffi-lib "libgmodule-2.0-0.dll")] @@ -25,7 +28,9 @@ (define-runtime-lib gobj-lib [(unix) (ffi-lib "libgobject-2.0" '("0" ""))] - [(macosx) (ffi-lib "libgobject-2.0.0")] + [(macosx) + (ffi-lib "libffi.5.dylib") + (ffi-lib "libgobject-2.0.0.dylib")] [(windows) (ffi-lib "libgobject-2.0-0.dll")]) (define-ffi-definer define-glib glib-lib) diff --git a/collects/racket/draw/unsafe/pango.rkt b/collects/racket/draw/unsafe/pango.rkt index f2e72b0a6f..4ac4f18da4 100644 --- a/collects/racket/draw/unsafe/pango.rkt +++ b/collects/racket/draw/unsafe/pango.rkt @@ -9,11 +9,8 @@ (define-runtime-lib pango-lib [(unix) (ffi-lib "libpango-1.0" '("0" ""))] - [(macosx) - (ffi-lib "libintl.8.dylib") - (ffi-lib "libpango-1.0.0.dylib")] - [(windows) - (ffi-lib "libpango-1.0-0.dll")]) + [(macosx) (ffi-lib "libpango-1.0.0.dylib")] + [(windows) (ffi-lib "libpango-1.0-0.dll")]) (define-runtime-lib pangowin32-lib [(unix) #f] diff --git a/collects/racket/draw/unsafe/png.rkt b/collects/racket/draw/unsafe/png.rkt index 363f42d4ed..726176028d 100644 --- a/collects/racket/draw/unsafe/png.rkt +++ b/collects/racket/draw/unsafe/png.rkt @@ -13,7 +13,7 @@ (with-handlers ([exn:fail:filesystem? (lambda (exn) (ffi-lib "libpng"))]) (ffi-lib "libpng12" '("0" "")))] - [(macosx) (ffi-lib "libpng14.14.dylib")] + [(macosx) (ffi-lib "libpng15.15.dylib")] [(windows) (ffi-lib "zlib1.dll") (ffi-lib "libpng14-14.dll")]) diff --git a/src/download-libs.rkt b/src/download-libs.rkt index 5fffa2edc7..b39621bfda 100644 --- a/src/download-libs.rkt +++ b/src/download-libs.rkt @@ -4,7 +4,7 @@ (provide do-download) (define url-host "download.racket-lang.org") -(define url-path "/libs/4/") +(define url-path "/libs/6/") (define url-base (string-append "http://" url-host url-path)) (define architecture #f) ;; set in `do-download' diff --git a/src/get-libs.rkt b/src/get-libs.rkt index a79f7b63f9..5884edde32 100644 --- a/src/get-libs.rkt +++ b/src/get-libs.rkt @@ -15,56 +15,59 @@ '[core [win32/i386 ["iconv.dll" 892928] - ["libeay32.dll" 1089536] - ["ssleay32.dll" 237568]] + ["libeay32.dll" 1099776] + ["ssleay32.dll" 239104]] [win32/x86_64 ["libiconv-2.dll" 1378028] - ["libeay32.dll" 1410560] - ["ssleay32.dll" 247808]]] + ["libeay32.dll" 1503232] + ["ssleay32.dll" 309760]]] ;; GUI Libraries [list 'gui '[i386-macosx - ["libcairo.2.dylib" 803196] - ["libintl.8.dylib" 57604] - ["libgio-2.0.0.dylib" 736720] + ["libcairo.2.dylib" 802620] + ["libffi.5.dylib" 22424] + ["libintl.8.dylib" 63084] + ["libgio-2.0.0.dylib" 1511444] ["libjpeg.62.dylib" 412024] - ["libglib-2.0.0.dylib" 1009572] - ["libpango-1.0.0.dylib" 345476] - ["libgmodule-2.0.0.dylib" 18836] - ["libpangocairo-1.0.0.dylib" 83612] - ["libgobject-2.0.0.dylib" 284384] - ["libpixman-1.0.dylib" 526564] - ["libgthread-2.0.0.dylib" 24368] - ["libpng14.14.dylib" 182732] + ["libglib-2.0.0.dylib" 1272192] + ["libpango-1.0.0.dylib" 351672] + ["libgmodule-2.0.0.dylib" 18820] + ["libpangocairo-1.0.0.dylib" 83728] + ["libgobject-2.0.0.dylib" 308304] + ["libpixman-1.0.dylib" 526716] + ["libgthread-2.0.0.dylib" 12708] + ["libpng15.15.dylib" 200876] ["PSMTabBarControl.tgz" 94103 "PSMTabBarControl.framework" 251764]] '[x86_64-macosx - ["libcairo.2.dylib" 919840] - ["libintl.8.dylib" 61016] - ["libgio-2.0.0.dylib" 897624] + ["libcairo.2.dylib" 926648] + ["libffi.5.dylib" 23568] + ["libintl.8.dylib" 63156] + ["libgio-2.0.0.dylib" 2136056] ["libjpeg.62.dylib" 153360] - ["libglib-2.0.0.dylib" 1162256] - ["libpango-1.0.0.dylib" 394768] - ["libgmodule-2.0.0.dylib" 19832] - ["libpangocairo-1.0.0.dylib" 94952] - ["libgobject-2.0.0.dylib" 344024] - ["libpixman-1.0.dylib" 577128] - ["libgthread-2.0.0.dylib" 21728] - ["libpng14.14.dylib" 192224] + ["libglib-2.0.0.dylib" 1689952] + ["libpango-1.0.0.dylib" 392432] + ["libgmodule-2.0.0.dylib" 19768] + ["libpangocairo-1.0.0.dylib" 96352] + ["libgobject-2.0.0.dylib" 438192] + ["libpixman-1.0.dylib" 633368] + ["libgthread-2.0.0.dylib" 8592] + ["libpng15.15.dylib" 214836] ["PSMTabBarControl.tgz" 107267 "PSMTabBarControl.framework" 316528]] '[ppc-macosx - ["libcairo.2.dylib" 2716096] - ["libintl.8.dylib" 133156] - ["libgio-2.0.0.dylib" 936176] + ["libcairo.2.dylib" 2620616] + ["libffi.5.dylib" 67920] + ["libintl.8.dylib" 132252] + ["libgio-2.0.0.dylib" 937488] ["libjpeg.62.dylib" 209688] - ["libglib-2.0.0.dylib" 1242368] - ["libpango-1.0.0.dylib" 761292] - ["libgmodule-2.0.0.dylib" 19872] - ["libpangocairo-1.0.0.dylib" 199440] - ["libgobject-2.0.0.dylib" 352728] - ["libpixman-1.0.dylib" 1366816] - ["libgthread-2.0.0.dylib" 25416] - ["libpng14.14.dylib" 505920] + ["libglib-2.0.0.dylib" 1242448] + ["libpango-1.0.0.dylib" 760792] + ["libgmodule-2.0.0.dylib" 19476] + ["libpangocairo-1.0.0.dylib" 195372] + ["libgobject-2.0.0.dylib" 352680] + ["libpixman-1.0.dylib" 1626104] + ["libgthread-2.0.0.dylib" 25068] + ["libpng15.15.dylib" 570228] ["PSMTabBarControl.tgz" 96039 "PSMTabBarControl.framework" 229501]] (append '[win32/i386 diff --git a/src/mac/README.txt b/src/mac/README.txt index 10bc1feb81..e4e26e15b0 100644 --- a/src/mac/README.txt +++ b/src/mac/README.txt @@ -1,13 +1,14 @@ Information on building 3rd-party libraries needed for Mac OS X GRacket. Get these packages (or newer, if compatible): - pkg-config-0.23.tar.gz - libpng-1.4.0.tar.gz - pixman-0.21.6.tar.gz + pkg-config-0.25.tar.gz [PowerPC: pkg-config-0.23.tar.gz] + libpng-1.5.7.tar.gz + pixman-0.24.2.tar.gz [PowerPC: pixman-0.21.6.tar.gz] cairo-1.10.2.tar.gz - gettext-0.17.tar.gz - glib-2.22.4.tar.gz - pango-1.28.0.tar.gz + gettext-0.18.1.1.tar.gz [PowerPC: gettext-0.17.tar.gz] + libffi-3.0.10.tar.gz [PowerPC: skip] + glib-2.31.14.tar.gz [PowerPC: glib-2.22.4.tar.gz] + pango-1.29.5.tar.gz [PowerPC: pango-1.28.0.tar.gz] libjpeg62 (maybe in binary form) PSMTabBarControl, probably from "maccode.googlecode.com", @@ -21,8 +22,8 @@ Patches: buf = cairo_path_head (path); if (buf->num_ops > 4) return TRUE; - glib/glib/gconvert.c:54: change to - #if !(defined(__APPLE__) && defined(__LP64__)) && !defined(USE_LIBICONV_GNU) && defined (_LIBICONV_H) + glib/glib/gconvert.c:61: comment out #error near + #if defined(USE_LIBICONV_GNU) && !defined (_LIBICONV_H) pango/pango/modules.c:573: change to // read_modules (); pango/modules/basic/basic-atsui.c:60: add @@ -33,6 +34,14 @@ Patches: &metrics->underline_position); metrics->underline_position = -(metrics->underline_position + metrics->underline_thickness); + pango/pangocairo-coretextfont.c:150: add + metrics->underline_position = -metrics->underline_position; + pango_quantize_line_geometry (&metrics->underline_thickness, + &metrics->underline_position); + metrics->underline_position = -(metrics->underline_position + + metrics->underline_thickness); + gettext/gettext-tools/gnulib-lib/stpncpy.c:28: may need to comment out + // # define __stpncpy stpncpy PSMTabBarControl/PSMTabBarControl.m:216: change to // copy _cells because removing a cell // can modify the array (which is not allowed) @@ -45,8 +54,12 @@ Configures (where is some temporary area): pixman: --prefix= Cairo: PATH=/bin:... --disable-xlib --disable-ft --disable-fc --prefix= gettext: --prefix= + libffi: --prefix= glib: PATH=/bin:... CFLAGS=-I/include LDFLAGS=-L/lib --prefix= - Pango: PATH=/bin:... --without-x --with-included-modules=yes --with-dynamic-modules=no + [PowerPC: after configure, set "allow_undefined_flag" to "" in "libtool"; + add "-lresolv" to link command for "libgio"] + Pango: PATH=/bin:... --without-x --with-included-modules=yes --with-dynamic-modules=no --prefix= + [PowerPC: same as glib for "libtool"; use PATH for `make', too] To support 10.4, add CC=gcc-4.0 @@ -57,6 +70,12 @@ Configures (where is some temporary area): Note: PATH above ensures that pkg-config binaries are used to find things in rather than some other area, such as /opt/local. + Be sure to use two-level namespaces for all libraries. While + two-level namespaces are the default on Mac OS X, some packages turn + on flat namespaces, at least on PowerPC. Use `otol -vh' and look for + "TWOLEVEL" in the output to check that a library uses two-level + namespaces. + XCode: Build PSMTabBarControl. You only need the Framework target, and in Release mode. @@ -75,6 +94,9 @@ Install: just the platform that you're using. -------------------------------------------------- +# This script isn't right, because the versions are out of date +# and libffi isn't included, but maybe it clarifies some of +# the instructions above DESTDIR= WORKDIR= diff --git a/src/mac/install-libs.rkt b/src/mac/install-libs.rkt index b1e0885499..3f5ff4fb3c 100644 --- a/src/mac/install-libs.rkt +++ b/src/mac/install-libs.rkt @@ -8,7 +8,8 @@ #f))) (define libs - '("libgio-2.0.0" + '("libffi.5" + "libgio-2.0.0" "libgmodule-2.0.0" "libgthread-2.0.0" "libglib-2.0.0" @@ -18,7 +19,7 @@ "libpangocairo-1.0.0" "libcairo.2" "libpixman-1.0" - "libpng14.14" + "libpng15.15" "libjpeg.62")) (define (fixup p p-new) diff --git a/src/racket/src/schvers.h b/src/racket/src/schvers.h index 48401e8796..514dbd9b23 100644 --- a/src/racket/src/schvers.h +++ b/src/racket/src/schvers.h @@ -13,12 +13,12 @@ consistently.) */ -#define MZSCHEME_VERSION "5.2.1.4" +#define MZSCHEME_VERSION "5.2.1.5" #define MZSCHEME_VERSION_X 5 #define MZSCHEME_VERSION_Y 2 #define MZSCHEME_VERSION_Z 1 -#define MZSCHEME_VERSION_W 4 +#define MZSCHEME_VERSION_W 5 #define MZSCHEME_VERSION_MAJOR ((MZSCHEME_VERSION_X * 100) + MZSCHEME_VERSION_Y) #define MZSCHEME_VERSION_MINOR ((MZSCHEME_VERSION_Z * 1000) + MZSCHEME_VERSION_W) diff --git a/src/worksp/README b/src/worksp/README index 9e9cfe284a..2172ac0531 100644 --- a/src/worksp/README +++ b/src/worksp/README @@ -107,6 +107,21 @@ and they must be installed into The "get-libs.rkt" script in "racket\src" can download the libraries, and the script is used by "build.bat". +Pre-built libraries use "msvcrt.dll", as opposed to the run-time +library for a particular version of MSVC. For more information on that +choice, in case you want to compile you own, see + + http://kobyk.wordpress.com/2007/07/20/ + dynamically-linking-with-msvcrtdll-using-visual-c-2005/ + +In the case of OpenSSL v1.0.0g, two files that use `_stat' lead to an +unresolved reference to `_stat64i32'. That function is equivalent to +`_stat' as exported by "msvcrt.dll"; due to a tangle of `#define's, to +make the OpenSSL source refer to `_stat', you must use `struct +_stat64i32' in place of `struct stat', `#undef _stat', and use +`_stat()' in place of `stat()'. + + Building Racket3m and GRacket3m -------------------------------