Re: glibc regression on alpha with 2.34+
Hi!
On 12/13/22 10:52, John Paul Adrian Glaubitz wrote:
You could cross-compile glibc. That's most likely what I am going to do.
For the record, here's how I am doing it.
1. Create an alpha chroot on an x86_64 host system using debootstrap
on a system with qemu-user-static installed.
# debootstrap --no-check-gpg --arch=alpha unstable /srv/sid-alpha-sbuild http://ftp.ports.debian.org/debian-ports
(See below for schroot configuration).
2. Install cross-compiler for alpha as well as build dependencies for glibc:
# apt install g++-alpha-linux-gnu
# apt build-dep --arch-only glibc
3. Cross-compile glibc on x86_64 on host system:
$ cd /path/to/glibc/
$ mkdir build && cd build
$ ../configure --host=alpha-linux-gnu --disable-werror --prefix=/usr --disable-sanity-checks && make -j8
4. Enter alpha schroot and run the the following command from the build directory:
(sid-alpha-sbuild)glaubitz@z6:~/glibc-git/build$ LD_LIBRARY_PATH=/home/glaubitz/glibc-git/build /bin/bash
If the bug is present, this command will segfault:
Segmentation fault
Otherwise it will just spawn another bash which can be exited with "exit":
(sid-alpha-sbuild)glaubitz@z6:~/glibc-git/build$ LD_LIBRARY_PATH=/home/glaubitz/glibc-git/build /bin/bash
(sid-alpha-sbuild)glaubitz@z6:~/glibc-git/build$
exit
(sid-alpha-sbuild)glaubitz@z6:~/glibc-git/build$
The trick is to share the glibc source directory into the schroot. This is achieved by the following
two configuration files:
root@z6:~> cat /etc/schroot/chroot.d/sid-alpha-sbuild
[sid-alpha-sbuild]
description=Debian sid chroot for alpha
type=directory
directory=/local_scratch/sid-alpha-sbuild
profile=sbuild
#aliases=sid
groups=root,sbuild,glaubitz,buildd
root-groups=root,sbuild,glaubitz,buildd
root@z6:~>
root@z6:~> cat /etc/schroot/sbuild/fstab
# fstab: static file system information for chroots.
# Note that the mount point will be prefixed by the chroot path
# (CHROOT_PATH)
#
# <file system> <mount point> <type> <options> <dump> <pass>
/proc /proc none rw,bind 0 0
/sys /sys none rw,bind 0 0
/dev/pts /dev/pts none rw,bind 0 0
tmpfs /dev/shm tmpfs defaults 0 0
# Mount a large scratch space for the build, so we don't use up
# space on an LVM snapshot of the chroot itself.
/home/glaubitz /home/glaubitz none rw,bind 0 0
root@z6:~>
To bisect, just run the normal git bisect process from the and just run the
test command in the emulated schroot from a second terminal.
Adrian
--
.''`. John Paul Adrian Glaubitz
: :' : Debian Developer
`. `' Physicist
`- GPG: 62FF 8A75 84E0 2956 9546 0006 7426 3B37 F5B5 F913
Reply to: