For container tests, gdb needs to set the sysroot to the corresponding
testroot.root directory. The assumption was that PIDs < 3 means that
we are running within a container.
Starting with commit
2fe64148a81f0d78050c302f34a6853d21f7cae4
"Allow for unpriviledged nested containers", the default is to use
the PID namespace of the parent. Thus support_test_main.c does not
recognize our container anymore.
This patch now assumes that we are running inside a container if
test-container.c has set PID_OUTSIDE_CONTAINER and always uses this
PID independent of having a new PID namespace or not.
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
char *gdb_script_name;
int inside_container = 0;
- mypid = getpid();
- if (mypid < 3)
+ const char *outside_pid = getenv("PID_OUTSIDE_CONTAINER");
+ if (outside_pid)
{
- const char *outside_pid = getenv("PID_OUTSIDE_CONTAINER");
- if (outside_pid)
- {
- mypid = atoi (outside_pid);
- inside_container = 1;
- }
+ mypid = atoi (outside_pid);
+ inside_container = 1;
}
+ else
+ mypid = getpid();
gdb_script_name = (char *) xmalloc (strlen (argv[0]) + strlen (".gdb") + 1);
sprintf (gdb_script_name, "%s.gdb", argv[0]);