Hi Kwok! On 2019-12-06T14:17:47+0000, Kwok Cheung Yeung <k...@codesourcery.com> wrote: > While running the libgomp testsuite with an AMD GCN card configured as > as the offload accelerator, I often see these errors with the Fortran > testcases: > > ld: error: undefined symbol: gomp_ialias_omp_get_num_procs >>>> referenced by fortran.c:330 > (/scratch/ci-cs/amdtest/upstream-offload/src/gcc-mainline/libgompg/fortran.c:330) >>>> fortran.o:(omp_get_num_procs_) in archive > /scratch/ci-cs/amdtest/upstream-offload/obj/test-mainline-0-x86_64-none-linux-gnu/host-x86_64-linux-gnu/fsf-mainline/bin/../lib/gcc/x86_64-none-linux-gnu/10.0.0/accel/amdgcn-unknown-amdhsa/../../../../../../amdgcn-unknown-amdhsa/lib/gfx906/libgomp.a > > omp_get_num_procs_ in fortran.c calls omp_get_num_procs, but the > declaration of omp_get_num_procs is processed using the ialias_redirect > macro so that it is aliased to a function named > gomp_ialias_omp_get_num_procs. The definition of omp_get_num_procs is in > libgomp/config/accel/proc.c, but it is not aliased to > gomp_ialias_omp_get_num_procs, so the linker fails to satisfy the reference. > > This patch applies the corresponding ialias macro to the definition of > gomp_omp_get_num_procs in libgomp/config/accel/proc.c. This is already > done with the alternative definitions in the mingw32, bsd, linux, posix > and rtems subdirectories of libgomp/config/.
Thanks for the clear description. I suppose this hasn't been a problem for nvptx, as we're not supporting/using the symbol aliasing machinery there. > Tested on an x86_64 host with both NVPTX and GCN offloading. Okay to > commit to trunk? Yes, thanks. To record the review effort, please include "Reviewed-by: Thomas Schwinge <tho...@codesourcery.com>" in the commit log, see <https://gcc.gnu.org/wiki/Reviewed-by>. Grüße Thomas > 2019-12-06 Kwok Cheung Yeung <k...@codesourcery.com> > > libgomp/ > * config/accel/proc.c (omp_get_num_procs): Apply ialias macro. > --- > libgomp/config/accel/proc.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/libgomp/config/accel/proc.c b/libgomp/config/accel/proc.c > index 8ca0b0a..be4cb30 100644 > --- a/libgomp/config/accel/proc.c > +++ b/libgomp/config/accel/proc.c > @@ -39,3 +39,5 @@ omp_get_num_procs (void) > { > return gomp_icv (false)->nthreads_var; > } > + > +ialias (omp_get_num_procs)
signature.asc
Description: PGP signature