C/C++ OpenACC: acc_pcopyin, acc_pcreate

Jakub Jelinek jakub@redhat.com
Tue May 23 11:08:00 GMT 2017


On Mon, May 22, 2017 at 04:26:48PM +0200, Thomas Schwinge wrote:
> In <openacc.h>, we currently describe acc_pcopyin, acc_pcreate as "old
> names", but they're not "old" but really "alternative names", with the
> intention to provide them at symbol level, not via "#define"s.  OK for
> trunk?

No.

>             * libgomp.map (OACC_2.0): Add "acc_pcopyin", and "acc_pcreate".

> --- libgomp/libgomp.map
> +++ libgomp/libgomp.map
> @@ -335,6 +335,7 @@ OACC_2.0 {
>  	acc_copyin_64_h_;
>  	acc_copyin_array_h_;
>  	acc_present_or_copyin;
> +	acc_pcopyin;
>  	acc_present_or_copyin_32_h_;
>  	acc_present_or_copyin_64_h_;
>  	acc_present_or_copyin_array_h_;
> @@ -343,6 +344,7 @@ OACC_2.0 {
>  	acc_create_64_h_;
>  	acc_create_array_h_;
>  	acc_present_or_create;
> +	acc_pcreate;
>  	acc_present_or_create_32_h_;
>  	acc_present_or_create_64_h_;
>  	acc_present_or_create_array_h_;

This is just wrong, new symbols should never be added to an existing symbol
version after a GCC version with that symbol version has been released.
You can add it into OACC_2.0.1, or OACC_1.0, or whatever else, but certainly
not into OACC_2.0.

Another option is just to use something like glibc's sys/cdefs.h
__REDIRECT_NTH macro (including the __USER_LABEL_PREFIX__ stuff)
and just declare those functions as having the asm name of the corresponding
alias.  The openacc.h header is for use with GCC only anyway, right?
Unless OpenACC allows one to declare those functions himself and expect
to be able to call them...

	Jakub



More information about the Gcc-patches mailing list