change build to use archives instead of merging objects

Merging ".o" files to one "kernel.o" can be convenient for further
linking, but it requires running `ld` directly. Running `ld` directly
sometimes runs into a mismatch between the C compiler and the default
`ld`. It's better to use the more typical approach of collecting
objects into an archive.

original commit: 7d5b60c7566570655e567495d86d546101cf8fb4
This commit is contained in:
Matthew Flatt 2019-06-21 15:50:44 -06:00
parent a043c4b3a8
commit 9f1fe73797
36 changed files with 196 additions and 92 deletions

View File

@ -32,10 +32,13 @@ mdobj = i3le.o
include Mf-base
${Kernel}: ${kernelobj} ${zlibDep} ${LZ4Dep}
ld -r -X -o ${Kernel} ${kernelobj} ${zlibLib} ${LZ4Lib}
${LD} -r -X -o ${Kernel} ${kernelobj} ${zlibLib} ${LZ4Lib}
${Scheme}: ${Kernel} ${Main}
$C -rdynamic -o ${Scheme} ${Kernel} ${Main} ${mdclib} ${LDFLAGS}
${KernelLib}: ${kernelobj}
${AR} ${ARFLAGS} ${KernelLib} ${kernelobj}
${Scheme}: ${KernelLib} ${zlibDep} ${LZ4Dep} ${Main}
$C -rdynamic -o ${Scheme} ${Main} ${KernelLib} ${mdclib} ${zlibLib} ${LZ4Lib} ${LDFLAGS}
../zlib/configure.log:
(cd ../zlib; CFLAGS="${CFLAGS} -m64" ./configure --64)

View File

@ -31,10 +31,13 @@ mdobj = i3le.o
include Mf-base
${Kernel}: ${kernelobj} ${zlibDep} ${LZ4Dep}
ld -melf_x86_64 -r -X -o ${Kernel} ${kernelobj} ${zlibLib} ${LZ4Lib}
${LD} -melf_x86_64 -r -X -o ${Kernel} ${kernelobj} ${zlibLib} ${LZ4Lib}
${Scheme}: ${Kernel} ${Main}
$C -rdynamic -o ${Scheme} ${Kernel} ${Main} ${mdclib} ${LDFLAGS}
${KernelLib}: ${kernelobj}
${AR} ${ARFLAGS} ${KernelLib} ${kernelobj}
${Scheme}: ${KernelLib} ${zlibDep} ${LZ4Dep} ${Main}
$C -rdynamic -o ${Scheme} ${Main} ${KernelLib} ${mdclib} ${zlibLib} ${LZ4Lib} ${LDFLAGS}
../zlib/configure.log:
(cd ../zlib; CFLAGS="${CFLAGS} -m64" ./configure --64)

View File

@ -32,10 +32,13 @@ mdobj = i3le.o
include Mf-base
${Kernel}: ${kernelobj} ${zlibDep} ${LZ4Dep}
ld -r -X -o ${Kernel} ${kernelobj} ${zlibLib} ${LZ4Lib}
${LD} -r -X -o ${Kernel} ${kernelobj} ${zlibLib} ${LZ4Lib}
${Scheme}: ${Kernel} ${Main}
$C -rdynamic -o ${Scheme} ${Kernel} ${Main} ${mdclib} ${LDFLAGS}
${KernelLib}: ${kernelobj}
${AR} ${ARFLAGS} ${KernelLib} ${kernelobj}
${Scheme}: ${KernelLib} ${zlibDep} ${LZ4Dep} ${Main}
$C -rdynamic -o ${Scheme} ${Main} ${KernelLib} ${mdclib} ${zlibLib} ${LZ4Lib} ${LDFLAGS}
../zlib/configure.log:
(cd ../zlib; CFLAGS="${CFLAGS} -m64" ./configure --64)

View File

@ -32,10 +32,13 @@ mdobj = i3le.o
include Mf-base
${Kernel}: ${kernelobj} ${zlibDep} ${LZ4Dep}
ld -r -X -o ${Kernel} ${kernelobj} ${zlibLib} ${LZ4Lib}
${LD} -r -X -o ${Kernel} ${kernelobj} ${zlibLib} ${LZ4Lib}
${Scheme}: ${Kernel} ${Main}
$C -rdynamic -Wl,--export-dynamic -Wl,-zwxneeded -o ${Scheme} ${Kernel} ${Main} ${mdclib} ${LDFLAGS}
${KernelLib}: ${kernelobj}
${AR} ${ARFLAGS} ${KernelLib} ${kernelobj}
${Scheme}: ${KernelLib} ${zlibDep} ${LZ4Dep} ${Main}
$C -rdynamic -Wl,--export-dynamic -Wl,-zwxneeded -o ${Scheme} ${Main} ${KernelLib} ${mdclib} ${zlibLib} ${LZ4Lib} ${LDFLAGS}
../zlib/configure.log:
(cd ../zlib; CFLAGS="${CFLAGS} -m64" ./configure --64)

View File

@ -31,10 +31,13 @@ mdobj = i3le.o
include Mf-base
${Kernel}: ${kernelobj} ${zlibDep} ${LZ4Dep}
ld -r -o ${Kernel} ${kernelobj} ${zlibLib} ${LZ4Lib}
${LD} -r -o ${Kernel} ${kernelobj} ${zlibLib} ${LZ4Lib}
${Scheme}: ${Kernel} ${Main}
$C -o ${Scheme} ${Kernel} ${Main} ${mdclib} ${LDFLAGS}
${KernelLib}: ${kernelobj}
${AR} ${ARFLAGS} ${KernelLib} ${kernelobj}
${Scheme}: ${KernelLib} ${zlibDep} ${LZ4Dep} ${Main}
$C -o ${Scheme} ${Main} ${KernelLib} ${mdclib} ${zlibLib} ${LZ4Lib} ${LDFLAGS}
../zlib/configure.log:
(cd ../zlib; CFLAGS="${CFLAGS} -m64" ./configure --64)

View File

@ -31,10 +31,13 @@ mdobj = i3le.o
include Mf-base
${Kernel}: ${kernelobj} ${zlibDep} ${LZ4Dep}
ld -melf_x86_64 -r -X -o ${Kernel} ${kernelobj} ${zlibLib} ${LZ4Lib}
${LD} -melf_x86_64 -r -X -o ${Kernel} ${kernelobj} ${zlibLib} ${LZ4Lib}
${Scheme}: ${Kernel} ${Main}
$C -o ${Scheme} ${Kernel} ${Main} ${mdclib} ${LDFLAGS}
${KernelLib}: ${kernelobj}
${AR} ${ARFLAGS} ${KernelLib} ${kernelobj}
${Scheme}: ${KernelLib} ${zlibDep} ${LZ4Dep} ${Main}
$C -o ${Scheme} ${Main} ${KernelLib} ${mdclib} ${zlibLib} ${LZ4Lib} ${LDFLAGS}
../zlib/configure.log:
(cd ../zlib; CFLAGS="${CFLAGS} -m64" ./configure --64)

View File

@ -31,10 +31,13 @@ mdobj = arm32le.o
include Mf-base
${Kernel}: ${kernelobj} ${zlibDep} ${LZ4Dep}
ld -r -X -o ${Kernel} ${kernelobj} ${zlibLib} ${LZ4Lib}
${LD} -r -X -o ${Kernel} ${kernelobj} ${zlibLib} ${LZ4Lib}
${Scheme}: ${Kernel} ${Main}
$C -rdynamic -o ${Scheme} ${Kernel} ${Main} ${mdclib} ${LDFLAGS}
${KernelLib}: ${kernelobj}
${AR} ${ARFLAGS} ${KernelLib} ${kernelobj}
${Scheme}: ${KernelLib} ${zlibDep} ${LZ4Dep} ${Main}
$C -rdynamic -o ${Scheme} ${Main} ${KernelLib} ${mdclib} ${zlibLib} ${LZ4Lib} ${LDFLAGS}
../zlib/configure.log:
(cd ../zlib; ./configure)

View File

@ -19,6 +19,7 @@ Include=../boot/$m
PetiteBoot=../boot/$m/petite.boot
SchemeBoot=../boot/$m/scheme.boot
Kernel=../boot/$m/kernel.$o
KernelLib=../boot/$m/libkernel.a
Main=../boot/$m/main.$o
Scheme=../bin/$m/scheme

View File

@ -32,10 +32,13 @@ mdobj = i3le.o
include Mf-base
${Kernel}: ${kernelobj} ${zlibDep} ${LZ4Dep}
ld -r -X -o ${Kernel} ${kernelobj} ${zlibLib} ${LZ4Lib}
${LD} -r -X -o ${Kernel} ${kernelobj} ${zlibLib} ${LZ4Lib}
${Scheme}: ${Kernel} ${Main}
$C -rdynamic -o ${Scheme} ${Kernel} ${Main} ${mdclib} ${LDFLAGS}
${KernelLib}: ${kernelobj}
${AR} ${ARFLAGS} ${KernelLib} ${kernelobj}
${Scheme}: ${KernelLib} ${zlibDep} ${LZ4Dep} ${Main}
$C -rdynamic -o ${Scheme} ${Main} ${KernelLib} ${mdclib} ${zlibLib} ${LZ4Lib} ${LDFLAGS}
../zlib/configure.log:
(cd ../zlib; CFLAGS="${CFLAGS} -m32" ./configure)

View File

@ -31,10 +31,13 @@ mdobj = i3le.o
include Mf-base
${Kernel}: ${kernelobj} ${zlibDep} ${LZ4Dep}
ld -melf_i386 -r -X -o ${Kernel} ${kernelobj} ${zlibLib} ${LZ4Lib}
${LD} -melf_i386 -r -X -o ${Kernel} ${kernelobj} ${zlibLib} ${LZ4Lib}
${Scheme}: ${Kernel} ${Main}
$C -rdynamic -o ${Scheme} ${Kernel} ${Main} ${mdclib} ${LDFLAGS}
${KernelLib}: ${kernelobj}
${AR} ${ARFLAGS} ${KernelLib} ${kernelobj}
${Scheme}: ${KernelLib} ${zlibDep} ${LZ4Dep} ${Main}
$C -rdynamic -o ${Scheme} ${Main} ${KernelLib} ${mdclib} ${zlibLib} ${LZ4Lib} ${LDFLAGS}
../zlib/configure.log:
(cd ../zlib; CFLAGS="${CFLAGS} -m32" ./configure)

View File

@ -32,10 +32,13 @@ mdobj = i3le.o
include Mf-base
${Kernel}: ${kernelobj} ${zlibDep} ${LZ4Dep}
ld -r -X -o ${Kernel} ${kernelobj} ${zlibLib} ${LZ4Lib}
${LD} -r -X -o ${Kernel} ${kernelobj} ${zlibLib} ${LZ4Lib}
${Scheme}: ${Kernel} ${Main}
$C -rdynamic -o ${Scheme} ${Kernel} ${Main} ${mdclib} ${LDFLAGS}
${KernelLib}: ${kernelobj}
${AR} ${ARFLAGS} ${KernelLib} ${kernelobj}
${Scheme}: ${KernelLib} ${zlibDep} ${LZ4Dep} ${Main}
$C -rdynamic -o ${Scheme} ${Main} ${KernelLib} ${mdclib} ${zlibLib} ${LZ4Lib} ${LDFLAGS}
../zlib/configure.log:
(cd ../zlib; CFLAGS="${CFLAGS} -m32" ./configure)

View File

@ -32,10 +32,13 @@ mdobj = i3le.o
include Mf-base
${Kernel}: ${kernelobj} ${zlibDep} ${LZ4Dep}
ld -r -X -o ${Kernel} ${kernelobj} ${zlibLib} ${LZ4Lib}
${LD} -r -X -o ${Kernel} ${kernelobj} ${zlibLib} ${LZ4Lib}
${Scheme}: ${Kernel} ${Main}
$C -rdynamic -Wl,--export-dynamic -Wl,-zwxneeded -o ${Scheme} ${Kernel} ${Main} ${mdclib} ${LDFLAGS}
${KernelLib}: ${kernelobj}
${AR} ${ARFLAGS} ${KernelLib} ${kernelobj}
${Scheme}: ${KernelLib} ${zlibDep} ${LZ4Dep} ${Main}
$C -rdynamic -Wl,--export-dynamic -Wl,-zwxneeded -o ${Scheme} ${Main} ${KernelLib} ${mdclib} ${zlibLib} ${LZ4Lib} ${LDFLAGS}
../zlib/configure.log:
(cd ../zlib; CFLAGS="${CFLAGS} -m32" ./configure)

View File

@ -31,10 +31,13 @@ mdobj = i3le.o
include Mf-base
${Kernel}: ${kernelobj} ${zlibDep} ${LZ4Dep}
ld -r -o ${Kernel} ${kernelobj} ${zlibLib} ${LZ4Lib}
${LD} -r -o ${Kernel} ${kernelobj} ${zlibLib} ${LZ4Lib}
${Scheme}: ${Kernel} ${Main}
$C -o ${Scheme} ${Kernel} ${Main} ${mdclib} ${LDFLAGS}
${KernelLib}: ${kernelobj}
${AR} ${ARFLAGS} ${KernelLib} ${kernelobj}
${Scheme}: ${KernelLib} ${zlibDep} ${LZ4Dep} ${Main}
$C -o ${Scheme} ${Main} ${KernelLib} ${mdclib} ${zlibLib} ${LZ4Lib} ${LDFLAGS}
../zlib/configure.log:
(cd ../zlib; CFLAGS="${CFLAGS} -m32" ./configure)

View File

@ -32,10 +32,13 @@ LocalInclude = /usr/local/include
include Mf-base
${Kernel}: ${kernelobj} ${zlibDep} ${LZ4Dep}
ld -mi386nto -r -X -o ${Kernel} ${kernelobj} ${zlibLib} ${LZ4Lib}
${LD} -mi386nto -r -X -o ${Kernel} ${kernelobj} ${zlibLib} ${LZ4Lib}
${Scheme}: ${Kernel} ${Main}
$C -Wl,--export-dynamic -o ${Scheme} ${Kernel} ${Main} ${mdclib} ${LDFLAGS}
${KernelLib}: ${kernelobj}
${AR} ${ARFLAGS} ${KernelLib} ${kernelobj}
${Scheme}: ${KernelLib} ${zlibDep} ${LZ4Dep} ${Main}
$C -Wl,--export-dynamic -o ${Scheme} ${Main} ${KernelLib} ${mdclib} ${zlibLib} ${LZ4Lib} ${LDFLAGS}
../zlib/configure.log:
(cd ../zlib; CFLAGS="${CFLAGS} -m32" ./configure)

View File

@ -31,10 +31,13 @@ mdobj = i3le.o
include Mf-base
${Kernel}: ${kernelobj} ${zlibDep} ${LZ4Dep}
ld -melf_i386 -r -X -o ${Kernel} ${kernelobj} ${zlibLib} ${LZ4Lib}
${LD} -melf_i386 -r -X -o ${Kernel} ${kernelobj} ${zlibLib} ${LZ4Lib}
${Scheme}: ${Kernel} ${Main}
$C -o ${Scheme} ${Kernel} ${Main} ${mdclib} ${LDFLAGS}
${KernelLib}: ${kernelobj}
${AR} ${ARFLAGS} ${KernelLib} ${kernelobj}
${Scheme}: ${KernelLib} ${zlibDep} ${LZ4Dep} ${Main}
$C -o ${Scheme} ${Main} ${KernelLib} ${mdclib} ${zlibLib} ${LZ4Lib} ${LDFLAGS}
../zlib/configure.log:
(cd ../zlib; CFLAGS="${CFLAGS} -m32" ./configure)

View File

@ -31,10 +31,13 @@ mdobj = ppc32.o
include Mf-base
${Kernel}: ${kernelobj} ${zlibDep} ${LZ4Dep}
ld -r -X -o ${Kernel} ${kernelobj} ${zlibLib} ${LZ4Lib}
${LD} -r -X -o ${Kernel} ${kernelobj} ${zlibLib} ${LZ4Lib}
${Scheme}: ${Kernel} ${Main}
$C -rdynamic -o ${Scheme} ${Kernel} ${Main} ${mdclib} ${LDFLAGS}
${KernelLib}: ${kernelobj}
${AR} ${ARFLAGS} ${KernelLib} ${kernelobj}
${Scheme}: ${KernelLib} ${zlibDep} ${LZ4Dep} ${Main}
$C -rdynamic -o ${Scheme} ${Main} ${KernelLib} ${mdclib} ${zlibLib} ${LZ4Lib} ${LDFLAGS}
../zlib/configure.log:
(cd ../zlib; CFLAGS="${CFLAGS} -m32" ./configure)

View File

@ -32,10 +32,13 @@ mdobj = i3le.o
include Mf-base
${Kernel}: ${kernelobj} ${zlibDep} ${LZ4Dep}
ld -r -X -o ${Kernel} ${kernelobj} ${zlibLib} ${LZ4Lib}
${LD} -r -X -o ${Kernel} ${kernelobj} ${zlibLib} ${LZ4Lib}
${Scheme}: ${Kernel} ${Main}
$C -rdynamic -o ${Scheme} ${Kernel} ${Main} ${mdclib} ${LDFLAGS}
${KernelLib}: ${kernelobj}
${AR} ${ARFLAGS} ${KernelLib} ${kernelobj}
${Scheme}: ${KernelLib} ${zlibDep} ${LZ4Dep} ${Main}
$C -rdynamic -o ${Scheme} ${Main} ${KernelLib} ${mdclib} ${zlibLib} ${LZ4Lib} ${LDFLAGS}
../zlib/configure.log:
(cd ../zlib; CFLAGS="${CFLAGS} -m64" ./configure --64)

View File

@ -31,10 +31,13 @@ mdobj = i3le.o
include Mf-base
${Kernel}: ${kernelobj} ${zlibDep} ${LZ4Dep}
ld -melf_x86_64 -r -X -o ${Kernel} ${kernelobj} ${zlibLib} ${LZ4Lib}
${LD} -melf_x86_64 -r -X -o ${Kernel} ${kernelobj} ${zlibLib} ${LZ4Lib}
${Scheme}: ${Kernel} ${Main}
$C -rdynamic -o ${Scheme} ${Kernel} ${Main} ${mdclib} ${LDFLAGS}
${KernelLib}: ${kernelobj}
${AR} ${ARFLAGS} ${KernelLib} ${kernelobj}
${Scheme}: ${KernelLib} ${zlibDep} ${LZ4Dep} ${Main}
$C -rdynamic -o ${Scheme} ${Main} ${KernelLib} ${mdclib} ${zlibLib} ${LZ4Lib} ${LDFLAGS}
../zlib/configure.log:
(cd ../zlib; CFLAGS="${CFLAGS} -m64" ./configure --64)

View File

@ -32,10 +32,13 @@ mdobj = i3le.o
include Mf-base
${Kernel}: ${kernelobj} ${zlibDep} ${LZ4Dep}
ld -r -X -o ${Kernel} ${kernelobj} ${zlibLib} ${LZ4Lib}
${LD} -r -X -o ${Kernel} ${kernelobj} ${zlibLib} ${LZ4Lib}
${Scheme}: ${Kernel} ${Main}
$C -rdynamic -o ${Scheme} ${Kernel} ${Main} ${mdclib} ${LDFLAGS}
${KernelLib}: ${kernelobj}
${AR} ${ARFLAGS} ${KernelLib} ${kernelobj}
${Scheme}: ${KernelLib} ${zlibDep} ${LZ4Dep} ${Main}
$C -rdynamic -o ${Scheme} ${Main} ${KernelLib} ${mdclib} ${zlibLib} ${LZ4Lib} ${LDFLAGS}
paxctl +m ${Scheme}
../zlib/configure.log:

View File

@ -41,14 +41,17 @@ make.bat: vs.bat
C = ${CC} ${CPPFLAGS} -O2 ${CFLAGS}
${Scheme}${cross:t=}: ${Kernel} ${Main}
$C -o ${Scheme} ${Kernel} ${Main} ${mdclib} ${LDFLAGS} -lshell32 -luser32 -lole32 -lrpcrt4 -luuid
${Scheme}${cross:t=}: ${Main} ${KernelLib} ${zlibDep} ${LZ4Dep}
$C -o ${Scheme} ${Main} ${KernelLib} ${mdclib} ${zlibLib} ${LZ4Lib} ${LDFLAGS} -lshell32 -luser32 -lole32 -lrpcrt4 -luuid
.c.$o:
$C -c -D${Cpu} -I${Include} ${zlibInc} ${LZ4Inc} $*.c
${KernelLib}: ${kernelobj}
${AR} ${ARFLAGS} ${KernelLib} ${kernelobj}
${Kernel}: ${kernelobj} ${zlibDep} ${LZ4Dep}
$(LD) -r -X -o ${Kernel} ${kernelobj} ${zlibLib} ${LZ4Lib}
${LD} -r -X -o ${Kernel} ${kernelobj} ${zlibLib} ${LZ4Lib}
../zlib/configure.log:
echo "all:" >> ../zlib/Makefile

View File

@ -32,10 +32,13 @@ mdobj = i3le.o
include Mf-base
${Kernel}: ${kernelobj} ${zlibDep} ${LZ4Dep}
ld -r -X -o ${Kernel} ${kernelobj} ${zlibLib} ${LZ4Lib}
${LD} -r -X -o ${Kernel} ${kernelobj} ${zlibLib} ${LZ4Lib}
${Scheme}: ${Kernel} ${Main}
$C -rdynamic -Wl,--export-dynamic -Wl,-zwxneeded -o ${Scheme} ${Kernel} ${Main} ${mdclib} ${LDFLAGS}
${KernelLib}: ${kernelobj}
${AR} ${ARFLAGS} ${KernelLib} ${kernelobj}
${Scheme}: ${KernelLib} ${zlibDep} ${LZ4Dep} ${Main}
$C -rdynamic -Wl,--export-dynamic -Wl,-zwxneeded -o ${Scheme} ${Main} ${KernelLib} ${mdclib} ${zlibLib} ${LZ4Lib} ${LDFLAGS}
../zlib/configure.log:
(cd ../zlib; CFLAGS="${CFLAGS} -m64" ./configure --64)

View File

@ -31,10 +31,13 @@ mdobj = i3le.o
include Mf-base
${Kernel}: ${kernelobj} ${zlibDep} ${LZ4Dep}
ld -r -o ${Kernel} ${kernelobj} ${zlibLib} ${LZ4Lib}
${LD} -r -o ${Kernel} ${kernelobj} ${zlibLib} ${LZ4Lib}
${Scheme}: ${Kernel} ${Main}
$C -o ${Scheme} ${Kernel} ${Main} ${mdclib} ${LDFLAGS}
${KernelLib}: ${kernelobj}
${AR} ${ARFLAGS} ${KernelLib} ${kernelobj}
${Scheme}: ${KernelLib} ${zlibDep} ${LZ4Dep} ${Main}
$C -o ${Scheme} ${Main} ${KernelLib} ${mdclib} ${zlibLib} ${LZ4Lib} ${LDFLAGS}
../zlib/configure.log:
(cd ../zlib; CFLAGS="${CFLAGS} -m64" ./configure --64)

View File

@ -31,10 +31,13 @@ mdobj = i3le.o
include Mf-base
${Kernel}: ${kernelobj} ${zlibDep} ${LZ4Dep}
ld -melf_x86_64 -r -X -o ${Kernel} ${kernelobj} ${zlibLib} ${LZ4Lib}
${LD} -melf_x86_64 -r -X -o ${Kernel} ${kernelobj} ${zlibLib} ${LZ4Lib}
${Scheme}: ${Kernel} ${Main}
$C -o ${Scheme} ${Kernel} ${Main} ${mdclib} ${LDFLAGS}
${KernelLib}: ${kernelobj}
${AR} ${ARFLAGS} ${KernelLib} ${kernelobj}
${Scheme}: ${KernelLib} ${zlibDep} ${LZ4Dep} ${Main}
$C -o ${Scheme} ${Main} ${KernelLib} ${mdclib} ${zlibLib} ${LZ4Lib} ${LDFLAGS}
../zlib/configure.log:
(cd ../zlib; CFLAGS="${CFLAGS} -m64" ./configure --64)

View File

@ -32,10 +32,13 @@ mdobj = i3le.o
include Mf-base
${Kernel}: ${kernelobj} ${zlibDep} ${LZ4Dep}
ld -r -X -o ${Kernel} ${kernelobj} ${zlibLib} ${LZ4Lib}
${LD} -r -X -o ${Kernel} ${kernelobj} ${zlibLib} ${LZ4Lib}
${Scheme}: ${Kernel} ${Main}
$C -rdynamic -o ${Scheme} ${Kernel} ${Main} ${mdclib} ${LDFLAGS}
${KernelLib}: ${kernelobj}
${AR} ${ARFLAGS} ${KernelLib} ${kernelobj}
${Scheme}: ${KernelLib} ${zlibDep} ${LZ4Dep} ${Main}
$C -rdynamic -o ${Scheme} ${Main} ${KernelLib} ${mdclib} ${zlibLib} ${LZ4Lib} ${LDFLAGS}
../zlib/configure.log:
(cd ../zlib; CFLAGS="${CFLAGS} -m32" ./configure)

View File

@ -31,10 +31,13 @@ mdobj = i3le.o
include Mf-base
${Kernel}: ${kernelobj} ${zlibDep} ${LZ4Dep}
ld -melf_i386 -r -X -o ${Kernel} ${kernelobj} ${zlibLib} ${LZ4Lib}
${LD} -melf_i386 -r -X -o ${Kernel} ${kernelobj} ${zlibLib} ${LZ4Lib}
${Scheme}: ${Kernel} ${Main}
$C -rdynamic -o ${Scheme} ${Kernel} ${Main} ${mdclib} ${LDFLAGS}
${KernelLib}: ${kernelobj}
${AR} ${ARFLAGS} ${KernelLib} ${kernelobj}
${Scheme}: ${KernelLib} ${zlibDep} ${LZ4Dep} ${Main}
$C -rdynamic -o ${Scheme} ${Main} ${KernelLib} ${mdclib} ${zlibLib} ${LZ4Lib} ${LDFLAGS}
../zlib/configure.log:
(cd ../zlib; CFLAGS="${CFLAGS} -m32" ./configure)

View File

@ -32,10 +32,13 @@ mdobj = i3le.o
include Mf-base
${Kernel}: ${kernelobj} ${zlibDep} ${LZ4Dep}
ld -m elf_i386 -r -X -o ${Kernel} ${kernelobj} ${zlibLib} ${LZ4Lib}
${LD} -m elf_i386 -r -X -o ${Kernel} ${kernelobj} ${zlibLib} ${LZ4Lib}
${Scheme}: ${Kernel} ${Main}
$C -rdynamic -o ${Scheme} ${Kernel} ${Main} ${mdclib} ${LDFLAGS}
${KernelLib}: ${kernelobj}
${AR} ${ARFLAGS} ${KernelLib} ${kernelobj}
${Scheme}: ${KernelLib} ${zlibDep} ${LZ4Dep} ${Main}
$C -rdynamic -o ${Scheme} ${Main} ${KernelLib} ${mdclib} ${zlibLib} ${LZ4Lib} ${LDFLAGS}
../zlib/configure.log:
(cd ../zlib; CFLAGS="${CFLAGS} -m32" ./configure)

View File

@ -41,14 +41,17 @@ make.bat: vs.bat
C = ${CC} ${CPPFLAGS} -O2 ${CFLAGS}
${Scheme}${cross:t=}: ${Kernel} ${Main}
$C -o ${Scheme} ${Kernel} ${Main} ${mdclib} ${LDFLAGS} -lshell32 -luser32 -lole32 -lrpcrt4 -luuid
${Scheme}${cross:t=}: ${Main} ${KernelLib} ${zlibDep} ${LZ4Dep}
$C -o ${Scheme} ${Main} ${KernelLib} ${mdclib} ${zlibLib} ${LZ4Lib} ${LDFLAGS} -lshell32 -luser32 -lole32 -lrpcrt4 -luuid
.c.$o:
$C -c -D${Cpu} -I${Include} ${zlibInc} ${LZ4Inc} $*.c
${KernelLib}: ${kernelobj}
${AR} ${ARFLAGS} ${KernelLib} ${kernelobj}
${Kernel}: ${kernelobj} ${zlibDep} ${LZ4Dep}
$(LD) -r -X -o ${Kernel} ${kernelobj} ${zlibLib} ${LZ4Lib}
${LD} -r -X -o ${Kernel} ${kernelobj} ${zlibLib} ${LZ4Lib}
../zlib/configure.log:
echo "all:" >> ../zlib/Makefile

View File

@ -32,10 +32,13 @@ mdobj = i3le.o
include Mf-base
${Kernel}: ${kernelobj} ${zlibDep} ${LZ4Dep}
ld -r -X -o ${Kernel} ${kernelobj} ${zlibLib} ${LZ4Lib}
${LD} -r -X -o ${Kernel} ${kernelobj} ${zlibLib} ${LZ4Lib}
${Scheme}: ${Kernel} ${Main}
$C -rdynamic -Wl,--export-dynamic -Wl,-zwxneeded -o ${Scheme} ${Kernel} ${Main} ${mdclib} ${LDFLAGS}
${KernelLib}: ${kernelobj}
${AR} ${ARFLAGS} ${KernelLib} ${kernelobj}
${Scheme}: ${KernelLib} ${zlibDep} ${LZ4Dep} ${Main}
$C -rdynamic -Wl,--export-dynamic -Wl,-zwxneeded -o ${Scheme} ${Main} ${KernelLib} ${mdclib} ${zlibLib} ${LZ4Lib} ${LDFLAGS}
../zlib/configure.log:
(cd ../zlib; CFLAGS="${CFLAGS} -m32" ./configure)

View File

@ -31,10 +31,13 @@ mdobj = i3le.o
include Mf-base
${Kernel}: ${kernelobj} ${zlibDep} ${LZ4Dep}
ld -r -o ${Kernel} ${kernelobj} ${zlibLib} ${LZ4Lib}
${LD} -r -o ${Kernel} ${kernelobj} ${zlibLib} ${LZ4Lib}
${Scheme}: ${Kernel} ${Main}
$C -o ${Scheme} ${Kernel} ${Main} ${mdclib} ${LDFLAGS}
${KernelLib}: ${kernelobj}
${AR} ${ARFLAGS} ${KernelLib} ${kernelobj}
${Scheme}: ${KernelLib} ${zlibDep} ${LZ4Dep} ${Main}
$C -o ${Scheme} ${Main} ${KernelLib} ${mdclib} ${zlibLib} ${LZ4Lib} ${LDFLAGS}
../zlib/configure.log:
(cd ../zlib; CFLAGS="${CFLAGS} -m32" ./configure)

View File

@ -31,10 +31,13 @@ mdobj = i3le.o
include Mf-base
${Kernel}: ${kernelobj} ${zlibDep} ${LZ4Dep}
ld -melf_i386 -r -X -o ${Kernel} ${kernelobj} ${zlibLib} ${LZ4Lib}
${LD} -melf_i386 -r -X -o ${Kernel} ${kernelobj} ${zlibLib} ${LZ4Lib}
${Scheme}: ${Kernel} ${Main}
$C -o ${Scheme} ${Kernel} ${Main} ${mdclib} ${LDFLAGS}
${KernelLib}: ${kernelobj}
${AR} ${ARFLAGS} ${KernelLib} ${kernelobj}
${Scheme}: ${KernelLib} ${zlibDep} ${LZ4Dep} ${Main}
$C -o ${Scheme} ${Main} ${KernelLib} ${mdclib} ${zlibLib} ${LZ4Lib} ${LDFLAGS}
../zlib/configure.log:
(cd ../zlib; CFLAGS="${CFLAGS} -m32" ./configure)

View File

@ -31,10 +31,13 @@ mdobj = ppc32le.o
include Mf-base
${Kernel}: ${kernelobj} ${zlibDep} ${LZ4Dep}
ld -r -X -o ${Kernel} ${kernelobj} ${zlibLib} ${LZ4Lib}
${LD} -r -X -o ${Kernel} ${kernelobj} ${zlibLib} ${LZ4Lib}
${Scheme}: ${Kernel} ${Main}
$C -rdynamic -o ${Scheme} ${Kernel} ${Main} ${mdclib} ${LDFLAGS}
${KernelLib}: ${kernelobj}
${AR} ${ARFLAGS} ${KernelLib} ${kernelobj}
${Scheme}: ${KernelLib} ${zlibDep} ${LZ4Dep} ${Main}
$C -rdynamic -o ${Scheme} ${Main} ${KernelLib} ${mdclib} ${zlibLib} ${LZ4Lib} ${LDFLAGS}
../zlib/configure.log:
(cd ../zlib; CFLAGS="${CFLAGS} -m32" ./configure)

View File

@ -418,3 +418,6 @@ extern char *S_windows_getcwd(char *buffer, int maxlen);
/* expeditor.c */
extern void S_expeditor_init PROTO((void));
#endif /* FEATURE_EXPEDITOR */
/* statics.c */
extern void scheme_statics();

View File

@ -64,7 +64,7 @@ EXTERN ptr S_foreign_dynamic;
#endif
/* globals that do need to be preserved in a saved heap */
EXTERN struct {
EXTERN struct S_G_struct {
/* scheme.c */
double thread_context[size_tc / sizeof(double)];
ptr active_threads_id;

View File

@ -43,11 +43,16 @@ static void main_init PROTO((void));
static void idiot_checks PROTO((void));
static INT run_script PROTO((const char *who, const char *scriptfile, INT argc, const char *argv[], IBOOL programp));
extern void scheme_include(void);
static void main_init() {
ptr tc = get_thread_context();
ptr p;
INT i;
/* create dependency for linker */
scheme_statics();
/* force thread inline allocation to go through find_room until ready */
AP(tc) = (ptr)0;
EAP(tc) = (ptr)0;

View File

@ -16,3 +16,8 @@
#define EXTERN
#include "system.h"
/* The C linker may require a reference to a function to pull in all
the common declarations. */
#include "externs.h"
void scheme_statics() { }

2
configure vendored
View File

@ -45,7 +45,7 @@ disablecurses=no
: ${LD:="ld"}
: ${LDFLAGS:=""}
: ${AR:="ar"}
: ${ARFLAGS:="ruv"}
: ${ARFLAGS:="rc"}
: ${RANLIB:="ranlib"}
: ${WINDRES:="windres"}
zlibInc=-I../zlib