[Openmp-dev] ptxas fatal : Cannot take address of function '__pthread_key_create'

Itaru Kitayama via Openmp-dev openmp-dev at lists.llvm.org
Wed Sep 5 04:05:55 PDT 2018


It finishes silently if `-S -emit-llvm' is also supplied to the driver.

On Wed, Sep 5, 2018 at 7:31 PM Jonas Hahnfeld <hahnjo at hahnjo.de> wrote:

> I meant when it tries to compile arraydatum.cc, sorry:
> > [  3%] Building CXX object sli/CMakeFiles/sli_lib.dir/arraydatum.cc.o
> > cd /gpfs/work/pcp0/pcp0151/build/nest-clang-upstream/sli &&
> > /gpfs/work/pcp0/pcp0151/opt/llvm+clang-upstream/bin/clang++
> > -Dsli_lib_EXPORTS -I/bgsys/drivers/ppcfloor/comm/gcc/include
> > -I/gpfs/software/opt/gsl/2.4/include
> > -I/gpfs/homeb/pcp0/pcp0151/projects/nest-simulator/libnestutil
> > -I/gpfs/work/pcp0/pcp0151/build/nest-clang-upstream/libnestutil
> > -std=c++11 -O2 -Wall -fopenmp -fopenmp-targets=nvptx64-nvidia-cuda
> > --cuda-path=/gpfs/software/opt/cuda/9.2.88  -fPIC   -o
> > CMakeFiles/sli_lib.dir/arraydatum.cc.o -c
> > /gpfs/homeb/pcp0/pcp0151/projects/nest-simulator/sli/arraydatum.cc
>
> You can copy this command and add some flags to see where this function
> is called.
>
> On 2018-09-05 12:12, Itaru Kitayama wrote:
> > CMake compiler check fails:
> >
> > Determining if files mach-o/dyld.h exist failed with the following
> > output:
> > Change Dir:
> > /gpfs/work/pcp0/pcp0151/build/nest-clang-upstream/CMakeFiles/CMakeTmp
> >
> > Run Build Command:"/usr/bin/gmake" "cmTC_1486a/fast"
> > /usr/bin/gmake -f CMakeFiles/cmTC_1486a.dir/build.make
> > CMakeFiles/cmTC_1486a.dir/build
> > gmake[1]: Entering directory
> > `/gpfs/work/pcp0/pcp0151/build/nest-clang-upstream/CMakeFiles/CMak
> > eTmp'
> > Building C object CMakeFiles/cmTC_1486a.dir/CheckIncludeFiles.c.o
> > /gpfs/work/pcp0/pcp0151/opt/llvm+clang-upstream/bin/clang        -o
> > CMakeFiles/cmTC_1486a.dir/C
> > heckIncludeFiles.c.o -c
> > /gpfs/work/pcp0/pcp0151/build/nest-clang-upstream/CMakeFiles/CMakeTmp/C
> > heckIncludeFiles.c
> >
> /gpfs/work/pcp0/pcp0151/build/nest-clang-upstream/CMakeFiles/CMakeTmp/CheckIncludeFiles.c:2:10:
> >  fatal error: 'mach-o/dyld.h' file not found
> > #include <mach-o/dyld.h>
> >          ^~~~~~~~~~~~~~~
> > 1 error generated.
> > gmake[1]: *** [CMakeFiles/cmTC_1486a.dir/CheckIncludeFiles.c.o] Error
> > 1
> > gmake[1]: Leaving directory
> > `/gpfs/work/pcp0/pcp0151/build/nest-clang-upstream/CMakeFiles/CMake
> > Tmp'
> > gmake: *** [cmTC_1486a/fast] Error 2
> >
> > Source:
> > /* */
> > #include <mach-o/dyld.h>
> >
> > int main(void){return 0;}
> >
> > Determining if files mach/mach.h exist failed with the following
> > output:
> > Change Dir:
> > /gpfs/work/pcp0/pcp0151/build/nest-clang-upstream/CMakeFiles/CMakeTmp
> >
> > Run Build Command:"/usr/bin/gmake" "cmTC_a088b/fast"
> > /usr/bin/gmake -f CMakeFiles/cmTC_a088b.dir/build.make
> > CMakeFiles/cmTC_a088b.dir/build
> > gmake[1]: Entering directory
> > `/gpfs/work/pcp0/pcp0151/build/nest-clang-upstream/CMakeFiles/CMak
> > eTmp'
> > Building C object CMakeFiles/cmTC_a088b.dir/CheckIncludeFiles.c.o
> > /gpfs/work/pcp0/pcp0151/opt/llvm+clang-upstream/bin/clang        -o
> > CMakeFiles/cmTC_a088b.dir/C
> > heckIncludeFiles.c.o -c
> > /gpfs/work/pcp0/pcp0151/build/nest-clang-upstream/CMakeFiles/CMakeTmp/C
> > heckIncludeFiles.c
> >
> /gpfs/work/pcp0/pcp0151/build/nest-clang-upstream/CMakeFiles/CMakeTmp/CheckIncludeFiles.c:2:10:
> >  fatal error: 'mach/mach.h' file not found
> > #include <mach/mach.h>
> >          ^~~~~~~~~~~~~
> > 1 error generated.
> > gmake[1]: *** [CMakeFiles/cmTC_a088b.dir/CheckIncludeFiles.c.o] Error
> > 1
> > gmake[1]: Leaving directory
> > `/gpfs/work/pcp0/pcp0151/build/nest-clang-upstream/CMakeFiles/CMakeTmp'
> >
> > On Wed, Sep 5, 2018 at 7:01 PM Jonas Hahnfeld <hahnjo at hahnjo.de>
> > wrote:
> >
> >> I can't reproduce the problem on x86, at least on this file on
> >> branch
> >> master and for-upstream. Maybe it's specific to Power?
> >>
> >> Can you have a look where this function is called? Extending the
> >> compile
> >> command for that specific file by "-S -emit-llvm" and posting the
> >> result
> >> would be helpful.
> >>
> >> Jonas
> >>
> >> On 2018-09-05 11:20, Itaru Kitayama wrote:
> >>> Jonas,
> >>> No problem. It is at:
> >>>
> >>> https://github.com/ikitayama/nest-simulator
> >>>
> >>> ... and especially this file
> >>>
> >>>
> >>
> >
> https://github.com/ikitayama/nest-simulator/blob/master/sli/arraydatum.cc
> >>>
> >>> is the first one on which llvm/clang-8.0.0 stops in a build
> >> process.
> >>>
> >>> On Wed, Sep 5, 2018 at 3:56 PM Jonas Hahnfeld <hahnjo at hahnjo.de>
> >>> wrote:
> >>>
> >>>> Mabye you are using some thread-local storage? Can you share the
> >>>> code,
> >>>> everything else will be guesses at best...
> >>>>
> >>>> Jonas
> >>>>
> >>>> On 2018-09-05 06:15, Itaru Kitayama via Openmp-dev wrote:
> >>>>> Hi Alexey,
> >>>>> If the function is not explicitly used in the code-base in
> >>>> question,
> >>>>> how do I
> >>>>> find which function/module requires it?
> >>>>>
> >>>>> On Tue, Sep 4, 2018 at 11:15 PM Alexey Bataev
> >>>> <a.bataev at outlook.com>
> >>>>> wrote:
> >>>>>
> >>>>>> It means that this function is used somewhere in the code that
> >> is
> >>>>>> offloaded to the GPU. I don't think this is correct, this
> >>>> function
> >>>>>> is pthreads-specific and I don't think that NVidia GPUs support
> >>>>>> pthreads.
> >>>>>>
> >>>>>> -------------
> >>>>>> Best regards,
> >>>>>> Alexey Bataev
> >>>>>>
> >>>>>> 02.09.2018 3:51, Itaru Kitayama via Openmp-dev пишет:
> >>>>>>
> >>>>>>>
> >>>>>>
> >>>>>>> Hi,
> >>>>>>> I am trying to build an application that can do OpenMP
> >>>> offloading
> >>>>>>> on a POWER8 + P100 system using the latest LLVM/Clang
> >> toolchain
> >>>>>>> (openmp
> >>>>>>> is too the latest).
> >>>>>>>
> >>>>>>> The build error is:
> >>>>>>>
> >>>>>>> [  3%] Building CXX object
> >>>>>>> sli/CMakeFiles/sli_lib.dir/arraydatum.cc.o
> >>>>>>> cd /gpfs/work/pcp0/pcp0151/build/nest-clang-upstream/sli &&
> >>>>>>> /gpfs/work/pcp0/pcp0151/opt/llvm+clang-upstream/bin/clang++
> >>>>>>> -Dsli_lib_EXPORTS -I/bgsys/drivers/ppcfloor/comm/gcc/include
> >>>>>>> -I/gpfs/software/opt/gsl/2.4/include
> >>>>>>> -I/gpfs/homeb/pcp0/pcp0151/projects/nest-simulator/libnestutil
> >>>>>>>
> >> -I/gpfs/work/pcp0/pcp0151/build/nest-clang-upstream/libnestutil
> >>>>>>> -std=c++11 -O2 -Wall -fopenmp
> >>>> -fopenmp-targets=nvptx64-nvidia-cuda
> >>>>>>> --cuda-path=/gpfs/software/opt/cuda/9.2.88  -fPIC   -o
> >>>>>>> CMakeFiles/sli_lib.dir/arraydatum.cc.o -c
> >>>>>>>
> >>>>
> >> /gpfs/homeb/pcp0/pcp0151/projects/nest-simulator/sli/arraydatum.cc
> >>>>>>>
> >>>>>>> ptxas fatal   : Cannot take address of function
> >>>>>>> '__pthread_key_create'
> >>>>>>> clang-8: error: ptxas command failed with exit code 255 (use
> >> -v
> >>>> to
> >>>>>>> see invocation)
> >>>>>>> make[2]: *** [sli/CMakeFiles/sli_lib.dir/arraydatum.cc.o]
> >> Error
> >>>>>>> 255
> >>>>>>> make[2]: Leaving directory
> >>>>>>> `/gpfs/work/pcp0/pcp0151/build/nest-clang-upstream'
> >>>>>>> make[1]: *** [sli/CMakeFiles/sli_lib.dir/all] Error 2
> >>>>>>> make[1]: Leaving directory
> >>>>>>> `/gpfs/work/pcp0/pcp0151/build/nest-clang-upstream'
> >>>>>>> make: *** [all] Error 2
> >>>>>>>
> >>>>>>> The CUDA toolkit is 9.2.88, is it possible the error is fixed
> >> in
> >>>>>>> the
> >>>>>>> latest toolkit?
> >>>>>>>
> >>>>>>> Thanks,
> >>>>>>> Itaru.
> >>>>>>
> >>>>>>> _______________________________________________
> >>>>>>> Openmp-dev mailing list
> >>>>>>> Openmp-dev at lists.llvm.org
> >>>>>>> http://lists.llvm.org/cgi-bin/mailman/listinfo/openmp-dev
> >>>>> _______________________________________________
> >>>>> Openmp-dev mailing list
> >>>>> Openmp-dev at lists.llvm.org
> >>>>> http://lists.llvm.org/cgi-bin/mailman/listinfo/openmp-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/openmp-dev/attachments/20180905/b72a9642/attachment.html>


More information about the Openmp-dev mailing list