26de4c1ab1
The new test rck_e.e segfaults on PowerPC unless I make some changes. The inline code for _rck_ was wrong because it didn't allow the trap handler to return. _sig_ forgot to push the old trap handler. Move plat/linuxppc/libsys/trap.s to mach/powerpc/libem/trp.s and rewrite it with simplified/extended mnemonics. Remove .trap alias for .trp procedure. Add a missing `mtspr lr, r0` so we can return from the trap handler. Call write() and _exit() so trp.s works with both linuxppc and osxppc. Before, Mac OS X was wrongly using the trap.s for Linux. In powerpc/libem, simplify .aar4; teach .csa and .csb to raise the trap if the default target is zero. C programs don't need these changes. You may relink your C programs with the changed .csa and .csb, but C code doesn't raise the trap. Modula-2 code can raise traps, so you may want to relink your Modula-2 programs with the changed libem, but you might keep your old .o files from Modula-2. You may need to recompile your Pascal programs (delete old .o files from Pascal) because the Pascal compiler might use _rck_.
36 lines
811 B
Lua
36 lines
811 B
Lua
acklibrary {
|
|
name = "lib",
|
|
srcs = {
|
|
"./_syscall.s",
|
|
"./sigaction.s",
|
|
"./signal.c",
|
|
"plat/linux/libsys/_exit.c",
|
|
"plat/linux/libsys/_hol0.s",
|
|
"plat/linux/libsys/close.c",
|
|
"plat/linux/libsys/creat.c",
|
|
"plat/linux/libsys/errno.s",
|
|
"plat/linux/libsys/execve.c",
|
|
"plat/linux/libsys/getpid.c",
|
|
"plat/linux/libsys/gettimeofday.c",
|
|
"plat/linux/libsys/ioctl.c",
|
|
"plat/linux/libsys/isatty.c",
|
|
"plat/linux/libsys/kill.c",
|
|
"plat/linux/libsys/lseek.c",
|
|
"plat/linux/libsys/open.c",
|
|
"plat/linux/libsys/read.c",
|
|
"plat/linux/libsys/sbrk.c",
|
|
-- omit signal.c
|
|
"plat/linux/libsys/sigprocmask.c",
|
|
"plat/linux/libsys/unlink.c",
|
|
"plat/linux/libsys/write.c",
|
|
},
|
|
deps = {
|
|
"lang/cem/libcc.ansi/headers+headers",
|
|
"plat/linuxppc/include+headers",
|
|
},
|
|
vars = {
|
|
plat = "linuxppc"
|
|
}
|
|
}
|
|
|