aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/hyper/node.h12
-rw-r--r--src/lib/cfuns-c.c6
-rw-r--r--src/lisp/Makefile.in13
3 files changed, 20 insertions, 11 deletions
diff --git a/src/hyper/node.h b/src/hyper/node.h
index 575d4229..fadc575f 100644
--- a/src/hyper/node.h
+++ b/src/hyper/node.h
@@ -50,12 +50,12 @@ typedef GC openaxiom_graphic_context;
typedef XFontStruct openaxiom_font;
typedef Cursor openaxiom_cursor;
#else /* X_DISPLAY_MISSING */
-typedef openaxiom_handle openaxiom_window;
-typedef openaxiom_handle openaxiom_pixmap;
-typedef openaxiom_handle openaxiom_image;
-typedef openaxiom_handle openaxiom_graphic_context;
-typedef openaxiom_handle openaxiom_cursor;
-typedef openaxiom_handle openaxiom_font;
+typedef OpenAxiom::Handle openaxiom_window;
+typedef OpenAxiom::Handle openaxiom_pixmap;
+typedef OpenAxiom::Handle openaxiom_image;
+typedef OpenAxiom::Handle openaxiom_graphic_context;
+typedef OpenAxiom::Handle openaxiom_cursor;
+typedef OpenAxiom::Handle openaxiom_font;
#endif /* X_DISPLAY_MISSING */
/* Struct forward declarations */
diff --git a/src/lib/cfuns-c.c b/src/lib/cfuns-c.c
index 572b7835..a4ae8f39 100644
--- a/src/lib/cfuns-c.c
+++ b/src/lib/cfuns-c.c
@@ -620,7 +620,7 @@ oa_getcwd(void)
exit(-1);
}
else if (n > bufsz) {
- buf = realloc(buf,n);
+ buf = (char*) realloc(buf,n);
if (GetCurrentDirectory(n, buf) != n) {
perror("oa_getcwd");
exit(-1);
@@ -787,7 +787,7 @@ oa_spawn(Process* proc, SpawnFlags flags)
}
cmd_line[curpos] = '\0';
- if ((flags & openaxiom_spawn_search_path) == 0)
+ if ((flags & spawn_search_path) == 0)
path = proc->argv[0];
if(CreateProcess(/* lpApplicationName */ path,
@@ -804,7 +804,7 @@ oa_spawn(Process* proc, SpawnFlags flags)
return proc->id = -1;
}
proc->id = proc_info.dwProcessId;
- if ((flags & openaxiom_spawn_replace) == 0)
+ if ((flags & spawn_replace) == 0)
return proc->id;
WaitForSingleObject(proc_info.hProcess, INFINITE);
GetExitCodeProcess(proc_info.hProcess, &status);
diff --git a/src/lisp/Makefile.in b/src/lisp/Makefile.in
index 295c5eeb..77c8edb8 100644
--- a/src/lisp/Makefile.in
+++ b/src/lisp/Makefile.in
@@ -47,7 +47,7 @@ build_libdir = ./$(top_builddir)/src/lib
## Consequently we temporarily give up here, e.g., we don't
## instruct GCL to use Libtool on Windows.
GCL_LTCC = $(if $(findstring mingw, $(target)),"","$(LIBTOOL) --tag=CC --mode=compile ")
-GCL_LTLD = $(if $(findstring mingw, $(target)),"$(CXX) $(LDFLAGS) -o ","$(CXXLINK) -o ")
+GCL_LTLD = $(if $(findstring mingw, $(target)),"$(CXX) $(LDFLAGS) ","$(CXXLINK) ")
## Again, ideally, we would like GCL to link with the compiled Lisp
## code from core.lisp. However, the general interface compiler::link
@@ -90,13 +90,22 @@ lisp_c_objects = \
$(build_libdir)/cfuns-c.$(OBJEXT) \
$(build_libdir)/sockio-c.$(OBJEXT)
+## The splitting shenaningan below about GCL's COMPILER::*LD* is because
+## GCL does not -- currently -- separate the linker proper from arguments,
+## therefore forcing us to use brittle tricks to guess what the linker is.
+
$(OUT)/lisp$(EXEEXT): base-lisp$(EXEEXT)
ifeq (@axiom_lisp_flavor@,gcl)
echo '(let* ((sys-cc compiler::*cc*) ' \
+ ' (sys-ld compiler::*ld*) ' \
' (compiler::*cc* (concatenate (quote string) ' \
' $(GCL_LTCC) ' \
' sys-cc)) ' \
- ' (compiler::*ld* (if (member :mingw32 *features*) compiler::*ld* $(GCL_LTLD)))) ' \
+ ' (compiler::*ld* ' \
+ ' (concatenate (quote string) ' \
+ ' $(GCL_LTLD) ' \
+ ' (subseq sys-ld ' \
+ ' (position (character " ") sys-ld))))) ' \
'(compiler::link (quote ($(FASLS))) "lisp$(EXEEXT)" ' \
' (format nil "(progn (let ((*load-path* (cons ~S *load-path*))'\
' (si::*load-types* ~S)))' \