openmp: Fix up gomp_affinity_init_numa_domains
authorJakub Jelinek <jakub@redhat.com>
Fri, 18 Mar 2022 10:02:13 +0000 (11:02 +0100)
committerJakub Jelinek <jakub@redhat.com>
Fri, 18 Mar 2022 10:02:13 +0000 (11:02 +0100)
On Thu, Nov 11, 2021 at 02:14:05PM +0100, Thomas Schwinge wrote:
> There appears to be yet another issue: there still are quite a number of
> 'FAIL: libgomp.c/places-10.c execution test' reports on
> <gcc-testresults@gcc.gnu.org>.  Also in my testing testing, on a system
> where '/sys/devices/system/node/online' contains '0-1', I get a FAIL:
>
>     [...]
>     OPENMP DISPLAY ENVIRONMENT BEGIN
>       _OPENMP = '201511'
>       OMP_DYNAMIC = 'FALSE'
>       OMP_NESTED = 'FALSE'
>       OMP_NUM_THREADS = '8'
>       OMP_SCHEDULE = 'DYNAMIC'
>       OMP_PROC_BIND = 'TRUE'
>       OMP_PLACES = '{0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30},{FAIL: libgomp.c/places-10.c execution test

I've finally managed to debug this (by dumping used /sys/ files from
an affected system in Fedora build system, replacing /sys/ with /tmp/
in gcc sources and populating there those files), I think following patch
ought to fix it.

2022-03-18  Jakub Jelinek  <jakub@redhat.com>

* config/linux/affinity.c (gomp_affinity_init_numa_domains): Move seen
variable next to pl variable.

libgomp/config/linux/affinity.c

index 65d7f96..5de02b0 100644 (file)
@@ -411,11 +411,11 @@ gomp_affinity_init_numa_domains (unsigned long count, cpu_set_t *copy,
            {
              char *p = line;
              void *pl = NULL;
+             bool seen = false;
 
              while (*p && *p != '\n')
                {
                  unsigned long first, last;
-                 bool seen = false;
 
                  errno = 0;
                  first = strtoul (p, &end, 10);