Hello,

I get now the following error:

libtool: compile: /scratch/git-build/b-gcc-git-arm-rtems4.12/./gcc/xgcc -B/scratch/git-build/b-gcc-git-arm-rtems4.12/./gcc/ -nostdinc -B/scratch/git-build/b-gcc-git-arm-rtems4.12/arm-rtems4.12/newlib/ -isystem /scratch/git-build/b-gcc-git-arm-rtems4.12/arm-rtems4.12/newlib/targ-include -isystem /home/EB/sebastian_h/archive/gcc-git/newlib/libc/include -B/opt/rtems-4.12/arm-rtems4.12/bin/ -B/opt/rtems-4.12/arm-rtems4.12/lib/ -isystem /opt/rtems-4.12/arm-rtems4.12/include -isystem /opt/rtems-4.12/arm-rtems4.12/sys-include -DHAVE_CONFIG_H -I. -I/home/EB/sebastian_h/archive/gcc-git/libgomp -I/home/EB/sebastian_h/archive/gcc-git/libgomp/config/rtems -I/home/EB/sebastian_h/archive/gcc-git/libgomp/config/posix -I/home/EB/sebastian_h/archive/gcc-git/libgomp -I/home/EB/sebastian_h/archive/gcc-git/libgomp/../include -Wall -Werror -g -O2 -MT fortran.lo -MD -MP -MF .deps/fortran.Tpo -c /home/EB/sebastian_h/archive/gcc-git/libgomp/fortran.c -o fortran.o /home/EB/sebastian_h/archive/gcc-git/libgomp/fortran.c: In function 'omp_get_place_proc_ids_': /home/EB/sebastian_h/archive/gcc-git/libgomp/fortran.c:484:39: error: passing argument 2 of 'omp_get_place_proc_ids' from incompatible pointer type [-Werror=incompatible-pointer-types]
   omp_get_place_proc_ids (*place_num, ids);
                                       ^
In file included from /home/EB/sebastian_h/archive/gcc-git/libgomp/fortran.c:28:0: /home/EB/sebastian_h/archive/gcc-git/libgomp/fortran.c:73:18: note: expected 'int *' but argument is of type 'int32_t * {aka long int *}'
 ialias_redirect (omp_get_place_proc_ids)
                  ^
/home/EB/sebastian_h/archive/gcc-git/libgomp/libgomp.h:1011:24: note: in definition of macro 'ialias_redirect' extern __typeof (fn) fn __asm__ (ialias_ulp "gomp_ialias_" #fn) attribute_hidden;
                        ^
/home/EB/sebastian_h/archive/gcc-git/libgomp/fortran.c: In function 'omp_get_partition_place_nums_': /home/EB/sebastian_h/archive/gcc-git/libgomp/fortran.c:508:33: error: passing argument 1 of 'omp_get_partition_place_nums' from incompatible pointer type [-Werror=incompatible-pointer-types]
   omp_get_partition_place_nums (place_nums);
                                 ^
In file included from /home/EB/sebastian_h/archive/gcc-git/libgomp/fortran.c:28:0: /home/EB/sebastian_h/archive/gcc-git/libgomp/fortran.c:76:18: note: expected 'int *' but argument is of type 'int32_t * {aka long int *}'
 ialias_redirect (omp_get_partition_place_nums)
                  ^
/home/EB/sebastian_h/archive/gcc-git/libgomp/libgomp.h:1011:24: note: in definition of macro 'ialias_redirect' extern __typeof (fn) fn __asm__ (ialias_ulp "gomp_ialias_" #fn) attribute_hidden;

We have for example (libgomp/omp_lib.f90.in):

          subroutine omp_get_place_proc_ids (place_num, ids)
            integer (4), intent(in) :: place_num
            integer (4), intent(out) :: ids(*)
          end subroutine omp_get_place_proc_ids

So this interface is different to (libgomp/omp.h.in):

extern void omp_get_place_proc_ids (int, int *) __GOMP_NOTHROW;

The following patch fixes the problem, but I am not sure if this is really the best way to address this issue:

diff --git a/libgomp/fortran.c b/libgomp/fortran.c
index ceff9ac..44aaf92 100644
--- a/libgomp/fortran.c
+++ b/libgomp/fortran.c
@@ -481,7 +481,9 @@ omp_get_place_num_procs_8_ (const int64_t *place_num)
 void
 omp_get_place_proc_ids_ (const int32_t *place_num, int32_t *ids)
 {
-  omp_get_place_proc_ids (*place_num, ids);
+  int int_ids;
+  omp_get_place_proc_ids (*place_num, &int_ids);
+  *ids = int_ids;
 }

 void
@@ -505,7 +507,9 @@ omp_get_partition_num_places_ (void)
 void
 omp_get_partition_place_nums_ (int32_t *place_nums)
 {
-  omp_get_partition_place_nums (place_nums);
+  int int_place_nums;
+  omp_get_partition_place_nums (&int_place_nums);
+  *place_nums = int_place_nums;
 }

 void

--
Sebastian Huber, embedded brains GmbH

Address : Dornierstr. 4, D-82178 Puchheim, Germany
Phone   : +49 89 189 47 41-16
Fax     : +49 89 189 47 41-09
E-Mail  : sebastian.hu...@embedded-brains.de
PGP     : Public key available on request.

Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.

Reply via email to