public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
* gcc-8-20180225: "go" breaks building OpenMP
@ 2018-03-09  6:56 Siegmar Gross
  2018-03-09  9:35 ` Jakub Jelinek
  2018-03-09 13:38 ` Ian Lance Taylor
  0 siblings, 2 replies; 10+ messages in thread
From: Siegmar Gross @ 2018-03-09  6:56 UTC (permalink / raw)
  To: gcc

Hi,

some days ago I've installed gcc-8-20180225 with accelerator support
on my "SUSE Linux Enterprise Server 12.3 (x86_64)" with gcc-6.4.0.
Yesterday I tried to add the languages objc, obj-c++, and go to my
installation. Unfortunately, I lost the OpenMP support. Adding the
languages step-by-step, I found out that "go" is responsible for the
problem.

loki local 111 diff -rq gcc-8.0.0_2/nvptx-none/lib/ 
gcc-8.0.0_3/nvptx-none/lib/ |& grep -v differ
Only in gcc-8.0.0_2/nvptx-none/lib/: libgfortran.a
Only in gcc-8.0.0_2/nvptx-none/lib/: libgfortran.la
Only in gcc-8.0.0_2/nvptx-none/lib/: libgfortran.spec
Only in gcc-8.0.0_2/nvptx-none/lib/: libgomp.a
Only in gcc-8.0.0_2/nvptx-none/lib/: libgomp.la
Only in gcc-8.0.0_2/nvptx-none/lib/: libgomp.spec
Only in gcc-8.0.0_2/nvptx-none/lib/mgomp: libgfortran.a
Only in gcc-8.0.0_2/nvptx-none/lib/mgomp: libgfortran.la
Only in gcc-8.0.0_2/nvptx-none/lib/mgomp: libgfortran.spec
Only in gcc-8.0.0_2/nvptx-none/lib/mgomp: libgomp.a
Only in gcc-8.0.0_2/nvptx-none/lib/mgomp: libgomp.la
Only in gcc-8.0.0_2/nvptx-none/lib/mgomp: libgomp.spec
loki local 112



My make-directories show the following differences.

loki gcc-8.0.0 115 diff -rq make_nvptx-tools_2 make_nvptx-tools_3 |& grep -v 
differ | sort


loki gcc-8.0.0 116 diff -rq gcc-8.0.0_build_2 gcc-8.0.0_build_3 |& grep -v 
differ | sort
Only in gcc-8.0.0_build_2/gcc: b-header-vars
Only in gcc-8.0.0_build_2/gcc: s-header-vars
Only in gcc-8.0.0_build_2/nvptx-none/libgomp/testsuite: libgomp-test-support.exp
Only in gcc-8.0.0_build_2/nvptx-none/libgomp: .libs
Only in gcc-8.0.0_build_2/nvptx-none/libgomp: affinity.lo
Only in gcc-8.0.0_build_2/nvptx-none/libgomp: affinity.o
...
Only in gcc-8.0.0_build_2/nvptx-none/libgomp: work.lo
Only in gcc-8.0.0_build_2/nvptx-none/libgomp: work.o
Only in gcc-8.0.0_build_2/nvptx-none/mgomp/libgomp/testsuite: 
libgomp-test-support.exp
Only in gcc-8.0.0_build_2/nvptx-none/mgomp/libgomp: .libs
Only in gcc-8.0.0_build_2/nvptx-none/mgomp/libgomp: affinity.lo
Only in gcc-8.0.0_build_2/nvptx-none/mgomp/libgomp: affinity.o
...
Only in gcc-8.0.0_build_2/nvptx-none/mgomp/libgomp: work.lo
Only in gcc-8.0.0_build_2/nvptx-none/mgomp/libgomp: work.o
Only in gcc-8.0.0_build_2/nvptx-none/mgomp: libgfortran
Only in gcc-8.0.0_build_2/nvptx-none: libgfortran
Only in gcc-8.0.0_build_3/gcc/doc: gccgo.1
Only in gcc-8.0.0_build_3/gcc/doc: gccgo.info
Only in gcc-8.0.0_build_3/gcc/go/.deps: ast-dump.Po
Only in gcc-8.0.0_build_3/gcc/go/.deps: escape.Po
Only in gcc-8.0.0_build_3/gcc/go/.deps: export.Po
...
Only in gcc-8.0.0_build_3/gcc/go: unsafe.o
Only in gcc-8.0.0_build_3/gcc/go: wb.o
Only in gcc-8.0.0_build_3/gcc: gccgo
Only in gcc-8.0.0_build_3/gcc: gccgo-cross
Only in gcc-8.0.0_build_3/gcc: go1
Only in gcc-8.0.0_build_3/nvptx-none: libffi
Only in gcc-8.0.0_build_3: gotools



loki gcc-8.0.0 117 diff -rq gcc-8.0.0_host_build_2 gcc-8.0.0_host_build_3 |& 
grep -v differ | sort
Only in gcc-8.0.0_host_build_3/gcc/doc: gccgo.1
Only in gcc-8.0.0_host_build_3/gcc/doc: gccgo.info
Only in gcc-8.0.0_host_build_3/gcc/go/.deps: ast-dump.Po
Only in gcc-8.0.0_host_build_3/gcc/go/.deps: escape.Po
...
Only in gcc-8.0.0_host_build_3/gcc/go: unsafe.o
Only in gcc-8.0.0_host_build_3/gcc/go: wb.o
Only in gcc-8.0.0_host_build_3/gcc: gccgo
Only in gcc-8.0.0_host_build_3/gcc: go1
Only in gcc-8.0.0_host_build_3/prev-gcc/doc: gccgo.1
Only in gcc-8.0.0_host_build_3/prev-gcc/doc: gccgo.info
Only in gcc-8.0.0_host_build_3/prev-gcc/go/.deps: ast-dump.Po
Only in gcc-8.0.0_host_build_3/prev-gcc/go/.deps: escape.Po
...
Only in gcc-8.0.0_host_build_3/prev-gcc/go: wb.o
Only in gcc-8.0.0_host_build_3/prev-gcc: gccgo
Only in gcc-8.0.0_host_build_3/prev-gcc: go1
Only in gcc-8.0.0_host_build_3/x86_64-pc-linux-gnu/32: libffi
Only in gcc-8.0.0_host_build_3/x86_64-pc-linux-gnu/32: libgo
Only in gcc-8.0.0_host_build_3/x86_64-pc-linux-gnu: libffi
Only in gcc-8.0.0_host_build_3/x86_64-pc-linux-gnu: libgo
Only in gcc-8.0.0_host_build_3: gotools
loki gcc-8.0.0 118



The commands to build both versions are only different for the language
part.

loki gcc-8.0.0 118 diff README-gcc-8.0.0_2 README-gcc-8.0.0_3
77c77
<   --enable-languages=c,c++,objc,obj-c++,fortran,lto \
---
 >   --enable-languages=c,c++,objc,obj-c++,fortran,go,lto \
91c91
<   --enable-languages=c,c++,objc,obj-c++,fortran,lto \
---
 >   --enable-languages=c,c++,objc,obj-c++,fortran,go,lto \
loki gcc-8.0.0 119



I used the following commands to build everything.

setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:/usr/local/cuda/lib64
setenv CUDA_INC_PATH /usr/local/cuda/include
setenv CUDA_LIB_PATH /usr/local/cuda/lib64
set path = ( ${path} /usr/local/cuda/bin )

mkdir make_nvptx-tools
cd make_nvptx-tools
../nvptx-tools/configure --prefix=/usr/local/gcc-8.0.0 \
   |& tee log.configure
make |& tee log.make
make install |& tee log.make-install
cd ..

mkdir gcc-8.0.0_build
cd gcc-8.0.0_build
../gcc-8.0.0/configure --prefix=/usr/local/gcc-8.0.0 \
   --target=nvptx-none \
   --enable-as-accelerator-for=x86_64-pc-linux-gnu \
   --with-build-time-tools=/usr/local/gcc-8.0.0/nvptx-none/bin \
   --disable-sjlj-exceptions \
   --with-newlib \
   --enable-newlib-io-long-long \
   --enable-languages=c,c++,objc,obj-c++,fortran,go,lto \
   |& tee log.configure
make -j 6 |& tee log.make
make -j 6 install |& tee log.make-install

mkdir ../gcc-8.0.0_host_build
cd ../gcc-8.0.0_host_build
../gcc-8.0.0/configure --prefix=/usr/local/gcc-8.0.0 \
   --build=x86_64-pc-linux-gnu \
   --host=x86_64-pc-linux-gnu \
   --target=x86_64-pc-linux-gnu \
   --enable-offload-targets=nvptx-none=/usr/local/gcc-8.0.0/bin \
   --with-cuda-driver=/usr/local/cuda/ \
   --enable-languages=c,c++,objc,obj-c++,fortran,go,lto \
   --enable-nls \
   --enable-threads=posix \
   --with-gmp-lib=/usr/local/lib64 \
   --with-gmp-include=/usr/local/include \
   --with-mpfr-lib=/usr/local/lib64 \
   --with-mpfr-include=/usr/local/include \
   --with-mpc-lib=/usr/local/lib64 \
   --with-mpc-include=/usr/local/include \
   --with-isl-lib=/usr/local/lib64 \
   --with-isl-include=/usr/local/include \
   |& tee log.configure
make -j 6 |& tee log.make
make -j 6 install |& tee log.make-install


Using "make" instead of "make -j 6" didn't change the result. Does anybody
know why "go" prohibts a correct build process for OpenMP? Do you need
any files from my build-directories to investigate the problem? I would be
grateful, if somebody knows a solution or can fix the problem. Thank you
very much for any help in advance.


Kind regards

Siegmar

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: gcc-8-20180225: "go" breaks building OpenMP
  2018-03-09  9:35 ` Jakub Jelinek
@ 2018-03-09  8:32   ` Siegmar Gross
  2018-03-09 16:15     ` Thomas Schwinge
  0 siblings, 1 reply; 10+ messages in thread
From: Siegmar Gross @ 2018-03-09  8:32 UTC (permalink / raw)
  To: gcc-dev

Hi Jakub,

Am 09.03.2018 um 08:44 schrieb Jakub Jelinek:
> On Fri, Mar 09, 2018 at 07:56:38AM +0100, Siegmar Gross wrote:
>> some days ago I've installed gcc-8-20180225 with accelerator support on my
>> "SUSE Linux Enterprise Server 12.3 (x86_64)" with gcc-6.4.0.  Yesterday I
>> tried to add the languages objc, obj-c++, and go to my installation.
>> Unfortunately, I lost the OpenMP support.  Adding the languages
>> step-by-step, I found out that "go" is responsible for the problem.
> 
> Why are you doing it at all?
> In the OpenMP/OpenACC offloading compiler, you only need the LTO "frontend",
> and libraries built for C, C++ and Fortran as those are the languages
> supported by OpenMP/OpenACC.  You don't need anything else.  And, Go doesn't
> support NVPTX at all.  Ada probably doesn't either.

You are right. I'm using C and OpenMP/OpenACC for CPUs and accelerators, but a
colleague of mine wants to use the other languages, so that I tried to build
them as well.


Kind regards

Siegmar

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: gcc-8-20180225: "go" breaks building OpenMP
  2018-03-09  6:56 gcc-8-20180225: "go" breaks building OpenMP Siegmar Gross
@ 2018-03-09  9:35 ` Jakub Jelinek
  2018-03-09  8:32   ` Siegmar Gross
  2018-03-09 13:38 ` Ian Lance Taylor
  1 sibling, 1 reply; 10+ messages in thread
From: Jakub Jelinek @ 2018-03-09  9:35 UTC (permalink / raw)
  To: Siegmar Gross; +Cc: gcc

On Fri, Mar 09, 2018 at 07:56:38AM +0100, Siegmar Gross wrote:
> some days ago I've installed gcc-8-20180225 with accelerator support on my
> "SUSE Linux Enterprise Server 12.3 (x86_64)" with gcc-6.4.0.  Yesterday I
> tried to add the languages objc, obj-c++, and go to my installation. 
> Unfortunately, I lost the OpenMP support.  Adding the languages
> step-by-step, I found out that "go" is responsible for the problem.

Why are you doing it at all?
In the OpenMP/OpenACC offloading compiler, you only need the LTO "frontend",
and libraries built for C, C++ and Fortran as those are the languages
supported by OpenMP/OpenACC.  You don't need anything else.  And, Go doesn't
support NVPTX at all.  Ada probably doesn't either.

	Jakub

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: gcc-8-20180225: "go" breaks building OpenMP
  2018-03-09  6:56 gcc-8-20180225: "go" breaks building OpenMP Siegmar Gross
  2018-03-09  9:35 ` Jakub Jelinek
@ 2018-03-09 13:38 ` Ian Lance Taylor
  2018-03-09 16:15   ` Siegmar Gross
  1 sibling, 1 reply; 10+ messages in thread
From: Ian Lance Taylor @ 2018-03-09 13:38 UTC (permalink / raw)
  To: Siegmar Gross; +Cc: GCC Development

On Thu, Mar 8, 2018 at 10:56 PM, Siegmar Gross
<siegmar.gross@informatik.hs-fulda.de> wrote:
>
> some days ago I've installed gcc-8-20180225 with accelerator support
> on my "SUSE Linux Enterprise Server 12.3 (x86_64)" with gcc-6.4.0.
> Yesterday I tried to add the languages objc, obj-c++, and go to my
> installation. Unfortunately, I lost the OpenMP support. Adding the
> languages step-by-step, I found out that "go" is responsible for the
> problem.
>
> loki local 111 diff -rq gcc-8.0.0_2/nvptx-none/lib/
> gcc-8.0.0_3/nvptx-none/lib/ |& grep -v differ
> Only in gcc-8.0.0_2/nvptx-none/lib/: libgfortran.a
> Only in gcc-8.0.0_2/nvptx-none/lib/: libgfortran.la
> Only in gcc-8.0.0_2/nvptx-none/lib/: libgfortran.spec
> Only in gcc-8.0.0_2/nvptx-none/lib/: libgomp.a
> Only in gcc-8.0.0_2/nvptx-none/lib/: libgomp.la
> Only in gcc-8.0.0_2/nvptx-none/lib/: libgomp.spec
> Only in gcc-8.0.0_2/nvptx-none/lib/mgomp: libgfortran.a
> Only in gcc-8.0.0_2/nvptx-none/lib/mgomp: libgfortran.la
> Only in gcc-8.0.0_2/nvptx-none/lib/mgomp: libgfortran.spec
> Only in gcc-8.0.0_2/nvptx-none/lib/mgomp: libgomp.a
> Only in gcc-8.0.0_2/nvptx-none/lib/mgomp: libgomp.la
> Only in gcc-8.0.0_2/nvptx-none/lib/mgomp: libgomp.spec
> loki local 112
>
>
>
> My make-directories show the following differences.
>
> loki gcc-8.0.0 115 diff -rq make_nvptx-tools_2 make_nvptx-tools_3 |& grep -v
> differ | sort
>
>
> loki gcc-8.0.0 116 diff -rq gcc-8.0.0_build_2 gcc-8.0.0_build_3 |& grep -v
> differ | sort
> Only in gcc-8.0.0_build_2/gcc: b-header-vars
> Only in gcc-8.0.0_build_2/gcc: s-header-vars
> Only in gcc-8.0.0_build_2/nvptx-none/libgomp/testsuite:
> libgomp-test-support.exp
> Only in gcc-8.0.0_build_2/nvptx-none/libgomp: .libs
> Only in gcc-8.0.0_build_2/nvptx-none/libgomp: affinity.lo
> Only in gcc-8.0.0_build_2/nvptx-none/libgomp: affinity.o
> ...
> Only in gcc-8.0.0_build_2/nvptx-none/libgomp: work.lo
> Only in gcc-8.0.0_build_2/nvptx-none/libgomp: work.o
> Only in gcc-8.0.0_build_2/nvptx-none/mgomp/libgomp/testsuite:
> libgomp-test-support.exp
> Only in gcc-8.0.0_build_2/nvptx-none/mgomp/libgomp: .libs
> Only in gcc-8.0.0_build_2/nvptx-none/mgomp/libgomp: affinity.lo
> Only in gcc-8.0.0_build_2/nvptx-none/mgomp/libgomp: affinity.o
> ...
> Only in gcc-8.0.0_build_2/nvptx-none/mgomp/libgomp: work.lo
> Only in gcc-8.0.0_build_2/nvptx-none/mgomp/libgomp: work.o
> Only in gcc-8.0.0_build_2/nvptx-none/mgomp: libgfortran
> Only in gcc-8.0.0_build_2/nvptx-none: libgfortran
> Only in gcc-8.0.0_build_3/gcc/doc: gccgo.1
> Only in gcc-8.0.0_build_3/gcc/doc: gccgo.info
> Only in gcc-8.0.0_build_3/gcc/go/.deps: ast-dump.Po
> Only in gcc-8.0.0_build_3/gcc/go/.deps: escape.Po
> Only in gcc-8.0.0_build_3/gcc/go/.deps: export.Po
> ...
> Only in gcc-8.0.0_build_3/gcc/go: unsafe.o
> Only in gcc-8.0.0_build_3/gcc/go: wb.o
> Only in gcc-8.0.0_build_3/gcc: gccgo
> Only in gcc-8.0.0_build_3/gcc: gccgo-cross
> Only in gcc-8.0.0_build_3/gcc: go1
> Only in gcc-8.0.0_build_3/nvptx-none: libffi
> Only in gcc-8.0.0_build_3: gotools
>
>
>
> loki gcc-8.0.0 117 diff -rq gcc-8.0.0_host_build_2 gcc-8.0.0_host_build_3 |&
> grep -v differ | sort
> Only in gcc-8.0.0_host_build_3/gcc/doc: gccgo.1
> Only in gcc-8.0.0_host_build_3/gcc/doc: gccgo.info
> Only in gcc-8.0.0_host_build_3/gcc/go/.deps: ast-dump.Po
> Only in gcc-8.0.0_host_build_3/gcc/go/.deps: escape.Po
> ...
> Only in gcc-8.0.0_host_build_3/gcc/go: unsafe.o
> Only in gcc-8.0.0_host_build_3/gcc/go: wb.o
> Only in gcc-8.0.0_host_build_3/gcc: gccgo
> Only in gcc-8.0.0_host_build_3/gcc: go1
> Only in gcc-8.0.0_host_build_3/prev-gcc/doc: gccgo.1
> Only in gcc-8.0.0_host_build_3/prev-gcc/doc: gccgo.info
> Only in gcc-8.0.0_host_build_3/prev-gcc/go/.deps: ast-dump.Po
> Only in gcc-8.0.0_host_build_3/prev-gcc/go/.deps: escape.Po
> ...
> Only in gcc-8.0.0_host_build_3/prev-gcc/go: wb.o
> Only in gcc-8.0.0_host_build_3/prev-gcc: gccgo
> Only in gcc-8.0.0_host_build_3/prev-gcc: go1
> Only in gcc-8.0.0_host_build_3/x86_64-pc-linux-gnu/32: libffi
> Only in gcc-8.0.0_host_build_3/x86_64-pc-linux-gnu/32: libgo
> Only in gcc-8.0.0_host_build_3/x86_64-pc-linux-gnu: libffi
> Only in gcc-8.0.0_host_build_3/x86_64-pc-linux-gnu: libgo
> Only in gcc-8.0.0_host_build_3: gotools
> loki gcc-8.0.0 118
>
>
>
> The commands to build both versions are only different for the language
> part.
>
> loki gcc-8.0.0 118 diff README-gcc-8.0.0_2 README-gcc-8.0.0_3
> 77c77
> <   --enable-languages=c,c++,objc,obj-c++,fortran,lto \
> ---
>>   --enable-languages=c,c++,objc,obj-c++,fortran,go,lto \
> 91c91
> <   --enable-languages=c,c++,objc,obj-c++,fortran,lto \
> ---
>>   --enable-languages=c,c++,objc,obj-c++,fortran,go,lto \
> loki gcc-8.0.0 119
>
>
>
> I used the following commands to build everything.
>
> setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:/usr/local/cuda/lib64
> setenv CUDA_INC_PATH /usr/local/cuda/include
> setenv CUDA_LIB_PATH /usr/local/cuda/lib64
> set path = ( ${path} /usr/local/cuda/bin )
>
> mkdir make_nvptx-tools
> cd make_nvptx-tools
> ../nvptx-tools/configure --prefix=/usr/local/gcc-8.0.0 \
>   |& tee log.configure
> make |& tee log.make
> make install |& tee log.make-install
> cd ..
>
> mkdir gcc-8.0.0_build
> cd gcc-8.0.0_build
> ../gcc-8.0.0/configure --prefix=/usr/local/gcc-8.0.0 \
>   --target=nvptx-none \
>   --enable-as-accelerator-for=x86_64-pc-linux-gnu \
>   --with-build-time-tools=/usr/local/gcc-8.0.0/nvptx-none/bin \
>   --disable-sjlj-exceptions \
>   --with-newlib \
>   --enable-newlib-io-long-long \
>   --enable-languages=c,c++,objc,obj-c++,fortran,go,lto \
>   |& tee log.configure
> make -j 6 |& tee log.make
> make -j 6 install |& tee log.make-install
>
> mkdir ../gcc-8.0.0_host_build
> cd ../gcc-8.0.0_host_build
> ../gcc-8.0.0/configure --prefix=/usr/local/gcc-8.0.0 \
>   --build=x86_64-pc-linux-gnu \
>   --host=x86_64-pc-linux-gnu \
>   --target=x86_64-pc-linux-gnu \
>   --enable-offload-targets=nvptx-none=/usr/local/gcc-8.0.0/bin \
>   --with-cuda-driver=/usr/local/cuda/ \
>   --enable-languages=c,c++,objc,obj-c++,fortran,go,lto \
>   --enable-nls \
>   --enable-threads=posix \
>   --with-gmp-lib=/usr/local/lib64 \
>   --with-gmp-include=/usr/local/include \
>   --with-mpfr-lib=/usr/local/lib64 \
>   --with-mpfr-include=/usr/local/include \
>   --with-mpc-lib=/usr/local/lib64 \
>   --with-mpc-include=/usr/local/include \
>   --with-isl-lib=/usr/local/lib64 \
>   --with-isl-include=/usr/local/include \
>   |& tee log.configure
> make -j 6 |& tee log.make
> make -j 6 install |& tee log.make-install
>
>
> Using "make" instead of "make -j 6" didn't change the result. Does anybody
> know why "go" prohibts a correct build process for OpenMP? Do you need
> any files from my build-directories to investigate the problem? I would be
> grateful, if somebody knows a solution or can fix the problem. Thank you
> very much for any help in advance.

Are there any errors during the `make` or `make install`?

Ian

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: gcc-8-20180225: "go" breaks building OpenMP
  2018-03-09 13:38 ` Ian Lance Taylor
@ 2018-03-09 16:15   ` Siegmar Gross
  2018-03-09 16:59     ` Thomas Schwinge
  2018-03-09 18:35     ` Jakub Jelinek
  0 siblings, 2 replies; 10+ messages in thread
From: Siegmar Gross @ 2018-03-09 16:15 UTC (permalink / raw)
  To: gcc-dev

Hi Ian,

there are differences in the log files.

loki gcc-8.0.0_build_3 131 grep failed log.make
checking whether /export2/src/gcc-8.0.0/gcc-8.0.0_build/./gcc/xg++ 
-B/export2/src/gcc-8.0.0/gcc-8.0.0_build/./gcc/ -nostdinc++ 
-funconfigured-libstdc++-v3 
-L/export2/src/gcc-8.0.0/gcc-8.0.0_build/nvptx-none/libstdc++-v3/src 
-L/export2/src/gcc-8.0.0/gcc-8.0.0_build/nvptx-none/libstdc++-v3/src/.libs 
-L/export2/src/gcc-8.0.0/gcc-8.0.0_build/nvptx-none/libstdc++-v3/libsupc++/.libs 
-nostdinc -B/export2/src/gcc-8.0.0/gcc-8.0.0_build/nvptx-none/newlib/ -isystem 
/export2/src/gcc-8.0.0/gcc-8.0.0_build/nvptx-none/newlib/targ-include -isystem 
/export2/src/gcc-8.0.0/gcc-8.0.0/newlib/libc/include 
-B/usr/local/gcc-8.0.0/nvptx-none/bin/ -B/usr/local/gcc-8.0.0/nvptx-none/lib/ 
-isystem /usr/local/gcc-8.0.0/nvptx-none/include -isystem 
/usr/local/gcc-8.0.0/nvptx-none/sys-include    accepts -g... failed
checking for ld used by /export2/src/gcc-8.0.0/gcc-8.0.0_build/./gcc/xgcc 
-B/export2/src/gcc-8.0.0/gcc-8.0.0_build/./gcc/ -nostdinc 
-B/export2/src/gcc-8.0.0/gcc-8.0.0_build/nvptx-none/newlib/ -isystem 
/export2/src/gcc-8.0.0/gcc-8.0.0_build/nvptx-none/newlib/targ-include -isystem 
/export2/src/gcc-8.0.0/gcc-8.0.0/newlib/libc/include 
-B/usr/local/gcc-8.0.0/nvptx-none/bin/ -B/usr/local/gcc-8.0.0/nvptx-none/lib/ 
-isystem /usr/local/gcc-8.0.0/nvptx-none/include -isystem 
/usr/local/gcc-8.0.0/nvptx-none/sys-include   ... failed
checking command to parse /export2/src/gcc-8.0.0/gcc-8.0.0_build/./gcc/nm 
output from /export2/src/gcc-8.0.0/gcc-8.0.0_build/./gcc/xgcc 
-B/export2/src/gcc-8.0.0/gcc-8.0.0_build/./gcc/ -nostdinc 
-B/export2/src/gcc-8.0.0/gcc-8.0.0_build/nvptx-none/newlib/ -isystem 
/export2/src/gcc-8.0.0/gcc-8.0.0_build/nvptx-none/newlib/targ-include -isystem 
/export2/src/gcc-8.0.0/gcc-8.0.0/newlib/libc/include 
-B/usr/local/gcc-8.0.0/nvptx-none/bin/ -B/usr/local/gcc-8.0.0/nvptx-none/lib/ 
-isystem /usr/local/gcc-8.0.0/nvptx-none/include -isystem 
/usr/local/gcc-8.0.0/nvptx-none/sys-include    object... failed
checking if /export2/src/gcc-8.0.0/gcc-8.0.0_build/./gcc/xgcc 
-B/export2/src/gcc-8.0.0/gcc-8.0.0_build/./gcc/ -nostdinc 
-B/export2/src/gcc-8.0.0/gcc-8.0.0_build/nvptx-none/newlib/ -isystem 
/export2/src/gcc-8.0.0/gcc-8.0.0_build/nvptx-none/newlib/targ-include -isystem 
/export2/src/gcc-8.0.0/gcc-8.0.0/newlib/libc/include 
-B/usr/local/gcc-8.0.0/nvptx-none/bin/ -B/usr/local/gcc-8.0.0/nvptx-none/lib/ 
-isystem /usr/local/gcc-8.0.0/nvptx-none/include -isystem 
/usr/local/gcc-8.0.0/nvptx-none/sys-include    supports -fno-rtti 
-fno-exceptions... failed
checking for fesetenv in -lm... Makefile:14460: recipe for target 
'configure-target-libffi' failed
checking dependency style of /export2/src/gcc-8.0.0/gcc-8.0.0_build/./gcc/xgcc 
-B/export2/src/gcc-8.0.0/gcc-8.0.0_build/./gcc/ -nostdinc 
-B/export2/src/gcc-8.0.0/gcc-8.0.0_build/nvptx-none/mgomp/newlib/ -isystem 
/export2/src/gcc-8.0.0/gcc-8.0.0_build/nvptx-none/mgomp/newlib/targ-include 
-isystem /export2/src/gcc-8.0.0/gcc-8.0.0/newlib/libc/include 
-B/usr/local/gcc-8.0.0/nvptx-none/bin/ -B/usr/local/gcc-8.0.0/nvptx-none/lib/ 
-isystem /usr/local/gcc-8.0.0/nvptx-none/include -isystem 
/usr/local/gcc-8.0.0/nvptx-none/sys-include  -mgomp... failed
looking for a compliant stdint.h in stdint.h, checking for uintmax_t... failed
checking command to parse /export2/src/gcc-8.0.0/gcc-8.0.0_build/./gcc/nm 
output from /export2/src/gcc-8.0.0/gcc-8.0.0_build/./gcc/xgcc 
-B/export2/src/gcc-8.0.0/gcc-8.0.0_build/./gcc/ -nostdinc 
-B/export2/src/gcc-8.0.0/gcc-8.0.0_build/nvptx-none/mgomp/newlib/ -isystem 
/export2/src/gcc-8.0.0/gcc-8.0.0_build/nvptx-none/mgomp/newlib/targ-include 
-isystem /export2/src/gcc-8.0.0/gcc-8.0.0/newlib/libc/include 
-B/usr/local/gcc-8.0.0/nvptx-none/bin/ -B/usr/local/gcc-8.0.0/nvptx-none/lib/ 
-isystem /usr/local/gcc-8.0.0/nvptx-none/include -isystem 
/usr/local/gcc-8.0.0/nvptx-none/sys-include  -mgomp object... failed
Makefile:883: recipe for target 'all' failed



loki gcc-8.0.0_build_3 132 grep failed ../gcc-8.0.0_build_2/log.make
checking for ANSI C header files... failed
checking for dlfcn.h... failed
checking command to parse /export2/src/gcc-8.0.0/gcc-8.0.0_build/./gcc/nm 
output from /export2/src/gcc-8.0.0/gcc-8.0.0_build/./gcc/xgcc 
-B/export2/src/gcc-8.0.0/gcc-8.0.0_build/./gcc/ -nostdinc 
-B/export2/src/gcc-8.0.0/gcc-8.0.0_build/nvptx-none/newlib/ -isystem 
/export2/src/gcc-8.0.0/gcc-8.0.0_build/nvptx-none/newlib/targ-include -isystem 
/export2/src/gcc-8.0.0/gcc-8.0.0/newlib/libc/include 
-B/usr/local/gcc-8.0.0/nvptx-none/bin/ -B/usr/local/gcc-8.0.0/nvptx-none/lib/ 
-isystem /usr/local/gcc-8.0.0/nvptx-none/include -isystem 
/usr/local/gcc-8.0.0/nvptx-none/sys-include    object... failed
checking dependency style of /export2/src/gcc-8.0.0/gcc-8.0.0_build/./gcc/xgcc 
-B/export2/src/gcc-8.0.0/gcc-8.0.0_build/./gcc/ -nostdinc 
-B/export2/src/gcc-8.0.0/gcc-8.0.0_build/nvptx-none/mgomp/newlib/ -isystem 
/export2/src/gcc-8.0.0/gcc-8.0.0_build/nvptx-none/mgomp/newlib/targ-include 
-isystem /export2/src/gcc-8.0.0/gcc-8.0.0/newlib/libc/include 
-B/usr/local/gcc-8.0.0/nvptx-none/bin/ -B/usr/local/gcc-8.0.0/nvptx-none/lib/ 
-isystem /usr/local/gcc-8.0.0/nvptx-none/include -isystem 
/usr/local/gcc-8.0.0/nvptx-none/sys-include  -mgomp... failed
looking for a compliant stdint.h in stdint.h, checking for uintmax_t... failed
checking for fesetenv in -lm... failed
checking command to parse /export2/src/gcc-8.0.0/gcc-8.0.0_build/./gcc/nm 
output from /export2/src/gcc-8.0.0/gcc-8.0.0_build/./gcc/xgcc 
-B/export2/src/gcc-8.0.0/gcc-8.0.0_build/./gcc/ -nostdinc 
-B/export2/src/gcc-8.0.0/gcc-8.0.0_build/nvptx-none/newlib/ -isystem 
/export2/src/gcc-8.0.0/gcc-8.0.0_build/nvptx-none/newlib/targ-include -isystem 
/export2/src/gcc-8.0.0/gcc-8.0.0/newlib/libc/include 
-B/usr/local/gcc-8.0.0/nvptx-none/bin/ -B/usr/local/gcc-8.0.0/nvptx-none/lib/ 
-isystem /usr/local/gcc-8.0.0/nvptx-none/include -isystem 
/usr/local/gcc-8.0.0/nvptx-none/sys-include    object... failed
checking command to parse /export2/src/gcc-8.0.0/gcc-8.0.0_build/./gcc/nm 
output from /export2/src/gcc-8.0.0/gcc-8.0.0_build/./gcc/xgcc 
-B/export2/src/gcc-8.0.0/gcc-8.0.0_build/./gcc/ -nostdinc 
-B/export2/src/gcc-8.0.0/gcc-8.0.0_build/nvptx-none/mgomp/newlib/ -isystem 
/export2/src/gcc-8.0.0/gcc-8.0.0_build/nvptx-none/mgomp/newlib/targ-include 
-isystem /export2/src/gcc-8.0.0/gcc-8.0.0/newlib/libc/include 
-B/usr/local/gcc-8.0.0/nvptx-none/bin/ -B/usr/local/gcc-8.0.0/nvptx-none/lib/ 
-isystem /usr/local/gcc-8.0.0/nvptx-none/include -isystem 
/usr/local/gcc-8.0.0/nvptx-none/sys-include  -mgomp object... failed



loki gcc-8.0.0_build_3 133 grep Error log.make
make[1]: *** [configure-target-libffi] Error 1
make: *** [all] Error 2


loki gcc-8.0.0_build_3 134 grep Error ../gcc-8.0.0_build_2/log.make
loki gcc-8.0.0_build_3 135


loki gcc-8.0.0_build_3 135 grep failed log.make-install
Makefile:13846: recipe for target 'install-target-libgo' failed
Makefile:2260: recipe for target 'install' failed

loki gcc-8.0.0_build_3 136 grep Error log.make-install
make[1]: *** [install-target-libgo] Error 1
make: *** [install] Error 2


loki gcc-8.0.0_build_3 137 grep failed ../gcc-8.0.0_build_2/log.make-install
loki gcc-8.0.0_build_3 138 grep Error ../gcc-8.0.0_build_2/log.make-install
loki gcc-8.0.0_build_3 139



loki gcc-8.0.0_build_3 140 diff log.configure ../gcc-8.0.0_build_2/log.configure
38c38
< The following languages will be built: c,c++,fortran,go,lto,objc,obj-c++
---
 > The following languages will be built: c,c++,fortran,lto,objc,obj-c++
40c40
<      target-libatomic target-libitm target-libsanitizer target-libvtv 
target-libmpx target-libssp target-libstdc++-v3 target-libobjc gnattools 
target-libada target-libhsail-rt target-liboffloadmic
---
 >      target-libatomic target-libitm target-libsanitizer target-libvtv 
target-libmpx target-libssp target-libstdc++-v3 target-libobjc gnattools 
gotools target-libada target-libhsail-rt target-libgo target-libffi 
target-liboffloadmic
133c133
< checking where to find the target gccgo... just compiled
---
 > checking where to find the target gccgo... pre-installed
loki gcc-8.0.0_build_3 141



loki gcc-8.0.0_build_3 141 grep libffi log*
log.make:Checking multilib configuration for libffi...
log.make:mkdir -p -- nvptx-none/libffi
log.make:Configuring in nvptx-none/libffi
log.make:checking for getgid... configure: error: "libffi has not been ported 
to nvptx-unknown-none."
log.make:checking for fesetenv in -lm... Makefile:14460: recipe for target 
'configure-target-libffi' failed
log.make:make[1]: *** [configure-target-libffi] Error 1


loki gcc-8.0.0_build_3 142 grep libffi ../gcc-8.0.0_build_2/log*
../gcc-8.0.0_build_2/log.configure:     target-libatomic target-libitm 
target-libsanitizer target-libvtv target-libmpx target-libssp 
target-libstdc++-v3 target-libobjc gnattools gotools target-libada 
target-libhsail-rt target-libgo target-libffi target-liboffloadmic
loki gcc-8.0.0_build_3 143


Do you want one or all of the log files?

loki gcc-8.0.0_build_3 143 ls -l log.* ../gcc-8.0.0_build_2/log.*
-rw-r--r-- 1 fd1026 users    7178 Mar  8 18:44 ../gcc-8.0.0_build_2/log.configure
-rw-r--r-- 1 fd1026 users 5573451 Mar  8 18:50 ../gcc-8.0.0_build_2/log.make
-rw-r--r-- 1 fd1026 users  217572 Mar  8 18:50 
../gcc-8.0.0_build_2/log.make-install
-rw-r--r-- 1 fd1026 users    7146 Mar  8 20:26 log.configure
-rw-r--r-- 1 fd1026 users 2256736 Mar  8 20:31 log.make
-rw-r--r-- 1 fd1026 users  116691 Mar  8 20:31 log.make-install
loki gcc-8.0.0_build_3 144


Kind regards and thank you very much for your help in advance

Siegmar


Am 09.03.2018 um 14:38 schrieb Ian Lance Taylor:
> On Thu, Mar 8, 2018 at 10:56 PM, Siegmar Gross
> <siegmar.gross@informatik.hs-fulda.de> wrote:
>>
>> some days ago I've installed gcc-8-20180225 with accelerator support
>> on my "SUSE Linux Enterprise Server 12.3 (x86_64)" with gcc-6.4.0.
>> Yesterday I tried to add the languages objc, obj-c++, and go to my
>> installation. Unfortunately, I lost the OpenMP support. Adding the
>> languages step-by-step, I found out that "go" is responsible for the
>> problem.
>>
>> loki local 111 diff -rq gcc-8.0.0_2/nvptx-none/lib/
>> gcc-8.0.0_3/nvptx-none/lib/ |& grep -v differ
>> Only in gcc-8.0.0_2/nvptx-none/lib/: libgfortran.a
>> Only in gcc-8.0.0_2/nvptx-none/lib/: libgfortran.la
>> Only in gcc-8.0.0_2/nvptx-none/lib/: libgfortran.spec
>> Only in gcc-8.0.0_2/nvptx-none/lib/: libgomp.a
>> Only in gcc-8.0.0_2/nvptx-none/lib/: libgomp.la
>> Only in gcc-8.0.0_2/nvptx-none/lib/: libgomp.spec
>> Only in gcc-8.0.0_2/nvptx-none/lib/mgomp: libgfortran.a
>> Only in gcc-8.0.0_2/nvptx-none/lib/mgomp: libgfortran.la
>> Only in gcc-8.0.0_2/nvptx-none/lib/mgomp: libgfortran.spec
>> Only in gcc-8.0.0_2/nvptx-none/lib/mgomp: libgomp.a
>> Only in gcc-8.0.0_2/nvptx-none/lib/mgomp: libgomp.la
>> Only in gcc-8.0.0_2/nvptx-none/lib/mgomp: libgomp.spec
>> loki local 112
>>
>>
>>
>> My make-directories show the following differences.
>>
>> loki gcc-8.0.0 115 diff -rq make_nvptx-tools_2 make_nvptx-tools_3 |& grep -v
>> differ | sort
>>
>>
>> loki gcc-8.0.0 116 diff -rq gcc-8.0.0_build_2 gcc-8.0.0_build_3 |& grep -v
>> differ | sort
>> Only in gcc-8.0.0_build_2/gcc: b-header-vars
>> Only in gcc-8.0.0_build_2/gcc: s-header-vars
>> Only in gcc-8.0.0_build_2/nvptx-none/libgomp/testsuite:
>> libgomp-test-support.exp
>> Only in gcc-8.0.0_build_2/nvptx-none/libgomp: .libs
>> Only in gcc-8.0.0_build_2/nvptx-none/libgomp: affinity.lo
>> Only in gcc-8.0.0_build_2/nvptx-none/libgomp: affinity.o
>> ...
>> Only in gcc-8.0.0_build_2/nvptx-none/libgomp: work.lo
>> Only in gcc-8.0.0_build_2/nvptx-none/libgomp: work.o
>> Only in gcc-8.0.0_build_2/nvptx-none/mgomp/libgomp/testsuite:
>> libgomp-test-support.exp
>> Only in gcc-8.0.0_build_2/nvptx-none/mgomp/libgomp: .libs
>> Only in gcc-8.0.0_build_2/nvptx-none/mgomp/libgomp: affinity.lo
>> Only in gcc-8.0.0_build_2/nvptx-none/mgomp/libgomp: affinity.o
>> ...
>> Only in gcc-8.0.0_build_2/nvptx-none/mgomp/libgomp: work.lo
>> Only in gcc-8.0.0_build_2/nvptx-none/mgomp/libgomp: work.o
>> Only in gcc-8.0.0_build_2/nvptx-none/mgomp: libgfortran
>> Only in gcc-8.0.0_build_2/nvptx-none: libgfortran
>> Only in gcc-8.0.0_build_3/gcc/doc: gccgo.1
>> Only in gcc-8.0.0_build_3/gcc/doc: gccgo.info
>> Only in gcc-8.0.0_build_3/gcc/go/.deps: ast-dump.Po
>> Only in gcc-8.0.0_build_3/gcc/go/.deps: escape.Po
>> Only in gcc-8.0.0_build_3/gcc/go/.deps: export.Po
>> ...
>> Only in gcc-8.0.0_build_3/gcc/go: unsafe.o
>> Only in gcc-8.0.0_build_3/gcc/go: wb.o
>> Only in gcc-8.0.0_build_3/gcc: gccgo
>> Only in gcc-8.0.0_build_3/gcc: gccgo-cross
>> Only in gcc-8.0.0_build_3/gcc: go1
>> Only in gcc-8.0.0_build_3/nvptx-none: libffi
>> Only in gcc-8.0.0_build_3: gotools
>>
>>
>>
>> loki gcc-8.0.0 117 diff -rq gcc-8.0.0_host_build_2 gcc-8.0.0_host_build_3 |&
>> grep -v differ | sort
>> Only in gcc-8.0.0_host_build_3/gcc/doc: gccgo.1
>> Only in gcc-8.0.0_host_build_3/gcc/doc: gccgo.info
>> Only in gcc-8.0.0_host_build_3/gcc/go/.deps: ast-dump.Po
>> Only in gcc-8.0.0_host_build_3/gcc/go/.deps: escape.Po
>> ...
>> Only in gcc-8.0.0_host_build_3/gcc/go: unsafe.o
>> Only in gcc-8.0.0_host_build_3/gcc/go: wb.o
>> Only in gcc-8.0.0_host_build_3/gcc: gccgo
>> Only in gcc-8.0.0_host_build_3/gcc: go1
>> Only in gcc-8.0.0_host_build_3/prev-gcc/doc: gccgo.1
>> Only in gcc-8.0.0_host_build_3/prev-gcc/doc: gccgo.info
>> Only in gcc-8.0.0_host_build_3/prev-gcc/go/.deps: ast-dump.Po
>> Only in gcc-8.0.0_host_build_3/prev-gcc/go/.deps: escape.Po
>> ...
>> Only in gcc-8.0.0_host_build_3/prev-gcc/go: wb.o
>> Only in gcc-8.0.0_host_build_3/prev-gcc: gccgo
>> Only in gcc-8.0.0_host_build_3/prev-gcc: go1
>> Only in gcc-8.0.0_host_build_3/x86_64-pc-linux-gnu/32: libffi
>> Only in gcc-8.0.0_host_build_3/x86_64-pc-linux-gnu/32: libgo
>> Only in gcc-8.0.0_host_build_3/x86_64-pc-linux-gnu: libffi
>> Only in gcc-8.0.0_host_build_3/x86_64-pc-linux-gnu: libgo
>> Only in gcc-8.0.0_host_build_3: gotools
>> loki gcc-8.0.0 118
>>
>>
>>
>> The commands to build both versions are only different for the language
>> part.
>>
>> loki gcc-8.0.0 118 diff README-gcc-8.0.0_2 README-gcc-8.0.0_3
>> 77c77
>> <   --enable-languages=c,c++,objc,obj-c++,fortran,lto \
>> ---
>>>    --enable-languages=c,c++,objc,obj-c++,fortran,go,lto \
>> 91c91
>> <   --enable-languages=c,c++,objc,obj-c++,fortran,lto \
>> ---
>>>    --enable-languages=c,c++,objc,obj-c++,fortran,go,lto \
>> loki gcc-8.0.0 119
>>
>>
>>
>> I used the following commands to build everything.
>>
>> setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:/usr/local/cuda/lib64
>> setenv CUDA_INC_PATH /usr/local/cuda/include
>> setenv CUDA_LIB_PATH /usr/local/cuda/lib64
>> set path = ( ${path} /usr/local/cuda/bin )
>>
>> mkdir make_nvptx-tools
>> cd make_nvptx-tools
>> ../nvptx-tools/configure --prefix=/usr/local/gcc-8.0.0 \
>>    |& tee log.configure
>> make |& tee log.make
>> make install |& tee log.make-install
>> cd ..
>>
>> mkdir gcc-8.0.0_build
>> cd gcc-8.0.0_build
>> ../gcc-8.0.0/configure --prefix=/usr/local/gcc-8.0.0 \
>>    --target=nvptx-none \
>>    --enable-as-accelerator-for=x86_64-pc-linux-gnu \
>>    --with-build-time-tools=/usr/local/gcc-8.0.0/nvptx-none/bin \
>>    --disable-sjlj-exceptions \
>>    --with-newlib \
>>    --enable-newlib-io-long-long \
>>    --enable-languages=c,c++,objc,obj-c++,fortran,go,lto \
>>    |& tee log.configure
>> make -j 6 |& tee log.make
>> make -j 6 install |& tee log.make-install
>>
>> mkdir ../gcc-8.0.0_host_build
>> cd ../gcc-8.0.0_host_build
>> ../gcc-8.0.0/configure --prefix=/usr/local/gcc-8.0.0 \
>>    --build=x86_64-pc-linux-gnu \
>>    --host=x86_64-pc-linux-gnu \
>>    --target=x86_64-pc-linux-gnu \
>>    --enable-offload-targets=nvptx-none=/usr/local/gcc-8.0.0/bin \
>>    --with-cuda-driver=/usr/local/cuda/ \
>>    --enable-languages=c,c++,objc,obj-c++,fortran,go,lto \
>>    --enable-nls \
>>    --enable-threads=posix \
>>    --with-gmp-lib=/usr/local/lib64 \
>>    --with-gmp-include=/usr/local/include \
>>    --with-mpfr-lib=/usr/local/lib64 \
>>    --with-mpfr-include=/usr/local/include \
>>    --with-mpc-lib=/usr/local/lib64 \
>>    --with-mpc-include=/usr/local/include \
>>    --with-isl-lib=/usr/local/lib64 \
>>    --with-isl-include=/usr/local/include \
>>    |& tee log.configure
>> make -j 6 |& tee log.make
>> make -j 6 install |& tee log.make-install
>>
>>
>> Using "make" instead of "make -j 6" didn't change the result. Does anybody
>> know why "go" prohibts a correct build process for OpenMP? Do you need
>> any files from my build-directories to investigate the problem? I would be
>> grateful, if somebody knows a solution or can fix the problem. Thank you
>> very much for any help in advance.
> 
> Are there any errors during the `make` or `make install`?
> 
> Ian

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: gcc-8-20180225: "go" breaks building OpenMP
  2018-03-09  8:32   ` Siegmar Gross
@ 2018-03-09 16:15     ` Thomas Schwinge
  2018-03-09 16:28       ` Siegmar Gross
  0 siblings, 1 reply; 10+ messages in thread
From: Thomas Schwinge @ 2018-03-09 16:15 UTC (permalink / raw)
  To: Siegmar Gross; +Cc: gcc-dev

Hi!

To close the loop:

On Fri, 9 Mar 2018 09:32:11 +0100, Siegmar Gross <siegmar.gross@informatik.hs-fulda.de> wrote:
> Am 09.03.2018 um 08:44 schrieb Jakub Jelinek:
> > On Fri, Mar 09, 2018 at 07:56:38AM +0100, Siegmar Gross wrote:
> >> some days ago I've installed gcc-8-20180225 with accelerator support on my
> >> "SUSE Linux Enterprise Server 12.3 (x86_64)" with gcc-6.4.0.  Yesterday I
> >> tried to add the languages objc, obj-c++, and go to my installation.
> >> Unfortunately, I lost the OpenMP support.  Adding the languages
> >> step-by-step, I found out that "go" is responsible for the problem.

(OpenACC/OpenMP usage in Objective-C and Objective-C++ code might
somewhat work, or require not too much effort to get implemented, for
these front ends are, as far as I remember, mostly implemented on top of
the C and C++ front ends, but that would be completely untested, to the
best of my knowledge.  And certainly no attention has been paid so far
for any specialities of these C/C++ "dialects".)

> > Why are you doing it at all?
> > In the OpenMP/OpenACC offloading compiler, you only need the LTO "frontend",
> > and libraries built for C, C++ and Fortran as those are the languages
> > supported by OpenMP/OpenACC.

Specifically, these are the *only* languages supported per the current
OpenACC/OpenMP standards.  That's not a hard limitation though: one could
add support for other languages to the OpenACC/OpenMP standards.

There currently isn't code offloading support in GCC for any other
languages; offloading currently is available only via OpenACC/OpenMP.
Other languages maybe might support code offloading via different
mechanisms than the source code pragmas used for OpenACC/OpenMP.  These
different mechanisms could then be mapped to the existing offloading
support in GCC, extending that as needed.

For example, one could add logic to GCC to analyze any language's code in
its common intermediate representation in GCC, and automatically figure
out which computations make sense to distribute to SMP CPUs (see
"-ftree-parallelize-loops"), or to offload to a GPU etc.  This is,
however, a totally non-trivial amount of work.  :-) (This relates to the
poor support in GCC for the OpenACC kernels construct, compared to the
much more mature support for the OpenACC parallel and OpenMP target
constructs.)

We're available for contracting on all such things, if I may add that
here.

> > You don't need anything else.  And, Go doesn't
> > support NVPTX at all.  Ada probably doesn't either.
> 
> You are right. I'm using C and OpenMP/OpenACC for CPUs and accelerators, but a
> colleague of mine wants to use the other languages, so that I tried to build
> them as well.


Grüße
 Thomas

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: gcc-8-20180225: "go" breaks building OpenMP
  2018-03-09 16:15     ` Thomas Schwinge
@ 2018-03-09 16:28       ` Siegmar Gross
  0 siblings, 0 replies; 10+ messages in thread
From: Siegmar Gross @ 2018-03-09 16:28 UTC (permalink / raw)
  To: gcc-dev

Hi Thomas,

OpenMP/OpenACC support isn't necessary for Objective-C/C++ or Go. It's
enough if it is available for C/C++ and Fortran, but it would be interesting
to build the compiler for Objective-C/C++ and Go.


Kind regards and thank you very much for your help in advance

Siegmar


Am 09.03.2018 um 17:15 schrieb Thomas Schwinge:
> Hi!
> 
> To close the loop:
> 
> On Fri, 9 Mar 2018 09:32:11 +0100, Siegmar Gross <siegmar.gross@informatik.hs-fulda.de> wrote:
>> Am 09.03.2018 um 08:44 schrieb Jakub Jelinek:
>>> On Fri, Mar 09, 2018 at 07:56:38AM +0100, Siegmar Gross wrote:
>>>> some days ago I've installed gcc-8-20180225 with accelerator support on my
>>>> "SUSE Linux Enterprise Server 12.3 (x86_64)" with gcc-6.4.0.  Yesterday I
>>>> tried to add the languages objc, obj-c++, and go to my installation.
>>>> Unfortunately, I lost the OpenMP support.  Adding the languages
>>>> step-by-step, I found out that "go" is responsible for the problem.
> 
> (OpenACC/OpenMP usage in Objective-C and Objective-C++ code might
> somewhat work, or require not too much effort to get implemented, for
> these front ends are, as far as I remember, mostly implemented on top of
> the C and C++ front ends, but that would be completely untested, to the
> best of my knowledge.  And certainly no attention has been paid so far
> for any specialities of these C/C++ "dialects".)
> 
>>> Why are you doing it at all?
>>> In the OpenMP/OpenACC offloading compiler, you only need the LTO "frontend",
>>> and libraries built for C, C++ and Fortran as those are the languages
>>> supported by OpenMP/OpenACC.
> 
> Specifically, these are the *only* languages supported per the current
> OpenACC/OpenMP standards.  That's not a hard limitation though: one could
> add support for other languages to the OpenACC/OpenMP standards.
> 
> There currently isn't code offloading support in GCC for any other
> languages; offloading currently is available only via OpenACC/OpenMP.
> Other languages maybe might support code offloading via different
> mechanisms than the source code pragmas used for OpenACC/OpenMP.  These
> different mechanisms could then be mapped to the existing offloading
> support in GCC, extending that as needed.
> 
> For example, one could add logic to GCC to analyze any language's code in
> its common intermediate representation in GCC, and automatically figure
> out which computations make sense to distribute to SMP CPUs (see
> "-ftree-parallelize-loops"), or to offload to a GPU etc.  This is,
> however, a totally non-trivial amount of work.  :-) (This relates to the
> poor support in GCC for the OpenACC kernels construct, compared to the
> much more mature support for the OpenACC parallel and OpenMP target
> constructs.)
> 
> We're available for contracting on all such things, if I may add that
> here.
> 
>>> You don't need anything else.  And, Go doesn't
>>> support NVPTX at all.  Ada probably doesn't either.
>>
>> You are right. I'm using C and OpenMP/OpenACC for CPUs and accelerators, but a
>> colleague of mine wants to use the other languages, so that I tried to build
>> them as well.
> 
> 
> Grüße
>   Thomas

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: gcc-8-20180225: "go" breaks building OpenMP
  2018-03-09 16:15   ` Siegmar Gross
@ 2018-03-09 16:59     ` Thomas Schwinge
  2018-03-09 21:04       ` Siegmar Gross
  2018-03-09 18:35     ` Jakub Jelinek
  1 sibling, 1 reply; 10+ messages in thread
From: Thomas Schwinge @ 2018-03-09 16:59 UTC (permalink / raw)
  To: Siegmar Gross; +Cc: gcc-dev

Hi!

On Fri, 9 Mar 2018 17:15:16 +0100, Siegmar Gross <siegmar.gross@informatik.hs-fulda.de> wrote:
> [...]
> configure: error: "libffi has not been ported to nvptx-unknown-none."
> [...]

Right, such things are not supported for a "--target=nvptx" compiler.

But, if your desire is to just enable additional languages, without
offloading support for them (which doesn't exist, as discussed in my
other email), then the solution is to just specify them in
"--enable-languages" for your "gcc-8.0.0_host_build" (host compiler) but
not for your "gcc-8.0.0_build" (nvptx offloading compiler), keeping the
latter at "--enable-languages=c,c++,fortran,lto".

Specifically:

> >> I used the following commands to build everything.
> >>
> >> setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:/usr/local/cuda/lib64
> >> setenv CUDA_INC_PATH /usr/local/cuda/include
> >> setenv CUDA_LIB_PATH /usr/local/cuda/lib64
> >> set path = ( ${path} /usr/local/cuda/bin )
> >>
> >> mkdir make_nvptx-tools
> >> cd make_nvptx-tools
> >> ../nvptx-tools/configure --prefix=/usr/local/gcc-8.0.0 \
> >>    |& tee log.configure
> >> make |& tee log.make
> >> make install |& tee log.make-install
> >> cd ..
> >>
> >> mkdir gcc-8.0.0_build
> >> cd gcc-8.0.0_build
> >> ../gcc-8.0.0/configure --prefix=/usr/local/gcc-8.0.0 \
> >>    --target=nvptx-none \
> >>    --enable-as-accelerator-for=x86_64-pc-linux-gnu \
> >>    --with-build-time-tools=/usr/local/gcc-8.0.0/nvptx-none/bin \
> >>    --disable-sjlj-exceptions \
> >>    --with-newlib \
> >>    --enable-newlib-io-long-long \
> >>    --enable-languages=c,c++,objc,obj-c++,fortran,go,lto \

Continue to use "--enable-languages=c,c++,fortran,lto" here.

> >>    |& tee log.configure
> >> make -j 6 |& tee log.make
> >> make -j 6 install |& tee log.make-install
> >>
> >> mkdir ../gcc-8.0.0_host_build
> >> cd ../gcc-8.0.0_host_build
> >> ../gcc-8.0.0/configure --prefix=/usr/local/gcc-8.0.0 \
> >>    --build=x86_64-pc-linux-gnu \
> >>    --host=x86_64-pc-linux-gnu \
> >>    --target=x86_64-pc-linux-gnu \
> >>    --enable-offload-targets=nvptx-none=/usr/local/gcc-8.0.0/bin \
> >>    --with-cuda-driver=/usr/local/cuda/ \
> >>    --enable-languages=c,c++,objc,obj-c++,fortran,go,lto \

That should work fine.

> >>    --enable-nls \
> >>    --enable-threads=posix \
> >>    --with-gmp-lib=/usr/local/lib64 \
> >>    --with-gmp-include=/usr/local/include \
> >>    --with-mpfr-lib=/usr/local/lib64 \
> >>    --with-mpfr-include=/usr/local/include \
> >>    --with-mpc-lib=/usr/local/lib64 \
> >>    --with-mpc-include=/usr/local/include \
> >>    --with-isl-lib=/usr/local/lib64 \
> >>    --with-isl-include=/usr/local/include \
> >>    |& tee log.configure
> >> make -j 6 |& tee log.make
> >> make -j 6 install |& tee log.make-install


Grüße
 Thomas

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: gcc-8-20180225: "go" breaks building OpenMP
  2018-03-09 16:15   ` Siegmar Gross
  2018-03-09 16:59     ` Thomas Schwinge
@ 2018-03-09 18:35     ` Jakub Jelinek
  1 sibling, 0 replies; 10+ messages in thread
From: Jakub Jelinek @ 2018-03-09 18:35 UTC (permalink / raw)
  To: Siegmar Gross; +Cc: gcc-dev

On Fri, Mar 09, 2018 at 05:15:16PM +0100, Siegmar Gross wrote:
> there are differences in the log files.

Toplevel configure.ac has:
# Disable libgo for some systems where it is known to not work.
# For testing, you can easily override this with --enable-libgo.

section, clearly
    nvptx*-*)
        noconfigdirs="$noconfigdirs target-libgo"
        ;;
belongs in there too.  libgo needs a lot of porting and it hasn't
be done either for nvptx, nor for newlib, and it is a question if it is
portable to nvptx-none at all.

	Jakub

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: gcc-8-20180225: "go" breaks building OpenMP
  2018-03-09 16:59     ` Thomas Schwinge
@ 2018-03-09 21:04       ` Siegmar Gross
  0 siblings, 0 replies; 10+ messages in thread
From: Siegmar Gross @ 2018-03-09 21:04 UTC (permalink / raw)
  To: gcc-dev

Hi Thomas,

thank you very much for your help. That's exactly what I wanted.
I tried again and was successful.


Kind regards

Siegmar


Am 09.03.2018 um 17:59 schrieb Thomas Schwinge:
> Hi!
> 
> On Fri, 9 Mar 2018 17:15:16 +0100, Siegmar Gross <siegmar.gross@informatik.hs-fulda.de> wrote:
>> [...]
>> configure: error: "libffi has not been ported to nvptx-unknown-none."
>> [...]
> 
> Right, such things are not supported for a "--target=nvptx" compiler.
> 
> But, if your desire is to just enable additional languages, without
> offloading support for them (which doesn't exist, as discussed in my
> other email), then the solution is to just specify them in
> "--enable-languages" for your "gcc-8.0.0_host_build" (host compiler) but
> not for your "gcc-8.0.0_build" (nvptx offloading compiler), keeping the
> latter at "--enable-languages=c,c++,fortran,lto".
> 
> Specifically:
> 
>>>> I used the following commands to build everything.
>>>>
>>>> setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:/usr/local/cuda/lib64
>>>> setenv CUDA_INC_PATH /usr/local/cuda/include
>>>> setenv CUDA_LIB_PATH /usr/local/cuda/lib64
>>>> set path = ( ${path} /usr/local/cuda/bin )
>>>>
>>>> mkdir make_nvptx-tools
>>>> cd make_nvptx-tools
>>>> ../nvptx-tools/configure --prefix=/usr/local/gcc-8.0.0 \
>>>>     |& tee log.configure
>>>> make |& tee log.make
>>>> make install |& tee log.make-install
>>>> cd ..
>>>>
>>>> mkdir gcc-8.0.0_build
>>>> cd gcc-8.0.0_build
>>>> ../gcc-8.0.0/configure --prefix=/usr/local/gcc-8.0.0 \
>>>>     --target=nvptx-none \
>>>>     --enable-as-accelerator-for=x86_64-pc-linux-gnu \
>>>>     --with-build-time-tools=/usr/local/gcc-8.0.0/nvptx-none/bin \
>>>>     --disable-sjlj-exceptions \
>>>>     --with-newlib \
>>>>     --enable-newlib-io-long-long \
>>>>     --enable-languages=c,c++,objc,obj-c++,fortran,go,lto \
> 
> Continue to use "--enable-languages=c,c++,fortran,lto" here.
> 
>>>>     |& tee log.configure
>>>> make -j 6 |& tee log.make
>>>> make -j 6 install |& tee log.make-install
>>>>
>>>> mkdir ../gcc-8.0.0_host_build
>>>> cd ../gcc-8.0.0_host_build
>>>> ../gcc-8.0.0/configure --prefix=/usr/local/gcc-8.0.0 \
>>>>     --build=x86_64-pc-linux-gnu \
>>>>     --host=x86_64-pc-linux-gnu \
>>>>     --target=x86_64-pc-linux-gnu \
>>>>     --enable-offload-targets=nvptx-none=/usr/local/gcc-8.0.0/bin \
>>>>     --with-cuda-driver=/usr/local/cuda/ \
>>>>     --enable-languages=c,c++,objc,obj-c++,fortran,go,lto \
> 
> That should work fine.
> 
>>>>     --enable-nls \
>>>>     --enable-threads=posix \
>>>>     --with-gmp-lib=/usr/local/lib64 \
>>>>     --with-gmp-include=/usr/local/include \
>>>>     --with-mpfr-lib=/usr/local/lib64 \
>>>>     --with-mpfr-include=/usr/local/include \
>>>>     --with-mpc-lib=/usr/local/lib64 \
>>>>     --with-mpc-include=/usr/local/include \
>>>>     --with-isl-lib=/usr/local/lib64 \
>>>>     --with-isl-include=/usr/local/include \
>>>>     |& tee log.configure
>>>> make -j 6 |& tee log.make
>>>> make -j 6 install |& tee log.make-install
> 
> 
> Grüße
>   Thomas

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2018-03-09 21:04 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-03-09  6:56 gcc-8-20180225: "go" breaks building OpenMP Siegmar Gross
2018-03-09  9:35 ` Jakub Jelinek
2018-03-09  8:32   ` Siegmar Gross
2018-03-09 16:15     ` Thomas Schwinge
2018-03-09 16:28       ` Siegmar Gross
2018-03-09 13:38 ` Ian Lance Taylor
2018-03-09 16:15   ` Siegmar Gross
2018-03-09 16:59     ` Thomas Schwinge
2018-03-09 21:04       ` Siegmar Gross
2018-03-09 18:35     ` Jakub Jelinek

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).