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.