qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: get_relocated_path: the configured paths are not looked for?


From: Akihiko Odaki
Subject: Re: get_relocated_path: the configured paths are not looked for?
Date: Mon, 24 Apr 2023 03:24:00 +0900
User-agent: Mozilla/5.0 (X11; Linux aarch64; rv:102.0) Gecko/20100101 Thunderbird/102.10.0

On 2023/04/24 3:10, Michael Tokarev wrote:
23.04.2023 20:39, Akihiko Odaki пишет:
On 2023/04/23 22:22, Michael Tokarev wrote:
23.04.2023 14:47, Akihiko Odaki пишет:

https://salsa.debian.org/qemu-team/qemu/-/commit/e017f53a8550d0bcaaca81c6dacac8ec34295cf0
fwiw.

I seriously think you better consult GCC and other package maintainers to have consensus on handling this kind of scenario. Otherwise you don't get the behavior you expect from other packages.

I know no other software which does this.  It's interesting you mentioned GCC, -
I've seen it is doing that for years, wondered why.  But it works just fine
when moved elsewhere - I just tried compiling a hello.c program by
/tmp/gcc, it works exactly the same way as compiled by /usr/bin/gcc.
And wast majority of software available on linux does not do these funny
tricks with relative-to-executable paths (I can't say for *all* software,
but it is definitely uncommon and I know no other examples).  Only qemu
is broken in this context.  The patch above fixes this breakage.

/mjt

Well for me GCC can't find cc1 as I pointed out earlier. The below is a simple reproduction case using Podman:
podman run --rm -i debian <<EOS
apt-get update
apt-get install -y gcc
cp /usr/bin/gcc /tmp
cat > a.c <<EOC
int main()
{
}
EOC
/tmp/gcc a.c
EOS

The output ends with:
gcc: fatal error: cannot execute 'cc1': execvp: No such file or directory
compilation terminated.

This is because GCC uses relative paths to find cc1 and other files.

Regards,
Akihiko Odaki



reply via email to

[Prev in Thread] Current Thread [Next in Thread]