The source now "works" on both OSX and Linux.
This commit is contained in:
commit
5cc06893ec
|
@ -1,7 +1,7 @@
|
||||||
|
|
||||||
CFLAGS = -I/opt/local/include -Wall -DNDEBUG -O3
|
CFLAGS = -I/opt/local/include -Wall -DNDEBUG -O3
|
||||||
#CFLAGS = -Wall -g
|
#CFLAGS = -Wall -g
|
||||||
LDFLAGS = -L/opt/local/lib -g -ldl -lgmp -dynamic
|
LDFLAGS = -L/opt/local/lib -g -ldl -lgmp -rdynamic
|
||||||
CC = gcc
|
CC = gcc
|
||||||
all: ikarus
|
all: ikarus
|
||||||
|
|
||||||
|
@ -49,4 +49,4 @@ ikarus.h: ikarus-data.h
|
||||||
touch ikarus.h
|
touch ikarus.h
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -f *.o ikarus
|
rm -f *.o
|
||||||
|
|
BIN
runtime/ikarus
BIN
runtime/ikarus
Binary file not shown.
|
@ -1,10 +1,14 @@
|
||||||
|
|
||||||
.text
|
.text
|
||||||
|
.globl ik_asm_enter
|
||||||
.globl _ik_asm_enter
|
.globl _ik_asm_enter
|
||||||
.globl ik_underflow_handler
|
.globl ik_underflow_handler
|
||||||
|
.globl ik_foreign_call
|
||||||
.globl _ik_foreign_call
|
.globl _ik_foreign_call
|
||||||
|
.globl ik_asm_reenter
|
||||||
.globl _ik_asm_reenter
|
.globl _ik_asm_reenter
|
||||||
.align 8
|
.align 8
|
||||||
|
ik_asm_enter:
|
||||||
_ik_asm_enter:
|
_ik_asm_enter:
|
||||||
# ignored value is the third arg 12(%esp)
|
# ignored value is the third arg 12(%esp)
|
||||||
# code is the second arg 8(%esp)
|
# code is the second arg 8(%esp)
|
||||||
|
@ -50,6 +54,7 @@ L_multivalue_underflow:
|
||||||
jmp L_do_underflow
|
jmp L_do_underflow
|
||||||
|
|
||||||
.align 8
|
.align 8
|
||||||
|
ik_asm_reenter:
|
||||||
_ik_asm_reenter:
|
_ik_asm_reenter:
|
||||||
# argc is at 12(%esp)
|
# argc is at 12(%esp)
|
||||||
# scheme stack is third arg 8(%esp)
|
# scheme stack is third arg 8(%esp)
|
||||||
|
@ -74,6 +79,7 @@ L_multi_reentry:
|
||||||
|
|
||||||
|
|
||||||
.align 8
|
.align 8
|
||||||
|
ik_foreign_call:
|
||||||
_ik_foreign_call:
|
_ik_foreign_call:
|
||||||
movl %esp, 8(%esi) # (movl fpr (pcb-ref 'frame-pointer))
|
movl %esp, 8(%esi) # (movl fpr (pcb-ref 'frame-pointer))
|
||||||
movl %ebp, 0(%esi) # (movl apr (pcb-ref 'allocation-pointer))
|
movl %ebp, 0(%esi) # (movl apr (pcb-ref 'allocation-pointer))
|
||||||
|
|
|
@ -13,6 +13,9 @@
|
||||||
#include <sys/mman.h>
|
#include <sys/mman.h>
|
||||||
#include <dlfcn.h>
|
#include <dlfcn.h>
|
||||||
|
|
||||||
|
#ifndef RTLD_DEFAULT
|
||||||
|
#define RTLD_DEFAULT 0
|
||||||
|
#endif
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
char* membase;
|
char* membase;
|
||||||
|
|
Loading…
Reference in New Issue