George Koehler
a585ddf578
Fix parameters of signal handlers for linuxppc.
...
Linux passes the arguments in registers, but our compiler expects
arguments on the stack. Signal handlers got garbage instead of the
signal number. Some handlers, like the one in lang/m2/libm2/sigtrp.c,
need the correct signal number.
I write a "bridge" in PowerPC assembly that moves the arguments to the
stack. I put the bridge in sigaction(), so I provide a signal() that
calls sigaction(). I remove the *.c glob or wildcard from build.lua,
so linuxppc only compiles its own signal.c, not the other signal.c for
linux386 and linux68k.
My bridge uses sigprocmask(), so I also add sigprocmask(). Because
linux386 and linux68k use globs, they also get sigprocmask(). I sync
the header files so all three Linux platforms declare execve(),
sigprocmask(), and unlink(), but not remove(), because we have
remove() in <stdio.h>.
I am using sigaction.s to test some features that we recently added to
our PowerPC assembler. These are the "hi16[...]" and "lo16[...]"
syntax, and also the extended names like "beq", "cmpwi", "li", "subi".
2017-01-22 00:52:32 -05:00
David Given
51862cff82
Merge pull request #32 from dram/add-execve
...
Add execve() system call for Linux
2017-01-07 23:23:00 +01:00
Xin Wang
24d26b2826
Add execve() system call for Linux
2017-01-06 18:33:52 +08:00
David Given
0e10329876
Fix an issue throughout where B couldn't be built by ackprogram due to symbol
...
laziness.
2016-12-29 17:11:53 +00:00
David Given
4485d89b23
Hook the B compiler up to the compiler driver.
2016-11-27 20:48:07 +01:00
David Given
5bce5fc4da
Change the extension used by Basic files for .b to .bas, to avoid conflicts
...
with B.
2016-11-27 20:38:33 +01:00
David Given
a9a0b37b14
Plats which use aelflod need to depend on it.
2016-11-26 12:07:08 +01:00
David Given
98c761d5c0
Enable tests for linux386 via qemu-i386.
2016-11-26 11:58:02 +01:00
David Given
36ab90385f
Change sbrk() to take an int rather than an intptr_t (following the OpenBSD way
...
rather than the Linux way; various non-C bits of the ACK assume it takes an
int, so it's cleaner).
2016-11-23 22:06:24 +01:00
David Given
f67c98e239
Distributions are a pain --- let's not bother any more. Instead, we just tag
...
the repository and download a complete snapshot, old and ancient stuff and all.
2016-09-02 23:00:38 +02:00
David Given
612e38f1c6
Remove the old make-based build system, plus some big chunks of horribly
...
obsolete protomake build system.
2016-09-02 22:17:51 +02:00
David Given
5bae29a00c
ego now builds and is used.
...
This needed lots of refactoring to ego --- not all platforms have ego descr
files, and ego will just crash if you invoke it without one. I think originally
it was never intended that these platforms would be used at -O2 or above.
Plats now only specify the ego descr file if they have one.
2016-08-21 22:01:19 +02:00
David Given
edee22510b
liblinux is no more; its files are now in libsys.
2016-08-20 14:03:49 +02:00
David Given
420c47c386
Fix dependency error (only shows up with make, not ninja. Odd).
2016-08-15 00:46:43 +02:00
David Given
3df4906d52
Turns out I wasn't building the syscall libraries. Do so.
2016-08-14 11:23:57 +02:00
David Given
b549980af2
Wasn't exporting the plat headers; refactor to make this a little cleaner.
2016-08-14 11:01:36 +02:00
David Given
f253b6a169
linux386 builds. Also, forgot to turn back on the language runtimes.
2016-08-14 10:37:55 +02:00
David Given
88bd7ce126
Remove defunct pmfiles.
...
--HG--
branch : default-branch
2016-06-03 13:56:50 +02:00
David Given
92817a6ad7
Allow platforms to specify size of long double; seperate alignment from size.
...
--HG--
branch : dtrg-videocore
2013-05-21 19:18:11 +01:00
David Given
11377070fd
Update distribution files.
...
--HG--
branch : dtrg-buildsystem
2013-05-15 23:46:15 +01:00
David Given
07453d184a
Top, topgen, aelflod. Moved the libraries back into the platform-specific
...
directories --- wrangling descr files was too hard. C programs can be built
for cpm, pc86, linux386, linux68k!
--HG--
branch : dtrg-buildsystem
rename : util/ack/build.mk => util/led/build.mk
rename : util/LLgen/build.mk => util/topgen/build.mk
2013-05-13 23:26:15 +01:00
David Given
442306d557
Split off some of the platform-independent stuff (such as as and ncg).
...
--HG--
branch : dtrg-buildsystem
rename : plat/pc86/build.mk => mach/i386/build.mk
rename : plat/pc86/build.mk => mach/i80/build.mk
rename : plat/pc86/build.mk => mach/i86/build.mk
rename : plat/pc86/build.mk => mach/m68020/build.mk
rename : plat/pc86/build.mk => mach/powerpc/build.mk
2013-05-13 22:12:46 +01:00
David Given
81778b603f
Merge updates from trunk.
...
--HG--
branch : dtrg-buildsystem
2013-05-13 12:37:27 +01:00
David Given
b0c238eb5d
Made a start on building the runtimes for each platform and language; the
...
Linuxes all build.
--HG--
branch : dtrg-buildsystem
rename : modules/src/em_mes/build.mk => modules/src/read_em/build.mk
rename : plat/pc86/build.mk => plat/linux386/build.mk
rename : plat/pc86/build.mk => plat/linux68k/build.mk
rename : plat/pc86/build.mk => plat/linuxppc/build.mk
rename : util/ack/build.mk => util/misc/build.mk
2013-05-12 23:51:55 +01:00
David Given
b9b808e01a
Apply George Koehler's aelflod fix for generating non-EM_386 binaries.
...
Adjust platforms to use it. Fix some bugs in the linux386 platform.
--HG--
branch : dtrg-experimental-powerpc
2013-05-09 15:54:23 +01:00
David Given
c93cb69959
Check in incomplete Linux PowerPC and M68K work.
...
--HG--
branch : dtrg-experimental-powerpc
2013-05-08 00:48:48 +01:00
dtrg
7292b538bc
Added support for remove() and unlink().
2010-09-27 20:44:49 +00:00
dtrg
085f346f8c
Fixed definitions of O_* flags.
2010-08-20 19:27:09 +00:00
dtrg
a0c67da261
Changed to actually work. (On modern Linux systems the old version just
...
crashes. On old Linux systems it apparently only worked by accident.)
2010-08-06 17:06:31 +00:00
dtrg
78777e802b
Now using more conservative optimisation due to random seg fault issues.
2007-04-29 23:02:23 +00:00
dtrg
eb4ea1e761
Use better optimisation options.
2007-04-29 21:24:17 +00:00
dtrg
a7323e1a8b
Documented floating-point status.
2007-04-28 22:34:47 +00:00
dtrg
24ea8aee3d
Updated for the 6.0pre2 release.
2007-04-24 20:45:58 +00:00
dtrg
740940c9fc
Fixed major typos in the signal declarations that was preventing anything that used signal() from compiling.
2007-04-24 19:34:34 +00:00
dtrg
b8e1348f2a
Ensured that _errno is always defined. Rejigged the pc86 boot code so it doesn't always waste 510 bytes of memory.
2007-04-24 19:25:00 +00:00
dtrg
9b920e59cb
Now fetches argc, argv, env correctly from the host OS.
2007-04-23 23:24:03 +00:00
dtrg
b500b1a7b7
Added linux386 platform.
2007-04-21 23:02:11 +00:00