From 5ced09a22a19e0a03f41e7923f533d828f812be3 Mon Sep 17 00:00:00 2001 From: ocean Date: Thu, 23 Feb 2006 13:46:03 +0000 Subject: * bcc32/Makefile.sub: use borlndmm.dll if possible. bcc32's RTL internal memory manager cannot handle large memory block properly. ex: 10000.times { "" << "." * 529671; GC.start } # crash [ruby-dev:28230] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@9987 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 7 +++++++ bcc32/Makefile.sub | 5 ++++- bcc32/README.bcc32 | 12 ++++++++++++ bcc32/setup.mak | 8 ++++++++ 4 files changed, 31 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index b74392643c..25792025cb 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +Thu Feb 23 22:39:59 2006 Hirokazu Yamamoto + + * bcc32/Makefile.sub: use borlndmm.dll if possible. bcc32's RTL internal + memory manager cannot handle large memory block properly. + ex: 10000.times { "" << "." * 529671; GC.start } # crash + [ruby-dev:28230] + Thu Feb 23 13:20:28 2006 Hirokazu Yamamoto * eval.c (SETUP_ARGS0): fixed memory corruption. [ruby-dev:28360] diff --git a/bcc32/Makefile.sub b/bcc32/Makefile.sub index 87a27d8d92..6a85b57d4a 100644 --- a/bcc32/Makefile.sub +++ b/bcc32/Makefile.sub @@ -125,7 +125,10 @@ RFLAGS = $(iconinc) !ifndef EXTLIBS EXTLIBS = !endif -LIBS = cw32i.lib import32.lib ws2_32.lib $(EXTLIBS) +!ifndef MEMLIB +MEMLIB = +!endif +LIBS = $(MEMLIB) cw32i.lib import32.lib ws2_32.lib $(EXTLIBS) MISSING = acosh.obj crypt.obj erf.obj win32.obj !ifndef STACK diff --git a/bcc32/README.bcc32 b/bcc32/README.bcc32 index 405b2dcfa4..c27a1261f1 100644 --- a/bcc32/README.bcc32 +++ b/bcc32/README.bcc32 @@ -19,6 +19,14 @@ * byacc (()) * sed (()) +(4) We strongly recommend to build ruby on C++Builder, to link following files. + * usebormm.lib + * memmgr.lib + + RTL's internal memory manager cannot handle large memory block properly, + so we should use borlndmm.dll instead. + 10000.times { "" << "." * 529671; GC.start } # crash + == How to compile and install (1) Execute bcc32\configure.bat on your build directory. @@ -48,6 +56,10 @@ If Ruby's version is `x.y.z', the ((||)) is `x' and the ((||)) is `y'. The ((||)) is usually `(({i586-bccwin32}))'. +(6) Requires dynamic RTL (cc3250.dll on C++Builder5) and borlndmm.dll (If built with + usebormm.lib) to use installed binary. These files are ordinary in bcc32's bin + directory. + == Icons Any icon files(*.ico) in the build directory, directories specified with diff --git a/bcc32/setup.mak b/bcc32/setup.mak index d6120d10cb..1c922c208f 100644 --- a/bcc32/setup.mak +++ b/bcc32/setup.mak @@ -54,6 +54,14 @@ EXTOUT = $(EXTOUT) $(BANG)endif !endif | + @type > usebormm.bat &&| +@echo off +ilink32 -Gn -x usebormm.lib > nul +if exist usebormm.tds echo MEMLIB = usebormm.lib +| + @usebormm.bat >> $(MAKEFILE) + @del usebormm.* + @cpp32 -I$(srcdir) -DRUBY_EXTERN="//" -P- -o$(MAKEFILE) > nul &&| \#include "version.h" MAJOR = RUBY_VERSION_MAJOR -- cgit v1.2.3