diff options
Diffstat (limited to 'open_issues/llvm.mdwn')
-rw-r--r-- | open_issues/llvm.mdwn | 91 |
1 files changed, 77 insertions, 14 deletions
diff --git a/open_issues/llvm.mdwn b/open_issues/llvm.mdwn index 56b4513e..2a4b4ed5 100644 --- a/open_issues/llvm.mdwn +++ b/open_issues/llvm.mdwn @@ -47,10 +47,10 @@ git log --reverse --topo-order --pretty=fuller --stat=$COLUMNS,$COLUMNS -w -p -C --> Last reviewed up to the [[Git mirror's sources|source_repositories/llvm]]: llvm -e68542e67e5c0f8d4bbdae0dde6ccd24525a18e3 (2013-02-13), clang -2cbd427ec533f022f612fed0dd93ef5fa214478a (2013-02-12), compiler-rt -c242446f7a7c6a0c1f1bf9ad403d6dac6f215f1c (2013-02-12), test-suite -f621d1a62904df136cbaf4e4e63cbf9e9c45fd10 (2013-02-08). +6f7becfe23f38e8c28e9422d883263974058aeed (2013-03-24), clang +495cfa46300979642acde8d93a1f21c9291dac98 (2013-03-23), compiler-rt +a06fe9183fbffb78798a444da9bc3040fdd444aa (2013-03-23), test-suite +5a05572d268568fb15b48f374f9fc9f882adecd2 (2013-03-23). * <http://anonscm.debian.org/viewvc/pkg-llvm/llvm/trunk/debian/patches/>. @@ -69,12 +69,22 @@ f621d1a62904df136cbaf4e4e63cbf9e9c45fd10 (2013-02-08). * [low] Linuxisms + * In some CMake files (`CMakeLists.txt`, for example). + * `test/`, `unittests`, `tools/clang/test/`, `tools/clang/unittests/` not yet examined. * In clang's `test/Driver/` a lot of testing can be generalized from *Linux* to *GNU environment*, adding GNU/Hurd testing, too. + * LLVM commit 98fbe27ac8f0766ea94b89b8c03418131b72bea4 `Support for + HiPE-compatible code emission` + + Only relevant for `CallingConv::HiPE`. + + + assert(ST->isTargetLinux() && + + "HiPE prologue is only supported on Linux operating systems."); + * `compiler-rt` and `test-suite` not yet examined. * `/proc` usage @@ -92,11 +102,11 @@ f621d1a62904df136cbaf4e4e63cbf9e9c45fd10 (2013-02-08). Here's a log of a LLVM build run; this is from our [[Git repository's sources|source_repositories/llvm]], llvm -829831c561ca75cb81cbe217dee25b52dbe0e2f0 (2013-02-13), clang -6b02a96cdeecb9cc2070a5a5684d62bb32ba40d6 (2013-02-13), compiler-rt -c242446f7a7c6a0c1f1bf9ad403d6dac6f215f1c (2013-02-12), test-suite -f8647dbb30c3ee173c038aff10f815b0ba856793 (2013-02-09), run on kepler.SCHWINGE -and coulomb.SCHWINGE. +dc218fb6ae3241f4b66e9bf2c9d6352efecc0a14 (2013-03-24), clang +744290b5ecd48bddb4a6cf96d68cdc4a57e24e36 (2013-03-24), compiler-rt +a06fe9183fbffb78798a444da9bc3040fdd444aa (2013-03-23), test-suite +1821ab0ef1c73430705356fdfde3769460092382 (2013-03-24), run on +kepler.SCHWINGE and coulomb.SCHWINGE. $ export LC_ALL=C $ (cd ../Horace_Silver/ && ln -sfn ../../../clang/tschwinge/Hank_Mobley tools/clang) @@ -118,8 +128,8 @@ for the corresponding GNU/Linux build). Using `--enable-debug-symbols the corresponding GNU/Linux build). Also there is a separate `--enable-debug-runtime`. -This takes up around 3 GiB, and needs roughly 1.25 h on kepler.SCHWINGE and -4.25 h on coulomb.SCHWINGE. +This takes up around 3.2 GiB, and needs roughly 1.5 h on kepler.SCHWINGE and +5.25 h on coulomb.SCHWINGE. Configuring without `--enable-optimized` even crashes mighty darnassus, probably because of too-big files when linking. Configuring with @@ -164,7 +174,7 @@ TODO $ make VERBOSE=1 install 2>&1 | tee log_install -This takes up around 350 MiB, and needs roughly 1 min on kepler.SCHWINGE and 12 +This takes up around 400 MiB, and needs roughly 1 min on kepler.SCHWINGE and 12 min on coulomb.SCHWINGE. @@ -183,8 +193,8 @@ TODO `LIT_ARGS=-v` is default for `VERBOSE=1`, but we want only one worker thread, for stable order and usable test output log. -This needs roughly 10 min (`check-all`) + 145 min (test-suite) = 155 min on -kepler.SCHWINGE and 40 min (`check-all`) + 80 min (test-suite) = 120 min on +This needs roughly 10 min (`check-all`) + 150 min (test-suite) = 160 min on +kepler.SCHWINGE and 45 min (`check-all`) + 165 min (test-suite) = 210 min on coulomb.SCHWINGE. @@ -227,6 +237,59 @@ coulomb.SCHWINGE. [...] int x; + #include <stdio.h> + #include <unistd.h> + + int main(int argc, char *argv[]) + { + while (argc > 0) + { + int err; + char *f = argv[argc -1]; + + err = access(f, F_OK); + if (err < 0) + printf("%s: %m\n", f); + + argc--; + } + + return 0; + } + + $ ./a.out /dev/fd/0 < /dev/null + $ cat < /dev/null | ./a.out /dev/fd/0 + /dev/fd/0: (ipc/mig) bad request message ID + + `file_check_access` fails with `MIG_BAD_ID`, meaning this RPC is not + implemented. + + The difference is that the former directly refers to the `/dev/null` + instance, whereas the latter goes through an intermediate pflocal instance. + + Similarly: + + $ stat /dev/fd/0 < /dev/null + File: `/dev/fd/0' + Size: 0 Blocks: 0 IO Block: 1048576 character special file + Device: 17h/23d Inode: 342820 Links: 1 Device type: 0,0 + Access: (0666/crw-rw-rw-) Uid: ( 0/ root) Gid: ( 0/ root) + Access: 2012-11-27 16:03:19.000000000 +0100 + Modify: 2012-11-27 16:03:19.000000000 +0100 + Change: 2012-11-27 16:03:19.000000000 +0100 + Birth: - + $ cat < /dev/null | stat /dev/fd/0 + File: `/dev/fd/0' + Size: 0 Blocks: 0 IO Block: 65536 fifo + Device: 9h/9d Inode: 0 Links: 0 + Access: (0000/p---------) Uid: ( 0/ root) Gid: ( 0/ root) + Access: 1970-01-01 01:00:00.000000000 +0100 + Modify: 1970-01-01 01:00:00.000000000 +0100 + Change: 1970-01-01 01:00:00.000000000 +0100 + Birth: - + + `io_stat_request` fills in these values. + * `Clang :: Tooling/clang-check-builtin-headers.cpp` Fails: `fatal error: 'stddef.h' file not found`; succeeds when ran |