On 7/8/20 7:35 PM, Kwok Cheung Yeung wrote:
> (Resent with CC to gcc-patches)
> 
> Hello
> 
>> I tried out the patch with one test-case and -pie -fPIC/-fpic already
>> seems to works, so perhaps we could have at least one test-case
>> exercising this in libgomp?  That sounds easier to do than the
>> shared-lib test-case.
> 
> I've created a simple testcase which tries to generate a shared library
> with offloaded code. Without the mkoffload patch, it fails during
> linking with:
> 
> ld: /tmp/ccNaT7fO.target.o: relocation R_X86_64_32 against `.rodata' can
> not be used when making a shared object; recompile with -fPIC
> 
> I have tested this on a x64 host with offloading to nvptx and gcn. On
> AMD GCN, it also produces a couple of extra linker warnings that I have
> added dg-warning entries for.
> 
> Okay for trunk/OG10 together with the previous mkoffload patch?
> 

Hi Kwok,

the test-case looks ok to me, but I can't approve it.

FWIW, the nvptx part of the previous mkoffload patch was already
approved, so AFAIU you could have committed that already.

Thanks,
- Tom

> Thanks
> 
> Kwok
> 
> 
> mkoffload_test_case.patch
> 
> commit 43238117c261285a6b95d881bcc2f9efd9f752ad
> Author: Kwok Cheung Yeung <k...@codesourcery.com>
> Date:   Wed Jul 8 03:28:08 2020 -0700
> 
>     Add test case
>     
>     2020-07-08  Kwok Cheung Yeung  <k...@codesourcery.com>
>     
>       libgomp/
>       * testsuite/libgomp.oacc-c-c++-common/shared-lib.c: New.
> 
> diff --git a/libgomp/testsuite/libgomp.oacc-c-c++-common/shared-lib.c 
> b/libgomp/testsuite/libgomp.oacc-c-c++-common/shared-lib.c
> new file mode 100644
> index 0000000..6d8a4ac
> --- /dev/null
> +++ b/libgomp/testsuite/libgomp.oacc-c-c++-common/shared-lib.c
> @@ -0,0 +1,16 @@
> +/* { dg-do link } */
> +/* { dg-additional-options "-shared -fPIC" { target fpic } } */
> +
> +#define N 512
> +
> +void f(int a[])
> +{
> +  int i;
> +
> +  #pragma acc parallel
> +  for (i = 0; i < N; i++)
> +    a[i]++;
> +}
> +
> +/* { dg-warning "relocation against `.*' in read-only section `\.rodata'" "" 
> { target openacc_radeon_accel_selected } 0 } */
> +/* { dg-warning "creating DT_TEXTREL in a shared object" "" { target 
> openacc_radeon_accel_selected } 0 } */
> 

Reply via email to