all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Kaelyn <kaelyn.alexi@protonmail.com>
To: Chris Marusich <cmmarusich@gmail.com>
Cc: 48941@debbugs.gnu.org, guix-devel@gnu.org
Subject: Re: bug#48941: [powerpc64le-linux] libfaketime CLOCK_MONOTONIC test hangs
Date: Wed, 21 Jul 2021 14:31:25 +0000	[thread overview]
Message-ID: <GijrfHfxGeVNJVWlkkOpscqh2dekCZhqP6OG4ihBNoSCZlxk0evgqhgCT4WEpHdpRsEk_tBHC0rsTHHgl20vhEBt8UJHnsNNglj5-SF4JrI=@protonmail.com> (raw)
In-Reply-To: <874kco8d9s.fsf@gmail.com>

Hi,

‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐

On Wednesday, July 21st, 2021 at 1:08 AM, Chris Marusich <cmmarusich@gmail.com> wrote:

> Hi,
>
> I need a little help figuring out how to use gdb in Guix for bug 48941:
>
> https://debbugs.gnu.org/cgi/bugreport.cgi?bug=48941
>
> Here's the situation. A libfaketime test hangs forever. Upstream
>
> suggested I debug it. I'm trying to, but gdb errors out. What am I
>
> doing wrong? It's probably something simple, but I can't see what.
>
> I'll describe what I've done. First, I started a build like so:
>
> ./pre-inst-env guix build --keep-failed libfaketime
>
> While the problematic test hung, I found the PID of the test and killed
>
> it. This caused the build to fail, leaving the build environment for me
>
> to play around in.
>
> I entered a pure environment that contains all the things I need to
>
> debug the test (gcc 10.3.0 is currently the default gcc on
>
> core-updates):
>
> ./pre-inst-env guix environment --pure libfaketime --ad-hoc gcc-toolchain@10.3.0 gcc-toolchain@10.3.0:debug gdb
>
> In the pure environment, I confirmed I can build and run the hanging
>
> test via the following commands (I added -g in order to get debug
>
> symbols):
>
> make FAKETIME_COMPILE_CFLAGS='-DFORCE_MONOTONIC_FIX -g' CC=gcc PREFIX=/tmp/guix-build-libfaketime-0.9.9.drv-0/myprefix
>
> make FAKETIME_COMPILE_CFLAGS='-DFORCE_MONOTONIC_FIX -g' CC=gcc PREFIX=/tmp/guix-build-libfaketime-0.9.9.drv-0/myprefix test
>
> OK, so I can trigger the hang. Great! Next step, fire up GDB:
>
> --8<---------------cut here---------------start------------->8---
>
> [0] [env] marusich@suzaku:/tmp/guix-build-libfaketime-0.9.9.drv-0/source/test
>
> $ gdb ./timetest
>
> GNU gdb (GDB) 10.2
>
> Copyright (C) 2021 Free Software Foundation, Inc.
>
> License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html
>
> This is free software: you are free to change and redistribute it.
>
> There is NO WARRANTY, to the extent permitted by law.
>
> Type "show copying" and "show warranty" for details.
>
> This GDB was configured as "powerpc64le-unknown-linux-gnu".
>
> Type "show configuration" for configuration details.
>
> For bug reporting instructions, please see:
>
> https://www.gnu.org/software/gdb/bugs/.
>
> Find the GDB manual and other documentation resources online at:
>
> http://www.gnu.org/software/gdb/documentation/.
>
> For help, type "help".
>
> Type "apropos word" to search for commands related to "word"...
>
> Reading symbols from ./timetest...
>
> (gdb)
>
> --8<---------------cut here---------------end--------------->8---
>
> The debug symbols provided by gcc-toolchain@10.3.0:debug are under
>
> $GUIX_ENVIRONMENT/lib/debug. This is the value of GUIX_ENVIRONMENT:
>
> --8<---------------cut here---------------start------------->8---
>
> $ echo $GUIX_ENVIRONMENT
>
> /gnu/store/32fjhp30k34fh0g9f1gmgcj8pc5wldq6-profile
>
> --8<---------------cut here---------------end--------------->8---
>
> By the way, this directory corresponds to glibc 2.33:
>
> --8<---------------cut here---------------start------------->8---
>
> $ realpath /gnu/store/32fjhp30k34fh0g9f1gmgcj8pc5wldq6-profile/lib/debug
>
> /gnu/store/8akrlhc25d7xvi85gzvginw0vdi4zyg4-glibc-2.33-debug/lib/debug
>
> --8<---------------cut here---------------end--------------->8---
>
> Let's tell GDB where to find those debug symbols:
>
> (gdb) set debug-file-directory /gnu/store/32fjhp30k34fh0g9f1gmgcj8pc5wldq6-profile/lib/debug
>
> Let's also tell GDB to set the environment variables that upstream
>
> recommended when running the test program:
>
> --8<---------------cut here---------------start------------->8---
>
> (gdb) set environment LD_PRELOAD=../src/libfaketime.so.1
>
> (gdb) set environment FAKETIME=-10d
>
> (gdb) set environment NO_FAKE_STAT=1
>
> --8<---------------cut here---------------end--------------->8---
>
> Now run it:
>
> --8<---------------cut here---------------start------------->8---
>
> (gdb) run
>
> Starting program: /tmp/guix-build-libfaketime-0.9.9.drv-0/source/test/timetest
>
> /bin/sh: /lib/powerpc64le-linux-gnu/libc.so.6: version `GLIBC_2.33' not found (required by ../src/libfaketime.so.1) /bin/sh: /lib/powerpc64le-linux-gnu/libc.so.6: version` GLIBC_2.32' not found (required by /gnu/store/kmblbljiygayhlc5gb02an9imhy90ws9-glibc-2.33/lib/libpthread.so.0)

Are you using Guix on a foreign distro? This line looks like your distro's normal libc.so was being used and it was from glibc-2.31 or older. The x86-64 systems I have that run pure Guix don't have any /lib*/ directories. You might try running gdb with LD_LIBRARY_PATH=/gnu/store/kmblbljiygayhlc5gb02an9imhy90ws9-glibc-2.33/lib to have the Guix libc.so picked up before the other one. HTH

Cheers,
Kaelyn

>
> /bin/sh: /lib/powerpc64le-linux-gnu/libc.so.6: version `GLIBC_2.32' not found (required by /gnu/store/kmblbljiygayhlc5gb02an9imhy90ws9-glibc-2.33/lib/libdl.so.2) /bin/sh: /lib/powerpc64le-linux-gnu/libc.so.6: version` GLIBC_2.32' not found (required by /gnu/store/kmblbljiygayhlc5gb02an9imhy90ws9-glibc-2.33/lib/librt.so.1)
>
> During startup program exited with code 1.
>
> (gdb)
>
> --8<---------------cut here---------------end--------------->8---
>
> Huh? What happened? I've double checked that I'm using gdb provided by
>
> Guix:
>
> --8<---------------cut here---------------start------------->8---
>
> $ type -P gdb
>
> /gnu/store/32fjhp30k34fh0g9f1gmgcj8pc5wldq6-profile/bin/gdb
>
> --8<---------------cut here---------------end--------------->8---
>
> I also tried running gdb by invoking it via that absolute file name, and
>
> it still errored out in the same way.
>
> I'm operating in a --pure environment. All the tools are provided by
>
> Guix. I'm surprised that /bin/sh and /lib are even mentioned above.
>
> If anyone can provide any advice, I'd be very grateful. I'm not sure
>
> how to proceed.
>
> ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
> Chris


  reply	other threads:[~2021-07-21 14:32 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-07-21  5:08 bug#48941: [powerpc64le-linux] libfaketime CLOCK_MONOTONIC test hangs Chris Marusich
2021-07-21 14:31 ` Kaelyn [this message]
2021-07-22 18:35   ` Thiago Jung Bauermann
2021-07-23  6:01     ` Chris Marusich
2021-07-23  5:34   ` Chris Marusich
  -- strict thread matches above, loose matches on Subject: below --
2021-06-10  4:21 Chris Marusich
2021-06-12  2:56 ` Chris Marusich

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='GijrfHfxGeVNJVWlkkOpscqh2dekCZhqP6OG4ihBNoSCZlxk0evgqhgCT4WEpHdpRsEk_tBHC0rsTHHgl20vhEBt8UJHnsNNglj5-SF4JrI=@protonmail.com' \
    --to=kaelyn.alexi@protonmail.com \
    --cc=48941@debbugs.gnu.org \
    --cc=cmmarusich@gmail.com \
    --cc=guix-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.