81 Commits

Author SHA1 Message Date
16c7924425 libs: get rid of libstdio (and stdio.h); mv ctype.h chartypes.h in /sys/include 2020-09-17 23:53:35 +02:00
0a325039bf gcc & system build: add -9 and remove --posix from build files 2020-09-17 23:53:12 +02:00
f535d68985 qa: various fixes 2020-09-17 23:51:10 +02:00
bb2a39cc74 kern: fix compilation warning; raise qa timeouts 2020-09-17 23:49:33 +02:00
4067cb45cb libc: refactoring 2020-09-17 23:47:39 +02:00
ea21d3cd2d libposix: add support for O_NONBLOCK
We keep a list of non blocking fds and use awake to
make them not block on read, write, pread and pwrite.
2018-01-15 22:37:27 +01:00
001069aa7b libposix: deep refactor; add sys/posixly command
With these changes, libposix (and newlib) can run MirBSD Korn Shell.
2017-12-18 23:02:36 +01:00
90c3415176 kernel: fix _procfdprint to use chan's flags 2017-10-25 01:17:31 +02:00
320e6e6f35 kern: clone $pid's namespace writing #p/$pid/ns
Any process X can get a new copy of the namespace of a target
process Y by writing the string "clone" to the ns file of Y.

The same user must own both processes.
The process writing the ns file must be allowed to mount.

The Pgrp of the calling process is then replaced with a new copy of
the Pgrp of the target process.

After the operation, any change done by X to its own namespace does
not affect Y. Also, if mount was forbidden for Y, it will also be
forbidden for X after the clone.
2017-10-24 23:28:14 +02:00
9202b04504 rc: use some uppercase variables (PATH, USER...) 2017-10-22 13:22:37 +02:00
d6d65887b2 libc: rename $apid to $APID 2017-10-20 02:05:13 +02:00
f3b882ba4a qa: add setsid test to newlib 2017-09-08 00:15:12 +02:00
a97830e493 newlib: add qa test for setjmp/longjmp 2017-09-03 17:41:55 +02:00
6fd5c75ab3 qa/check: allow tests to SKIP themselves 2017-08-31 00:29:52 +02:00
e888e52502 qa: newlib: fix 102-files so that it works with disk based roots (runDisk.sh) 2017-08-30 00:15:50 +02:00
713eb8843f libc: simplify access; libposix: let access lie
There are a few issues with Plan 9's `access`:

- it has side effects: to test the actual access (that the file
  servers can allow or deny according to complex custom rules)
  it opens and then closes the file, allocating (and disposing) the fd
- it does not work on directories, since
  - they cannot be opened for writing, despite the fact that to
    create a file in a directory you must be granted write access on
    that directory
  - they cannot be opened for execution, despite the fact that to
    access a file in a directory you must be granted execution access
    on that directory

Despite the fact that `access` (even on UNIX) is a violation of the
"tell, don't ask" principle (the access could be forbidden just after
its successful return, making subsequent `open` fail anyway), this
fact smells of a little design error in the file interface.

So, right now we choose to let the libposix's `access` lie on directories:
it will always return 0 on AWRITE and AEXEC for them, accepting that
a successive create/mkdir may fail.

However, a cleaner file API and protocol should allow a simpler `access`
to be implemented for directories too.
2017-08-29 00:17:51 +02:00
fe173086f7 qa: improved newlib/103-files.c (testing access, mkdir, chdir and getcwd) 2017-08-28 23:04:31 +02:00
9bdbd9b09d qa: improve newlib/040-gettimeofday.c 2017-08-28 23:04:31 +02:00
b78613615d libposix: add access 2017-08-28 23:04:12 +02:00
44fa703f84 qa: fix test newlib/040-gettimeofday.c 2017-08-25 23:33:10 +02:00
bd149a18f1 libposix: implement gettimeofday 2017-08-25 00:53:10 +02:00
2409419ba2 qa: fix 199-files-CLEAR.runner 2017-08-24 00:14:02 +02:00
6158d0e166 qa: newlib test for chdir and mkdir 2017-08-23 04:25:30 +02:00
511bbd36af qa: newlib: better messages in 100-files 2017-08-22 02:45:49 +02:00
97c4c2bccb qa: add test for opendir/readdir/closedir in newlib 2017-08-22 01:41:15 +02:00
6dd00801dc libposix: introduce pause() (still to be integrated in newlib) 2017-08-18 00:50:07 +02:00
ef6aa99b74 qa: libc: slow note handlers cant't break sleep 2017-08-16 00:37:39 +02:00
d796c73e89 qa: fix broken.runner 2017-08-15 00:53:04 +02:00
df8bc2ce43 qa: increase rlockt1 timeout 2017-08-14 18:46:23 +02:00
1b4b6d1574 qa: reenable newlib's tests 2017-08-13 12:33:18 +02:00
d573d0a39c qa: disable newlib's test 202-signals 2017-08-13 00:06:04 +02:00
99124f1578 qa: disable newlib's test 201-signals
For some reason it hangs on travis-ci.
2017-08-12 23:55:39 +02:00
e57ff30b63 qa: release cpu on newlib/201-signals and newlib/202-signals 2017-08-12 23:33:38 +02:00
93dfad6b0b kernel: print proc info on addbroken 2017-08-12 23:32:35 +02:00
1c4a04cd30 qa: various fix to tests 2017-08-11 03:18:32 +02:00
2a38ee6ab6 qa: fix typo in test 2017-06-06 19:53:45 +02:00
4f97f4a80b qa: disable broken tests 2017-06-05 22:11:36 +02:00
9f4472c3bb kernel: simplified fork_chain test 2017-06-05 19:25:08 +02:00
2269a4bbd0 kernel: minimal test that panic the mmu code 2017-06-03 23:23:42 +02:00
a64a7b0d0e qa: check that notes cannot eat wait messages 2017-05-30 01:00:03 +02:00
a8d42cecc9 newlib: use SIGINT to avoid abort 2017-05-29 23:45:00 +02:00
9dc9001469 newlib: test ignored signals (broken) 2017-05-29 01:53:37 +02:00
559e5429ed newlib: tests for sigchld 2017-05-29 01:42:08 +02:00
fe168aa55d newlib: introduce tests for SIGCHLD 2017-05-26 02:12:42 +02:00
5ca0ef085c newlib: fix test for SIGSTOP/SIGCONT 2017-05-26 00:39:47 +02:00
439326fa1f newlib: enabled more tests for signals (still broken) 2017-05-25 22:43:38 +02:00
f9c63742bb qa: simplify test that crash with -O2 2017-05-22 23:18:47 +02:00
1eb450510a qa: add test that crash with -O2 2017-05-21 23:16:41 +02:00
fa15f817c4 qa: avoid cast that preclude strict aliasing 2017-05-19 01:09:51 +02:00
960e8a0d4e qa/kern: more tests for awake 2017-05-17 00:52:16 +02:00