linux-user: add binfmt wrapper for argv[0] handling
authorAlexander Graf <agraf@suse.de>
Fri, 30 Sep 2011 17:40:36 +0000 (19:40 +0200)
committerhyokeun <hyokeun.jeon@samsung.com>
Tue, 6 Sep 2016 06:55:31 +0000 (15:55 +0900)
commitef7a95c9cdb51be8ddaf190e22c269cd07eb432d
treec9a71cc631d11cf70641a3ae32d23ff6820a562f
parent5248e7a8a6e58a4cd1f451210a557bfe48da0695
linux-user: add binfmt wrapper for argv[0] handling

When using qemu's linux-user binaries through binfmt, argv[0] gets lost
along the execution because qemu only gets passed in the full file name
to the executable while argv[0] can be something completely different.

This breaks in some subtile situations, such as the grep and make test
suites.

This patch adds a wrapper binary called qemu-$TARGET-binfmt that can be
used with binfmt's P flag which passes the full path _and_ argv[0] to
the binfmt handler.

The binary would be smart enough to be versatile and only exist in the
system once, creating the qemu binary path names from its own argv[0].
However, this seemed like it didn't fit the make system too well, so
we're currently creating a new binary for each target archictecture.

CC: Reinhard Max <max@suse.de>
Signed-off-by: Alexander Graf <agraf@suse.de>
[AF: Rebased onto new Makefile infrastructure, twice]
[AF: Updated for aarch64 for v2.0.0-rc1]
[AF: Rebased onto Makefile changes for v2.1.0-rc0]
[AF: Rebased onto script rewrite for v2.7.0-rc2 - to be fixed]
Signed-off-by: Andreas Färber <afaerber@suse.de>
Makefile.target
linux-user/Makefile.objs
linux-user/binfmt.c [new file with mode: 0644]