Package Details: rr 5.8.0-4

Git Clone URL: https://aur.archlinux.org/rr.git (read-only, click to copy)
Package Base: rr
Description: Record and Replay framework: lightweight recording and deterministic debugging
Upstream URL: http://rr-project.org/
Licenses: custom
Submitter: dequis
Maintainer: codyps (zrhoffman, SandaruKasa, DarkShadow44, giordano, Cebtenzzre, Manouchehri, pspacek)
Last Packager: SandaruKasa
Votes: 72
Popularity: 0.24
First Submitted: 2015-08-24 23:26 (UTC)
Last Updated: 2025-01-09 21:24 (UTC)

Dependencies (13)

Required by (0)

Sources (1)

Latest Comments

« First ‹ Previous 1 2 3 4 5 6 7 8 Next › Last »

chipbuster commented on 2022-02-09 20:53 (UTC) (edited on 2022-02-09 20:54 (UTC) by chipbuster)

I'm hitting a strange issue with this PKGBUILD that is almost certainly partially caused by configuration on my end, but I don't understand what's going wrong.

I can build and install this package just fine. When I try to record with the version that's been installed into /usr/bin, I get an assertion failure and crash.

However, when I record with the version that's in pkg in the build directory, everything works fine. Even more mysteriously, when I tried to make a Docker to reproduce the bug, both the rr at /usr/bin/rr and the one within pkg can successfully record a trace! (Also, when running makepkg/pacman -U in Docker, rr gets installed into /usr/sbin for reasons that I don't understand).

Does anyone have any clue what might be going on here, or how I can further narrow down what the root cause of this is?

vlovich commented on 2021-03-09 23:24 (UTC)

Gotcha. That makes sense. I was just comparing against rr-git which used -DCMAKE_BUILD_TYPE=Release.

codyps commented on 2021-03-09 22:37 (UTC)

@vlovich: I could have sworn that build type was suggested at some point as the right way to disable flags getting added, but you're right that there doesn't appear to be any documentation on it to speak of.

Based on https://wiki.archlinux.org/index.php/CMake_package_guidelines, it looks like using CMAKE_BUILD_TYPE=None is really the intention (well, maybe. cmake projects are complicated).

In general, Release and RelWithDebInfo aren't what we want to package though: we expect the cflags/etc to be provided via the user's makepkg.conf (or similar) rather than setting debuginfo/opt-level flags in the PKGBUILD directly.

vlovich commented on 2021-03-09 22:17 (UTC)

I see CMAKE_BUILD_TYPE=plain in the PKGBUILD for this but shouldn't that be Release or RelWithDebInfo? I'm not familiar with the "plain" build type & I don't see that referenced anywhere in the upstream repo.

konsonanz commented on 2020-11-16 22:35 (UTC)

@codyps: Thanks for the quick fix! You're right, I'm using clang and libc++ for builds against the host toolchain. A build in a clean and default chroot worked without problems.

Regarding the pastebin issue, seems like something went wrong there as I also can't (re-)apply the diff there due to some corruption error. Will take better care/test beforehand next time.

codyps commented on 2020-11-16 22:17 (UTC) (edited on 2020-11-16 22:26 (UTC) by codyps)

Hmm... curiously, cmake 3.18.4 and rr 5.4.0 seems to work fine for me. That's what I built this release with.

Log snippet: https://gist.github.com/jmesmon/4956434dd689994d1e31b603c13ec738

It looks like it's probably fine for me because of this bit:

set(LINKER_FLAGS "")
if(CMAKE_C_COMPILER_ID STREQUAL "GNU")
  # Gcc generates bogus R_386_GOTOFF relocations in .debug_info which
  # lld 9 rejects
  set(LINKER_FLAGS "-fuse-ld=bfd")
endif()

I assume you're not using a GNU compiler?

Also: it appears that pastebin.com mangles patches/diffs uploaded to it. I wasn't able to git apply yours. I've pushed a change that should fix things though.

konsonanz commented on 2020-11-16 22:01 (UTC) (edited on 2020-11-16 22:02 (UTC) by konsonanz)

@codyps: Version 5.4.0 is currently not buildable with cmake 3.18.4 (current stable version as of writing).

There is already a patch upstream, which did not make the release, at https://github.com/rr-debugger/rr/pull/2726.

Backporting the relevant commit works for me, pastebin with my local patch doing exactly that here for reference: https://pastebin.com/qPkS18eF

codyps commented on 2019-12-04 05:55 (UTC)

Thank you. I have taken the valgrind PKGBUILD's approach here.

gurevitch commented on 2019-12-03 21:50 (UTC) (edited on 2019-12-03 22:01 (UTC) by gurevitch)

@codyps You can do what the valgrind maintainer did [1], add !strip to options and add

if check_option 'debug' n; then
  find "${pkgdir}/usr/bin" -type f -executable -exec strip $STRIP_BINARIES {} + || :
fi

to package()

1: https://git.archlinux.org/svntogit/packages.git/tree/trunk/PKGBUILD?h=packages/valgrind