TODO¶
PA-RISC status and TODO 2024-04-30¶
Kernel¶
Check graphics drivers / VisualizeFX with drivers from NetBSD - see mail thread “Graphics support” from Michael Lorenz on 12/16/24 https://lore.kernel.org/linux-parisc/20241216064156.6bbe1330@bushmills/ Note: NetBSD drm manpage at https://man.netbsd.org/drm.4 says: drm is large and complicated and has no shortage of bugs. On systems where graphics is not important, you may wish to use userconf(4) to dis- able the special-purpose drm drivers for your graphics device and fall back to vga(4) or genfb(4) with the default display configuration pro- vided by firmware.
Implement RUST (https://github.com/rust-lang/libc/pull/3542)
Port python-greenlet, needed by debian-installer
QEMU testing, see mail from Guenter Roeck (12/6/23):
The e1000 and e1000-82544gc network interfaces don’t work (those work fine with the 32-bit emulation)
ne2k_pci doesn’t work anywhere. I get either a hang or a spinlock recursion error if I try.
hung task crashes in usb_start_wait_urb/usb_kill_urb during shutdown when booting from usb or when using an usb network interface
STARTED: Add cacheflush(2) syscall (like ARC, CSKY, MIPS, and NIOS2), add to glibc, gcc and update man-pages
Fix palo on c3000 to load initrd > 32MB
Add parisc to https://www.qemu.org/docs/master/user/main.html#linux-user-space-emulator wiki
ipmi-sensors: crashes A500: “ipmi-sensors –sensor-types=fan”
DONE: latest kernel: maxcpus=1 works, nr_cpus=1 causes a crash. (patch sent)
DONE: can not use register 29 in ASM_EXCEPTIONTABLE_VAR in emulate_ldd on 64bit kernel, Fix is here
Setup BTLB on secondary CPUs on 32-bit kernel
Enable BlockTLB on PA1.x for STI framebuffer (see block tlb info in sti.pdf documentation) and ftp://parisc.parisc-linux.org/docs/pdc32.pdf
check kselftest/nolibc: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=1c59d383390f970b891b503b7f79b63a02db2ec5
Add core-objtool for parisc - http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=26660a4046b171a752e72a1dd32153230234fe3a
Fix kernel: make ARCH=parisc tools/perf
Enhance PDC_CHASSIS driver to detect and report FAN and PSU issues.
parisc timers: convert to generic clockevent (Arnd Bergmann) - https://patchwork.kernel.org/project/linux-parisc/patch/20201008154651.1901126-14-arnd@arndb.de/
Kernel for qemu: Add CONFIG_NO_HZ to speed up qemu
convert irq handling to use CONFIG_IRQ_DOMAIN_HIERARCHY (serial port problem, action handler msising when registering irq)
NO_IRQ -> should be converted to (0) instead of (-1) -> Helge (check assembly, check in drivers/parisc/*)
STARTED: graphics mmap: Make mapping aliasing physical memory.
STARTED: Visualizefx driver
trace irq flags - http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=24131a61ec8c2d83431cb818281d3c9db986ab08
ONGOING: Enable UBSAN and fix fallouts
Enable SPARSEMEM_VMEMMAP_ENABLE
STARTED: implement CONFIG_VMAP_STACK “virtually mapped stacks and thread_info cleanup” (see arm) -> https://lwn.net/Articles/693026/
check usage of CONFIG_MLONGCALLS, only 14MB/s with debian kernel and dd if=/dev/zero of=here bs=1k count=100000 ?
Implement TLB lazy_mmu_mode, see include/linux/pgtable.h and search for arch_leave_lazy_mmu_mode
STARTED: VDSO - Review gettimeofday and clock_gettime() implementation, possibly use a light-weight-syscall and rely on cr16 and cpu speed for more accurate timing?
Enhance vDSO: gettimeofday(), getcpu(),… see e.g.c32c47aa364096124c9c69c1a44918433832562b
stifb: Fix HCRX text scrolling, missing functions? - see latest patches to stifb
QEMU¶
Full-system emulation¶
STARTED: Implement HPPA-64 support in qemu
STARTED: Implement CPU reset: resettable_class_set_parent_phases(rc, NULL, hppa_cpu_reset_hold, NULL,…) https://lists.nongnu.org/archive/html/qemu-devel/2024-10/msg04876.html
Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> offers to do contract work for QEMU through his company.
Fix migration of VMs (noticed by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>): Boot a qcow2 image in QEMU using the GTK, Wait a random time anywhere between 5-20s, Pause the VM, Switch to the “monitor” tab, Run “savevm foo” to save the current VM state as “foo”, Type “quit” to exit QEMU, Add “-loadvm foo” to your QEMU command line and launch QEMU, Unpause the VM
STARTED: Finish LASI and 82596 NIC for QEMU -> https://github.com/hdeller/qemu-hppa/commits/lasi
ncr53c710 driver from amiga: https://github.com/tonioni/WinUAE/blob/master/qemuvga/lsi53c710.cpp
Check “HPPA support for IGNITE-UX install discs” for HP Logic Analyzer 16700A (Mail from Keith Monahan <keith@techtravels.org> Sept 2020)
QEMU user-mode emulation¶
Building curl hangs at end of package build in stunnel
STARTED: kronosnet - port SCTP to qemu
ONGOING: qemu-user brk() fixes: https://lists.nongnu.org/archive/html/qemu-devel/2023-07/msg04657.html
qemu brk testcases:
https://lore.kernel.org/qemu-devel/CACPK8XeyqcEDyyL3Jw2WYWs_gGdtTCf2=Ly04CMgkshSMdj7RA@mail.gmail.com/#t (armhf binary on a ppc64le host)
brk testcase in qemu commit: 4d1de87c75007ee7e29dd271ebb4afdcf01ad7aa
check qemu-user build errors:
qemu can not emulate robust mutexes. That’s why lmdb package and dependend packages like neomutt fail to build because the pthread_mutexattr_setpshared(PTHREAD_PROCESS_SHARED) call fails. Solution: Allow lmdb to fall back to MDB_USE_POSIX_SEM.
Check why raft package testcases fail
It looks like haskell packages still fail on qemu (e.g., haskell-swish).
libtool: Dynamic ltdl runtime loading failure
libtool FTBFS, Dynamic ltdl runtime loading, https://buildd.debian.org/status/fetch.php?pkg=libtool&arch=hppa&ver=2.4.7-7&stamp=1691050219&raw=0
check vnlog: very easy testcase for clone/fork issue, see mail 07-31-2023.
Implement io_submit() syscalls, probably not possible.
QEMU system mode issues¶
QEMU: Add support for running MPE with https://www.openpa.net (& Craig Lalley <mr_lalley@yahoo.com>)
QEMU/Kernel: Add diag() calls to emulate & speed up xchg() and cmp_xchg()
QEMU: Implement 32/24 bit HCRX graphics
QEMU-user: FTBFS on 32-bit non-LFS arches : rrdtool, devscripts, ohcount, guile-ssh…
fix openvswitch on qemu
check glibc tst-pthread-timedlock-lockloop testcase failure (The futex facility returned an unexpected error code., xclock_gettime.c:29: clock_gettime (0): Unknown error -1)
glibc¶
STARTED: Finfish MADV transition in glibc: glibc: https://sourceware.org/pipermail/libc-alpha/2023-February/145452.html , dietlibc: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1030998
Add backtrace() function to glibc -> needed to build dovecot package
DONE: Improve text on https://www.openpa.net
STARTED: port Gccgo_for_hppa gccgo -> https://github.com/hdeller/gcc/tree/gccgo-hppa
executable stack¶
TODO: Convert gcc nested function trampoline (pa_asm_trampoline_template) to don’t need an executable stack
(see https://lore.kernel.org/all/87lebjz9z6.fsf@gentoo.org/) Starting with Kernel 5.18, the parisc Linux kernel gained support to run without executable stacks. In gcc-14 GNU stack notes were enabled. An executable stack is still needed by applications for nested functions. They are still called via a stack trampoline. The GNU stack note indicates whether an object needs an executable stack or not. These notes are collected by linker. The glibc loader determines whether to setup an executable stack or not.
Once gcc-14 becomes the default compiler, we will have to enable GNU stack notes in previous gcc versions. We will still have executable stacks until everything is rebuilt. We will need to update that default in Binutils too. Currently (nov 2023), there are no architecture dependencies in the ld –enable-warn-execstack and –enable-default-execstack configure options. The -z execstack and -z noexecstack ld options can override the GNU notes, or lack thereof. We may have to fix some assembly code. Maybe binutils should be built with –enable-warn-execstack once we switch to gcc-14. I don’t think we want –enable-default-execstack after switching to gcc-14.
Debian¶
ask to get palo-installer, partman-palo, aboot-installer into debian-installer (import from old Git-Backup, Alex Wirt?) - Mail from Adrian 05/30/23
STARTED: Fix initramfs: Bug#1027915: systemd requires /run to be mounted with a minimum size of 20MB: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1027915, patch sent
STARTED: Activate LARGE FILE SUPPORT generally on hppa: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1020335
gcc compiler¶
Why is compiling fife so slow with cc1plus?
asked Dave to implement gcc builtins for break asms, like on other platforms, for usage in kernel
SeaBIOS and palo: muldi3 and divdi3 (from libgcc.a) trashes fr22-fr25 because of xmpyu instruction. Doesn’t seem to have negative effect, but those registers should better be saved/restored in pdc_entry() and iodc_entry(), or libgcc should be fixed to not use floating point instructions.
STARTED: Port grub2 to hppa? -> https://github.com/hdeller/grub
INEQUIVALENT ALIASES occur building gnuradio on debian.
STARTED: convert old-style rtc driver drivers/input/misc/hp_sdc_rtc.c to new RTC model, remove the procfs and miscdevice interfaces first and replace the ioctl with a struct rtc_class_ops. Arnd Bergmann can review those patches, but Alexandre and Alessandro are the ones who would merge them once the driver is moved to drivers/rtc. (Mail from Arnd Bergmann, 28.04.2016) - see https://patchwork.kernel.org/patch/10701397/
Add some cond_resched() calls to avoid RCU stalls, see commit 2a8bc5316adc998951e8f726c31e231a6021eae2
Check if https://lkml.org/lkml/2020/7/23/1246 was added to avoid TLB stalls (commits https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=c6fe44d96fc1536af5b11cd859686453d1b7bfd1 and https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=2a9127fcf2296674d58024f83981f40b128fffea) - kernel v5.9 seems good.
JAVA¶
Finish OpenJDK, see patch and mail from Adrian Glaubitz 05.02.2021.
IMPORTANT: fix OpenJDK - fixes required in zeroport (stack grows up!).
Rust language¶
STARTED: https://github.com/rust-lang/libc/compare/master…hdeller:libc:hppa-devel2
From Adrian Glaubitz (9/29/2021): The Rust project merged a change [1] that allows rustc to use GCC instead of LLVM as codegen backend for generating machine code through libgccjit. This means that we are in principal able now to build Rust code for all the architectures that GCC support but LLVM doesn’t, which includes hppa. Please see this [2] and this [3] comment to see how to get started with cross-building the Rust compiler for a new target using libgccjit. We will have to add these new architectures to the libc crate first, see an example PR for that here [4]. Since I can’t work on all these targets myself, I wanted to ask you to help me and get the support for hppa added to libc and rustc where necessary.
In debian, stunnel4 requires python-cryptography package, and that was needed by something else I forgot…
gcc compiler¶
_mcount can be optimized (smaller) by not subtracting offset)
check if we can use -fentry from gcc for _mcount optimization
put PLABELS into read-only section (gcc function pa_reloc_rw_mask() needs modification, see “section mismatches” mails, 11.09.2017)
gcc: Add _builtin_thread_pointer() and _builtin_set_thread_pointer(), e.g.: https://gcc.gnu.org/ml/gcc-patches/2012-07/msg00428.html for glibc: ports/sysdeps/hppa/nptl/tls.h __set_cr27()
STARTED: why is GNU AS so slow, e.g. when building freeorion, quantlib-swig or yade packages, testcases: openturns
provide libphobos packages - gcc-defaults - http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=763103, Work by Dave: https://gcc.gnu.org/ml/gcc-testresults/2018-11/msg03460.html
gcc -> join 32- and 64bit compiler, make “-m64” work, get rid of hppa64-linux-gnu-gcc
64-bit userspace support (from Dave Anglin, Nick Hudson)
64-bit userspace, Binutils 64-bit binutils needs to be fixed to get multiple stub section support.
glibc port (hppa64 can use the generic thread code)
64-bit support in gcc is probably pretty good as 64-bit HP-UX works fine.
gdb could be a problem due to a lack of a maintainer.
debian parisc perl bug (http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=721537) shows that mmap on parisc linux is horribly inefficient. We allocate huge maps for small files. This should be improved. Mailthread: “ parisc mmap: private file maps”, http://www.spinics.net/lists/linux-parisc/msg05083.html or https://rt.perl.org/Public/Bug/Display.html?id=119567 https://rt.perl.org/Public/Bug/Display.html?id=119567
kernel work¶
ALPHA processor port:
Add https://lkml.org/lkml/2007/8/14/259 aboot patch
New one: https://patchwork.kernel.org/patch/10141217/ (alpha: fix crash if pthread_create races with signal delivery)
Kernel patches: http://marc.info/?t=140610652200001&r=1&w=2, The proposed fix is in: http://marc.info/?t=140675670100010&r=1&w=2, http://marc.info/?t=142327510200001&r=1&w=2
How to upgrade libgcc
apt install -f -o Dpkg::Options::="--force-overwrite"
see: https://raphaelhertzog.com/2011/08/01/understanding-dpkgs-file-overwrite-error/
Kernel: Hard to solve outstanding issues
megaraid on my rp5470 hangs at boot (maybe because SCSI chassis not connected)? -> use new megaraid driver for debian -> maybe patch https://patchwork.kernel.org/patch/7738911/ needed to enable PCI-PCI bridge?
Fix FireGL X1/X3 in C8000 - currently broken (no DRM and software accel is incredibly slow [STRIKEOUT:plus colors in 24bpp mode are wrong] seems ok in debian 8 sid / 3.16.7 kernel) - Info: manual “Radeon R5xx Acceleration” - http://www.x.org/docs/AMD/R5xx_Acceleration_v1.1.pdf and generic: http://www.botchco.com/agd5f/?p=50
Kernel: still missing Linux kernel development (no patches available yet or maybe not possible to implement):
maybe: optimize flush_dcache_page() implementation like sparc. See Documentation/cachetlb.txt, e.g. used in aio subsystem
maybe implement transparent huge pages (due to cache coherency technically only possible on PA8500-PA8700 CPUs, not possible on PA8800-PA8900 CPUs)
implement BUG() and WARN() with inline assembly so that interrupt happens in delay branch of “or,<> %r0,cond,%r0”. Probably not possible, because gcc will report “control reaches end of non-void function” warnings/errors.
disable FP-register save/restore at kernel entry? - https://patchwork.kernel.org/patch/3975291/
enable 16k/64k kernel page sizes (still cacheflushing-issues with SCSI driver, additional work in glibc needed to deal with >4k page size, e.g. ld-loader alignments of data/code segments)
Superdome support - can someone test? Should work better now with latest kernels (maybe ask Dennis Clarke <dclarke@blastwave.org>, Jan 2019).
Debian packages / Userspace work¶
Various big endian issues, see mail thread “s390x architecture status?”: https://lists.debian.org/debian-devel/2024/10/msg00295.html
WebKitGTK still builds in s390x, but the Skia graphics library does not support big-endian machines so if the Cairo backend is ever dropped then we probably won’t be able to support s390x any longer: https://github.com/WebKit/WebKit/blob/webkitgtk-2.47.1/Source/ThirdParty/skia/include/private/base/SkLoadUserConfig.h#L56
teach “blkid” about palo partition
glibc: add backtrace() function, problems when building elfutils package: http://buildd.debian-ports.org/status/package.php?p=elfutils&suite=sid and dovecot https://buildd.debian.org/status/fetch.php?pkg=dovecot&arch=hppa&ver=1%3A2.3.19.1%2Bdfsg1-2%2Bb1&stamp=1666756774&raw=0
Circular dependency problems with kde packages caused by vlc and ffmpeg (Dave)
Solution: Rebuild ffmpeg outside the buildd (as some dependencies have probably been deleted) and upload a +b1 version. Then trigger bin-nmu of phonon package. Finally this resolves then the dependencies of vlc, ffmpeg, phonon, chromaprint, polkit-kde-agent-1, kwrited, kwallet-kf5 and libkf5notifications-dev…
Due to very bad performance running multiple copies of dot program (Dave)
In vtk6 debian package, adding DOT_NUM_THREADS = 1 helps.
Floating point NaN (see: https://en.wikipedia.org/wiki/NaN)
PA-RISC uses “mips” NaN format which differs from x86, etc. It should be called PA-RISC format as I think PA was first. The quiet NaN bit is opposite to than in current IEEE standard.
Debian packages with NaN issues: libime, capnproto, python-shapely,
00800000017FF80000000000007FF80000000000007FF8000000000000
vs. 00800000017FF7FFFFFFFFFFFF7FF7FFFFFFFFFFFF7FF7FFFFFFFFFFFF
palo (PA-RISC Boot Loader)¶
PALO - add regular rewind & load to avoid tftp boot timing issues. See mail from Frank Schreiner “PALO issues” (Dec 2018).
When listing directory contents, resolve and print symlink target file names too, e.g. “vmlinux -> linux-5.12.1-64bit”.
Fix palo deb package to build iplboot natively (https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=851792)
Modify (if possible), that palo can read (sequential) tftpbootable-vmlinuxes as well as the current boot-vmlinux images (simplifies build/handling)
DONE items¶
Debian kernel and userspace programs¶
PALO (http://git.kernel.org/cgit/linux/kernel/git/deller/palo.git/)
DONE: increase palo command line from 128 bytes (max from kernel is 1024 currently) -> fixed in palo 1.92.
DONE: accept /boot/ in front of files, strip path (e.g. “/boot”) when given for kernel/ramdisk
DONE: Migrate to git.kernel.org -> done: http://git.kernel.org/cgit/linux/kernel/git/deller/palo.git/
DONE: add gzip-support (allow loading gzipped vmlinux files)
DONE: in interactive mode, add reboot option command
DONE: Unbreak loading Linux kernels bigger than 16 MB (fixed in palo 1.96, Oct. 2016)
DONE: Du to alternative coding in 4.20, ship debian kernel as SMP variant only (Kernel 4.20)
DONE: PALO: Enable “list directory content” of other partiton than /boot (done in v2.22)
Debian kernel / Generic Kernel bugs fixed
DONE: Fixed 64bit SMP kernel & sticon on machines with more than 4GB RAM (Kernel 3.12)
DONE: Lots of syscall fixes regarding compat kernel
DONE: send patches to remove UP from debian kernels, use sil680 instead of siimage, see http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=721191 -> fixed in 3.12 / 3.13
DONE: Enable BMC in c8000 default kernel config - ipmi driver (CONFIG_IPMI_HANDLER=y) - http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=747482
DONE: remove HIL RTC from debian kernel - it creates a backtrace at boot because we have already another rtc0 active.
DONE: add ppdev driver, needed by CUPS, systemd reports missing module load (3.17 & 3.16 kernel)
DONE: Add crc-modules, event, isofs, jfs, mouse, sata, sound, squashfs, udf, uinput, scsi-common, scsi-extra, loop, serial and usb-serial debian-installer packages
DONE: Kernel build problem: a) disable -mfast-indirect-calls in Makefile, b) gcc compiler bug in > gcc-4.8.3-3
DONE: Drop HPUX-support from kernel (Kernel 4.0)
DONE: implemented HUGE pages
DONE: kernel timerfd_settime/timerfd_gettime issue, test with debian package: liblinux-fd-perl -> https://patchwork.kernel.org/patch/7951661/, backported to all kernels
DONE: kernel ptrace bug: http://thread.gmane.org/gmane.linux.ports.parisc/26273, possible fix: https://patchwork.kernel.org/patch/8063301/
DONE: Implement CONFIG_DEBUG_STACK_USAGE, in kernel 4.6
DONE: Use 32bit exception table entries, in kernel 4.6
DONE: implemented seccomp syscal, including SECCOMP_MODE_STRICT and mode 2
DONE: Fixed FTRACE support (http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=366dd4ea9d5f0eb78fdf4982d76506f99480ec0a)
DONE: Add syscall ftrace support
DONE: Simplify get_user()/put_user() with regard to %sr0/%sr2 usage.
DONE: Add tracehook support (needed for seccomp testcases, gdb, …)
DONE: Added high-resolution sched_clock clocksources in 4.7, needed for debian packages: ismrmrd, haskell-http-conduit, …
DONE: Detect physically broken memory via Page Deallocation Table (PDT), initial support in kernel 4.13
DONE: Make kernel self-decompressing (instead of palo reading gzipped kernels)
DONE: fix %pF and %pS usage in all kernel code
DONE: Enabled BMC/IPMI including Remote power on/off on C8000 and rp3410 machines (kernel 4.17 and above)
DONE: use CONFIG_COMPAT_BINFMT_ELF and get rid of arch/parisc/kernel/binfmt_elf32.c
DONE: Fix kernel writing core file, gdb reporting: BFD: Warning: /tmp/core.http.1655.ls3011.1465554447 is truncated: expected core file size >= 2187264, found: 2121728.
DONE: Find way to extract vmlinux out of vmlinuz (Kernel 4.19)
DONE: Implement alternative coding for UP & SMP, one debian kernel for UP and SMP, optimizations to avoid cache flushes on cache-less systems and other qemu-related speed-ups to avoid unnecessary syncronization (Kernel 4.20)
DONE: IRQ Balancing was broken, http://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=f73493eb4aecdd6edd8a749890e6e2dcfa0a7978
DONE: Added kgdb and kprobes in kernel 5.2, by Sven Schnelle
DONE: report on C8000 one socket with 2 cores
DONE: Check Kernel boot code if RAM of machine is big enough (e.g. is booting on 710 machine with 60MB possible?) - https://patchwork.kernel.org/patch/10888283/
DONE: convert to SPARSEMEM, instead of DISCONTIGMEM
DONE: (NOT POSSIBLE:) Enable huge pages on kernel text for C8000 as well - not possible, will crash due to required equivalent aliasing of caches.
DONE: Enable __ro_after_init
DONE: add dynamic ftrace support - provided by Sven in kernel 5.3
DONE: Fix fallouts from strace: http://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b7dc5a071ddf69c0350396b203cba32fe5bab510,
DONE: implement kexec syscall
DONE: Analyze futex hang (CPU soft lockup) situation with test-lock testcase in the libprelude debian package - fixed by parisc: Add atomic64_set_release() define to avoid CPU soft lockups
DONE: Add TOC handler, sending TOC via IPMI interface “toc s”
DONE: autofs/automounter is broken, patch sent to list, https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=892953
DONE: Try enabling DEBUG_VM_PGTABLE in kernel
DONE: SLAB breaks, SLUB works (works in kernel v5.17)
DONE: implement .con_font_set (consw) in sticon.c to be able to change fonts at runtime (since v5.10)
DONE: Implement kernel VDSO support - Randolphs patch
DONE: Fixed PTRACE_GETREGS/PTRACE_SETREGS for compat case, fixes strace errors
DONE: add CONFIG_LOCKDEP support (v6.4)
DONE: kernel: drop chassis_power_off() and switch to register_sys_off_handler() - https://patchwork.kernel.org/project/linux-parisc/patch/20230812203759.395651-1-deller@gmx.de/
DONE: kernel: drop arch/parisc/kernel/pa7300lc.c
DONE: improve Unaligned handlers, e.g. emulate_std() -> clean up assembly, use LR on 32-bit…(%1 and %R1 for register #1)
DONE: Fix kernel 6.4 boot crash -> https://patchwork.kernel.org/project/linux-parisc/patch/20230803062404.2373480-1-rppt@kernel.org/
DONE: matoro - ia64 io_uring: https://lore.kernel.org/io-uring/27b05e18b406621584b29653e5aafd43@matoro.tk/T/#t
DONE: mariadb fails with io_uring, testcase https://github.com/axboe/liburing/blob/master/examples/io_uring-test.c fails too. (Jens bought a C3000 workstation and added it to the machine test pool.)
DONE: push fbcon-64-bit-sti patches upstream: https://github.com/hdeller/linux/commits/drm-misc-next-with-64bit-console-final
DONE: Fix kexec on PA8800/PA8900 CPUs: how to restart the CPUs on these systems?
DONE: Implement ARCH_WANT_DEFAULT_TOPDOWN_MMAP_LAYOUT as in https://lwn.net/ml/linux-kernel/20190724055850.6232-14-alex@ghiti.fr/
DONE: Add eBPF JIT compiler (in kernel 6.6)
DONE: kernel >= 6.1.5 fails to boot on panama, boots works with “no-alternatives” boot option, Reason: flush_dcache_page() re-enabled the IRQs which led to the spinlock hang in aio_complete(), fix: https://lore.kernel.org/linux-parisc/ZGyawdtBhNnvvTv3@shell.armlinux.org.uk/T/#m96bc8e874d76b3b7bab8b40954b68e6cfb81ee2b, fix backported to kernels >= 5.18, bug was in arm and nios2 arches too.
Debian installer:
DONE: test xorriso (Thomas Schmitt, scdbackup)
DONE: Build real debian-installer CD. See: https://wiki.debian.org/Simple-CDD/Howto
DONE: we need a kernel debian package (3.10 based or higher)
DONE: palo-installer: fix palo entry “root=/dev/sda5” to become “root=UUID=XXXX”
binutils:
DONE: Add linker -fpie support, https://sourceware.org/bugzilla/show_bug.cgi?id=18421, debian package iceweasel and others
DONE: Using “gcc -o /dev/null” gives “ld: final link failed: File truncated” error: https://sourceware.org/bugzilla/show_bug.cgi?id=19526
gcc:
DONE: Linker reports “XXX referenced in section `.data.rel.ro.local’ of YYY: defined in discarded section `.text._ZXXX”
DONE: Qt5/KDE signal & slot issue: Pointers to method types need canonicalization before comparison, fixed in gcc: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68079
DONE: Add wiki page about kernel cross-compiling
glibc:
DONE: Problem building libcap-ng…The problem is the call to __tls_get_addr clobbers the value loaded into %r26 for the printf call. -> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59777
DONE: O_SYNC wrongly defined in glibc (typo in hppa __O_SYNC define in <bits/fcntl.h>)
DONE: eglibc mmap bug with localedef (see debian bugzilla http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=741243)
DONE: Wrong __gmon_start__ symbol, showed in vlc - linker does not drop dependencies to unneeded shared libs, https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=770741. glibc bug report: https://sourceware.org/bugzilla/show_bug.cgi?id=19170
DONE: nss - dladdr from glibc returns wrong names on hppa, http://article.gmane.org/gmane.linux.ports.parisc/26290, Solution: https://sourceware.org/bugzilla/show_bug.cgi?id=19415
DONE: gcc userspace support for variable CAS (gcc atomic ops, __sync_XXX), initial support in kernel 3.17, http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=89206491201cbd1571009b36292af781cef74c1b)
gcc-4.9 commit: https://gcc.gnu.org/viewcvs/gcc?view=revision&revision=227914
gcc-5.0 commit: https://gcc.gnu.org/viewcvs/gcc?view=revision&revision=227913
packages needing rebuild: libatomic-ops (gauche and libgc have copies of libatomic-ops included), x265, ceph, lizardfs, firebird2.5, gauche, idba, mapsembler2, padevchooser, filezilla, idba, http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=785654
__sync_val_compare_and_swap_8 was missing in: openvdb, idba, lizardfs, …
DONE: Misaligned access in res_query.c HEADER struct fixed in this glibc commit
DONE: “exim4(11935): unaligned access to 0xf7ebadcd at ip 0xf5f7e307” -> https://sourceware.org/bugzilla/show_bug.cgi?id=30750 and https://sourceware.org/bugzilla/show_bug.cgi?id=20243, resolved in glibc 2.38
Debian userspace:
DONE: qt4-x11: Improve atomic support on parisc (https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=741190)
DONE: haskell (ghc) hangs: futex(0xea00d08e, FUTEX_WAIT_PRIVATE, 2, NULL) = -1 EINVAL (Invalid argument). Solution: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=756260#15
DONE: port openmpi package: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=776730
DONE: Fix msgpuck build breakage: https://buildd.debian.org/status/package.php?p=msgpuck&suite=sid
DONE: Fix sbuild not returning used disc size: /usr/share/perl5/Sbuild/Build.pm line 2786, see https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=923484
DONE: Why does mc hangs when exiting with F10? - https://midnight-commander.org/ticket/3887 - endianess bug in mc source code
DONE: capnproto - testsuite was wrong: PARISC uses mips-floatingpoint NANs - https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=781787
DONE: fix strace in debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1030587 -> ask to switch to v6.4 instead
QEMU:
DONE: Add kernel fw_cfg support (drivers/firmware/qemu_fw_cfg.c)
DONE: Fix mouse in with HP-UX 10 and 11 - reported by Stefano Repici
DONE: Add bigger fonts to STI ROM / SeaBIOS
DONE: Implement TOC in qemu (via qemu monitor -> NMI)
DONE: Fix X11 cursor emulation in HP-UX with help of Xorg 11.6.6 sources, fixed in qemu v7.1
DONE: Fix serial port assignment and pass-through, fixed in qemu v7.1
DONE: Check why ldd doesn’t work with qemu chroot -> misexecuttion of proberi instruction: https://lists.nongnu.org/archive/html/qemu-devel/2022-08/msg02338.html
DONE: Fix glibc iconv issues with qemu: https://sourceware.org/bugzilla/show_bug.cgi?id=29583
DONE: bug in kernel fldw unalignment exception handler which lets libime fail to build on real hardware (but builds with qemu!)
DONE: Add vDSO trampoline to qemu-user
DONE: qemu-user: trashes argv0 breaking multi-call binaries, leads to build failures in lilypond, fceux, perl, sane-backends … Fixed, needs kernel v5.12+ and qemu v6.0+, or alternatively apply linux-user: handle binfmt-misc P flag as a separate exe name
DONE: BTLB support in SeaBIOS, QEMU and Kernel
ABI breakages (e.g. dropped HP-UX support)¶
Kernel 3.14 (EWOULDBLOCK)
We dropped HP-UX support in kernel 3.14 by changing EWOULDBLOCK==EAGAIN. HP-UX could be run in a VM instead or since machines are relatively cheap now, if someone needs hpux, they can buy a machine for it (or use qemu)
Kernel 3.16 (SIGRTMIN)
September 7th 2014: First delivery with vmlinux-3.16.0-4 (aka linux-image-3.16.0-4-parisc64-smp_3.16.7-1_hppa.deb)
How to install:
Install the new glibc debian package, then install systemd, then install the new kernel package (this will create a new initrd), reboot
rebuild of the following packages was needed:
unxz-utils: rebuild unxz to fix usage of SIGXFSZ
strace and gdb: fix signal names/numbers
libgc: gives “Cannot set SIG_THR_RESTART handler” error since SIG_THR_RESTART has been SIGXCPU which is now used for threads
(maybe) gcc-4.9 which links against libgc…? (affects objc related code only)
dietlibc (patch sent upstream) - https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=769105 TODO: make patch for dietlibc to use LONG_LONG_PAIR for ftruncate64() and then rebuild util-vserver package
Kernel 4.19 (ENOTSUP)
Dropped ENOTSUP (252) constant from kernel with v4.19. Gave problems and parisc is only platform which defined it because of HP-UX, see libuv bug: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=900237. Nevertheless rebuild of libattr, libseliux and fakeroot necessary.
Kernel 5.10: Define O_NONBLOCK to become 000200000 (instead of 000200004):
Kernel 6.1 (MADV_WIPEONFORK, MADV_KEEPONFORK, …)
This patch parisc: Align parisc MADV_XXX constants with all other architectures changed some MADV values to have the same number as other platforms (exception: alpha arch). Even if that’s an ABI change, the patch includes a wrapper to translate the values, so that old binaries will continue to work. There were build issues in aws-crt-python, qemu-user, tor browser and boringssl.
glibc 2.35 and Kernel < 6.10 (compat recv/recvfrom, sys_fanotify_mark)
Arnd Bergmann noticed that various compat syscalls changed how they were implemented in glibc and kernel. His path series linux system call fixes fixes this and suggests that people should use Debian bookworm with glibc >= 2.35 and Linux kernels >= 6.10.
parisc-linux.org Homepage and Debian build server infrastructure work¶
DONE: Ask Thibaut to add ftp mirror of http://ftp.parisc-linux.org/debian_ports on http://www.fr.parisc-linux.org/
DONE: Set up a buildd server for debian-ports/unstable & experimental -> http://unstable.buildd.net/index-hppa.html
DONE: contact pannonmage@gmail.com (Nemeth Balint, Budapest) to set up buildd server - mail from 04.08.2013
Offer from Mike Hosken <mike@csystems.co.nz> for A400 system as buildd - mail from 18.09.2014 and 17.05.2015
DONE: set up buildd server on ESIEE’s A500 (Thibaut) - mail from 13.08.2013
DONE Sep 12 2014: migrate mail forward service for parisc-linux.org to A500 machine
DONE Sep 12 2014: restore web-based http://ftp.parisc-linux.org service
DONE Nov 24 2014: Import old hppa mailing list archives to gmane.org - http://dir.gmane.org/gmane.linux.ports.parisc
Homepage migration:
DONE: Migration of parisc-linux.org website to https://parisc.wiki.kernel.org
DONE: Migration of wiki.parisc-linux.org website to https://parisc.wiki.kernel.org
DONE: Domain owner before: Matt Taggart <matt@lackof.org>, Expiration Date:09-Aug-2014; Since August 2014 is Helge Deller domain owner of parisc-linux.org
DONE: DNS takeover by Thibaut Varenet on 11/11/2013 - see: http://article.gmane.org/gmane.linux.ports.parisc/5478
DONE: former Server administrator of parisc-linux.org: Dann Frazier - dannf@dannf.org, former technical contact at HP: brett.johnson@hp.com, Since August 2014 administrator/owner: Helge Deller
Linus Torvalds talking or working about parisc¶
about atomics in parisc and sparc: https://lore.kernel.org/lkml/CAHk-=wispSt+JezguriGPKnJ0xOUWG_LFDgaM-NVJu6cVa+-xw@mail.gmail.com/
While debugging a QEMU bug:
Testsuites, kernel and userspace testing tools¶
GLIBC issues and todos: https://sourceware.org/glibc/wiki/PortStatus
https://github.com/linux-test-project/ltp - Linux Test Project
http://codemonkey.org.uk/projects/trinity/ - Trinity - A Linux System call fuzz tester.
TODO Drivers¶
write Lasi floppy driver
write Suckyio floppy driver
write spifi driver (rbrad)
modify ncr53c8xx driver for Outfield (735 & 755)
write GSC FDDI driver
write Timi ASIC (74x) support
EISA DMA support
Review all the todo entries below!¶
ns87415 dma doesn’t work reliably on suckyio-systems
fix HIL problem: ksoftirqd/0 eats 56% cpu (kernel 2.4 & kernel 2.6) - see FAQ: http://www.parisc-linux.org/faq/index.html and http://article.gmane.org/gmane.linux.ports.parisc/278/match=use+lower+nice+level+ksoftirqd+hil+enabled