summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog9
-rw-r--r--Makefile.in2
-rw-r--r--bcc32/Makefile.sub3
-rw-r--r--common.mk5
-rw-r--r--cygwin/GNUmakefile.in2
-rw-r--r--dln.c10
-rw-r--r--dmydln.c2
-rw-r--r--win32/Makefile.sub3
8 files changed, 32 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index 535293f2d7..d8060b6eee 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+Wed Apr 20 23:22:39 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * Makefile.in, common.mk: miniruby depens on MINIOBJS.
+
+ * dmydln.c (dln_load): dummy function to raise LoadError.
+
+ * cygwin/GNUmakefile.in, {bcc32,win32,wince}/Makefile.sub: miniruby
+ can't load extensions on Windows.
+
Wed Apr 20 23:01:35 2005 Nobuyoshi Nakada <nobu@ruby-lang.org>
* win32/ifchange.bat: delete testing files.
diff --git a/Makefile.in b/Makefile.in
index f9938233c2..d092636a23 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -97,7 +97,7 @@ all:
miniruby$(EXEEXT):
@$(RM) $@
- $(PURIFY) $(CC) $(MAINOBJ) $(LIBRUBY_A) $(LIBS) $(OUTFLAG)$@ $(LDFLAGS) $(MAINLIBS)
+ $(PURIFY) $(CC) $(MAINOBJ) $(MINIOBJS) $(LIBRUBY_A) $(LIBS) $(OUTFLAG)$@ $(LDFLAGS) $(MAINLIBS)
$(PROGRAM):
@$(RM) $@
diff --git a/bcc32/Makefile.sub b/bcc32/Makefile.sub
index 502e506b08..6f9e7242b1 100644
--- a/bcc32/Makefile.sub
+++ b/bcc32/Makefile.sub
@@ -172,6 +172,7 @@ DMYOBJS = dmyext.obj
OBJEXT = obj
WINMAINOBJ = winmain.$(OBJEXT)
+MINIOBJS = dmydln.$(OBJEXT)
.path.c = .;$(srcdir);$(srcdir)win32;$(srcdir)missing
.path.h = .;$(srcdir);$(srcdir)win32;$(srcdir)missing
@@ -395,7 +396,7 @@ s,@top_srcdir@,$(srcdir),;t t
miniruby$(EXEEXT):
@echo $(LIBS)
- $(LD) $(LDFLAGS) $(XLDFLAGS) $(MAINOBJ),$@,nul,$(LIBRUBY_A) $(LIBS)
+ $(LD) $(LDFLAGS) $(XLDFLAGS) $(MAINOBJ) $(MINIOBJS),$@,nul,$(LIBRUBY_A) $(LIBS)
$(PROGRAM): $(MAINOBJ) $(LIBRUBY_SO) $(RUBY_INSTALL_NAME).res
$(LD) $(LDFLAGS) $(XLDFLAGS) $(MAINOBJ),$@,nul,$(LIBRUBYARG) $(LIBS),,$(RUBY_INSTALL_NAME).res
diff --git a/common.mk b/common.mk
index e8b9a08234..f9cab19e2a 100644
--- a/common.mk
+++ b/common.mk
@@ -66,7 +66,7 @@ all: $(MKFILES) $(PREP) $(RBCONFIG) $(LIBRUBY)
@$(MINIRUBY) $(srcdir)/ext/extmk.rb $(EXTMK_ARGS)
prog: $(PROGRAM) $(WPROGRAM)
-miniruby$(EXEEXT): config.status $(LIBRUBY_A) $(MAINOBJ) $(OBJS) $(DMYEXT)
+miniruby$(EXEEXT): config.status $(LIBRUBY_A) $(MAINOBJ) $(MINIOBJS) $(OBJS) $(DMYEXT)
$(PROGRAM): $(LIBRUBY) $(MAINOBJ) $(OBJS) $(EXTOBJS) $(SETUP) $(PREP)
@@ -217,6 +217,9 @@ dir.$(OBJEXT): {$(VPATH)}dir.c {$(VPATH)}ruby.h config.h \
dln.$(OBJEXT): {$(VPATH)}dln.c {$(VPATH)}ruby.h config.h \
{$(VPATH)}defines.h {$(VPATH)}intern.h {$(VPATH)}missing.h \
{$(VPATH)}dln.h
+dmydln.$(OBJEXT): {$(VPATH)}dmydln.c {$(VPATH)}dln.c {$(VPATH)}ruby.h \
+ config.h {$(VPATH)}defines.h {$(VPATH)}intern.h {$(VPATH)}missing.h \
+ {$(VPATH)}dln.h
dmyext.$(OBJEXT): {$(VPATH)}dmyext.c
enum.$(OBJEXT): {$(VPATH)}enum.c {$(VPATH)}ruby.h config.h \
{$(VPATH)}defines.h {$(VPATH)}intern.h {$(VPATH)}missing.h \
diff --git a/cygwin/GNUmakefile.in b/cygwin/GNUmakefile.in
index 03208df11c..b366b2096f 100644
--- a/cygwin/GNUmakefile.in
+++ b/cygwin/GNUmakefile.in
@@ -1,3 +1,5 @@
+MINIOBJS = dmydln.o
+
include Makefile
ENABLE_SHARED=@ENABLE_SHARED@
diff --git a/dln.c b/dln.c
index 4382ab49af..4cb8f0a009 100644
--- a/dln.c
+++ b/dln.c
@@ -91,6 +91,8 @@ char *getenv();
int eaccess();
+#ifndef NO_DLN_LOAD
+
#if defined(HAVE_DLOPEN) && !defined(USE_DLN_A_OUT) && !defined(_AIX) && !defined(__APPLE__) && !defined(_UNICOSMP)
/* dynamic load with dlopen() */
# define USE_DLN_DLOPEN
@@ -1256,10 +1258,16 @@ aix_loaderror(const char *pathname)
}
#endif
+#endif /* NO_DLN_LOAD */
+
void*
dln_load(file)
const char *file;
{
+#ifdef NO_DLN_LOAD
+ rb_raise(rb_eLoadError, "this executable file can't load extension libraries");
+#else
+
#if !defined(_AIX) && !defined(NeXT)
const char *error = 0;
#define DLN_ERROR() (error = dln_strerror(), strcpy(ALLOCA_N(char, strlen(error) + 1), error))
@@ -1592,6 +1600,8 @@ dln_load(file)
failed:
rb_loaderror("%s - %s", error, file);
#endif
+
+#endif /* NO_DLN_LOAD */
return 0; /* dummy return */
}
diff --git a/dmydln.c b/dmydln.c
new file mode 100644
index 0000000000..09ea06806c
--- /dev/null
+++ b/dmydln.c
@@ -0,0 +1,2 @@
+#define NO_DLN_LOAD 1
+#include "dln.c"
diff --git a/win32/Makefile.sub b/win32/Makefile.sub
index 45b7fd4be2..56122891d8 100644
--- a/win32/Makefile.sub
+++ b/win32/Makefile.sub
@@ -173,6 +173,7 @@ EXTOBJS =
DLDOBJS =
WINMAINOBJ = winmain.$(OBJEXT)
+MINIOBJS = dmydln.$(OBJEXT)
all: $(srcdir)/win32/Makefile.sub $(srcdir)/common.mk
@@ -411,7 +412,7 @@ s,@top_srcdir@,$(srcdir),;t t
miniruby$(EXEEXT):
@echo. $(LIBS)
- $(PURIFY) $(CC) $(MAINOBJ) $(LIBRUBY_A) $(LIBS) -Fe$@ $(LDFLAGS)
+ $(PURIFY) $(CC) $(MAINOBJ) $(MINIOBJS) $(LIBRUBY_A) $(LIBS) -Fe$@ $(LDFLAGS)
$(PROGRAM): $(RUBY_INSTALL_NAME).res
$(PURIFY) $(CC) $(MAINOBJ) $(RUBY_INSTALL_NAME).res \