When I fixed abseil[1] for Hurd, I disabled its debugging feature
of finding the symbol of current functions or any other symbols.[2]
It does not work on Hurd and its unit tests failed. It can be safely
disabled and does not affect other functions of lib just like
platforms that do not support it, either.
It reads /proc/self/maps(/task/[pid]/maps), and get the obj
filenames there[3]. Even if I change it to `/proc/self/maps`,
it will not work. It relies on the last column to get the
filename of the obj[4].
On Linux, the line in the file is,
004b7000-004b8000 r--p 00000000 08:01 3278353 /usr/bin/cat
While ours is,
00001000-00002000 r-xp 00000000 00:00 0 [mem_obj=22]
I know this is due to the way of our kernel to handle file and memory.
Do we have a good way to fix this, or do we just disable it like now?
[1] https://salsa.debian.org/debian/abseil
[2] https://lists.debian.org/debian-hurd/2025/02/msg00011.html
[3]
https://salsa.debian.org/debian/abseil/-/blob/87ca79e3/absl/debugging/symbolize_elf.inc#L1066
[4]
https://salsa.debian.org/debian/abseil/-/blob/87ca79e3/absl/debugging/symbolize_elf.inc#L1135
--
Yuqian Yang <crup...@crupest.life>