[Llvm-bgq-discuss] multiple definitions of various builtin functions (isync mbar ppc_wait, etc)

Jeff Hammond jhammond at alcf.anl.gov
Tue Oct 8 17:35:17 CDT 2013


The real *right* solution is for IBM to make their system headers C99-compliant.  If there code is not strict ISO C, it's a bug.  Given how strict the IBM compilers are, I can only assume that they are not used to build CNK :-)

Jeff

----- Original Message -----
> From: "Hal Finkel" <hfinkel at anl.gov>
> To: "Jeff Hammond" <jhammond at alcf.anl.gov>
> Cc: llvm-bgq-discuss at lists.alcf.anl.gov, "Rob Latham" <robl at mcs.anl.gov>
> Sent: Tuesday, October 8, 2013 5:28:36 PM
> Subject: Re: [Llvm-bgq-discuss] multiple definitions of various builtin functions (isync mbar ppc_wait, etc)
> 
> Jeff,
> 
> Rob said that using -fgnu89-inline fixes the problem, and given that,
> using -fgnu89-inline is the *right* solution. It means that the code
> is depending on the GNU, not the C99, semantics for inline (which is
> not unusual).
> 
>  -Hal
> 
> ----- Original Message -----
> > i remember this garbage.  i can't remember how i fixed it but i
> > remember doing some stupid stuff like including that header that
> > defines those functions in a single source file so only one object
> > would have the symbols.
> > 
> > does LDFLAGS+="-Wl,--allow-multiple-definition" work as another
> > solution?
> > 
> > jeff
> > 
> > ----- Original Message -----
> > > From: "Rob Latham" <robl at mcs.anl.gov>
> > > To: llvm-bgq-discuss at lists.alcf.anl.gov
> > > Sent: Tuesday, October 8, 2013 2:55:48 PM
> > > Subject: [Llvm-bgq-discuss] multiple definitions of various
> > > builtin
> > > functions (isync mbar ppc_wait, etc)
> > > 
> > > I'm trying to build mpich with clang .  One does this on Blue
> > > Gene
> > > like this:
> > > 
> > > http://wiki.mpich.org/mpich/index.php/BGQ
> > > 
> > > /home/robl/src/mpich/configure
> > > CC=/home/projects/llvm/wbin/powerpc64-bgq-linux-clang \
> > > 	--host=powerpc64-bgq-linux --with-device=pamid \
> > > 	--with-file-system=bg+bglockless --enable-g=all \
> > > 	--prefix=/home/robl/soft/mpich-bgclang --disable-fortran
> > > 	--disable-cxx
> > > 
> > > Plenty of fun new warnings to sort through, but that's what I
> > > expected
> > > to find.
> > > 
> > > What I did not expect:   150,000 lines of stuff like this:
> > > 
> > > 
> > > src/mpi/attr/.libs/dup_fn.o: In function `isync':
> > > /home/robl/src/mpich/src/mpi/attr/dup_fn.c:(.opd+0x0): multiple
> > > definition of `isync'
> > > src/mpi/attr/.libs/attrutil.o:/home/robl/src/mpich/src/mpi/attr/attrutil.c:(.opd+0x0):
> > > first defined here
> > > src/mpi/attr/.libs/dup_fn.o: In function `ppc_msync':
> > > /home/robl/src/mpich/src/mpi/attr/dup_fn.c:(.opd+0x18): multiple
> > > definition of `ppc_msync'
> > > src/mpi/attr/.libs/attrutil.o:/home/robl/src/mpich/src/mpi/attr/attrutil.c:(.opd+0x18):
> > > first defined here
> > > src/mpi/attr/.libs/dup_fn.o: In function `mbar':
> > > /home/robl/src/mpich/src/mpi/attr/dup_fn.c:(.opd+0x30): multiple
> > > definition of `mbar'
> > > src/mpi/attr/.libs/attrutil.o:/home/robl/src/mpich/src/mpi/attr/attrutil.c:(.opd+0x30):
> > > first defined here
> > > src/mpi/attr/.libs/dup_fn.o: In function `ppc_wait':
> > > /home/robl/src/mpich/src/mpi/attr/dup_fn.c:(.opd+0x48): multiple
> > > definition of `ppc_wait'
> > > src/mpi/attr/.libs/attrutil.o:/home/robl/src/mpich/src/mpi/attr/attrutil.c:(.opd+0x48):
> > > first defined here
> > > 
> > > Any ideas?
> > > 
> > > ==rob
> > > 
> > > --
> > > Rob Latham
> > > Mathematics and Computer Science Division
> > > Argonne National Lab, IL USA
> > > _______________________________________________
> > > llvm-bgq-discuss mailing list
> > > llvm-bgq-discuss at lists.alcf.anl.gov
> > > https://lists.alcf.anl.gov/mailman/listinfo/llvm-bgq-discuss
> > > 
> > 
> > --
> > Jeff Hammond
> > Argonne Leadership Computing Facility
> > University of Chicago Computation Institute
> > jhammond at alcf.anl.gov / (630) 252-5381
> > http://www.linkedin.com/in/jeffhammond
> > https://wiki.alcf.anl.gov/parts/index.php/User:Jhammond
> > ALCF docs: http://www.alcf.anl.gov/user-guides
> > _______________________________________________
> > llvm-bgq-discuss mailing list
> > llvm-bgq-discuss at lists.alcf.anl.gov
> > https://lists.alcf.anl.gov/mailman/listinfo/llvm-bgq-discuss
> > 
> 
> --
> Hal Finkel
> Assistant Computational Scientist
> Leadership Computing Facility
> Argonne National Laboratory
> 

-- 
Jeff Hammond
Argonne Leadership Computing Facility
University of Chicago Computation Institute
jhammond at alcf.anl.gov / (630) 252-5381
http://www.linkedin.com/in/jeffhammond
https://wiki.alcf.anl.gov/parts/index.php/User:Jhammond
ALCF docs: http://www.alcf.anl.gov/user-guides



More information about the llvm-bgq-discuss mailing list