Age | Commit message (Collapse) | Author | Files | Lines |
|
|
|
QEMU 7.2 has some regressions, but earlier versions don't emulate the
time64 system calls for 32-bit architectures.
|
|
|
|
Sometimes bugs cause test programs to run indefinitely. Use timeout
to kill them after 30 seconds, which should be long enough for any
one test program to complete.
|
|
|
|
- arm64 builds with LLVM now seem to be fine
- mipsisa64r6{,el} fails to build (not a regression)
- sh4 builds have regressed with gcc 12, and all test programs hang
(at least under QEMU)
|
|
As if there weren't enough already...
|
|
|
|
I fixed the build failure, but not the arm64 problems. Nothing seems
to have regressed.
|
|
|
|
Debian has a cross-compiler again.
|
|
|
|
|
|
Yet another architecture where LLD 13 fails. I didn't investigate
this very far but it looked like the global register was not being
initialised correctly.
|
|
LLD 13 is somehow replacing nops in branch delay slots with trap
instructions (sigrie). For now, test MIPS builds with a mixed
toolchain instead of pure LLVM.
|
|
When Clang 13 optimises printf() to puts() - and presumably in other
similar cases - it ignores the use of -mregparm and puts arguments on
the stack.
For now, disable CONFIG_REGPARM in this configuration.
|
|
Due to bugs in QEMU user-mode emulation, I want to be able to run all
klibc tests with a locally built QEMU in a chroot or container, and
not whatever version the host may have registered with binfmt_misc.
Currently run_built explicitly invokes QEMU, but the shell test
invoking an external command does not. Fix that.
|
|
Patching in a longer interpreter name may cause the base load address
to be lower, which results in failure to map the executable on some
architectures.
Shorten the name by:
- Creating a symlink "k.so" in the build directory to klibc.so
- Using the relative filename of k.so
|
|
* LLD 13 doesn't implement linker relaxation for RISC-V, which makes
it fairly useless. Having made relaxation work, I don't want to go
back and make it conditional.
* LLD 13 doesn't seem to handle SPARC-specific relocations yet.
* Debian's build of LLD 13 doesn't seem to include IBM Z (s390x)
support.
So introduce a "mixed" toolchain of Clang + GNU ld, and test that
instead of pure LLVM for these architectures.
|
|
Testing all configurations takes quite a long time, so currently
I make local edits to limit which configurations are tested.
This is silly. Add command-line options to do this.
|
|
With the current options, gcc 11 complains:
cc1: error: '-mfloat-abi=hard': selected architecture lacks an FPU
We explicitly specify the architecture version (v7-A), and now must
also explicitly enable VFP as an extension to that.
|
|
|
|
After a build or test failure it's useful to leave the build directory
behind for investigations.
|
|
Building a chroot requires using sudo, which is a bit unfortunate.
Instead, use patchelf to edit the interpreter filename so we can
run shared-library binaries without installing klibc.so.
|
|
Debian's sparc64 toolchain can still build for sparc 32-bit.
|
|
We will need to add arguments containing spaces, which is not
possible at present.
|
|
These still mostly fail, but it's now possible to build for most
architectures and run static executables for some.
|
|
* Rename $gnuarch to $toolsarch
* Rename build to build_gnu
* Add a tools parameter to process, and pass "gnu" for now
* Include tools name in build and log filenames
|
|
It's no longer supported in klibc, and I couldn't actually test it
due to lack of support in Debian.
|
|
|
|
Debian is providing cross-compilers for these again.
|
|
|
|
Currently we clean the source directory. That's probably worth
continuing to do, but in case I change the build configurations or
tools the build directory really needs to be cleaned too.
|
|
|
|
Debian removed it from the archive, and no longer provides a
cross-compiler. If it comes back as an unofficial port we can
enable it again.
|
|
gcc 9 dropped support for it so Debian no longer has a cross-compiler
package. (There is still some support in the kernel, but it was
frequently broken in the past few years.)
|
|
Out-of-tree builds are working again. We can build for each tested
architecture in a separate directory and then don't need to clean
between builds.
|
|
We need to set an environment variable to make QEMU do the right
thing.
|
|
|
|
|
|
|
|
|
|
Parallel builds will make this less tedious.
|
|
* Change repo, signkey and releasedir
* Remove setting of KUP_HOST in favour of .kuprc
* Remove setting of PATH
|
|
The tag name is *not* part of the signed data, so we should specify
the name and version in the message.
Also fix the typo "relased".
|
|
Don't hardcode directory names in /tmp. Use mktemp -d to create a
temporary directory and put everything under that.
|
|
|
|
|
|
Only run self-test programs that don't require any input and have
clear success/failure reporting. We can enable more later.
|
|
It's getting tedious to repeat the same assignments in multiple
functions.
|
|
This script assumes Debian conventions for cross-compilers etc.
|