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

Reply via email to