This really isnt a problem with the atomics code. We have a macro to indicate 
whether 64-bit is really supported. Something in opal is using 64-bit atomics 
without checking if they are supported. With sync atomics we get a link error 
but with the others it is a compile error. I fixed a similar problem in vader 
but it looks like there are more places that need to be fixed.


________________________________________
From: devel on behalf of Gilles Gouaillardet
Sent: Monday, May 09, 2016 2:22:24 AM
To: Open MPI Developers
Subject: Re: [OMPI devel] Master broken for ILP32

Paul,


on which distro are you running ?

are you compiling on a 64 bit distro to generate a 32 bit library ?


it seems we are currently only testing a atomic on a long (32 bits on a 32 bits 
arch) and

then incorrectly assume it works also on 64 bits (!)


Cheers,


Gilles

On 5/9/2016 3:59 PM, Paul Hargrove wrote:
Perhaps this is already known.
Several builds I've tried recently from the ompi (not ompi-release) repo are 
failing on 32-bit platforms with
   ../../../opal/.libs/libopen-pal.so: undefined reference to 
`__sync_add_and_fetch_8'

This is impacting PRs that I am being asked to test (e.g. 1643).

Note that I did *not* configure with --enable-builtin-atomics, yet configure 
seems to show them being selected anyway:
*** Assembler
checking dependency style of gcc -std=gnu99... gcc3
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
checking the name lister (/usr/bin/nm -B) interface... BSD nm
checking for fgrep... /usr/bin/grep -F
checking for __sync builtin atomics... yes
checking for processor support of __sync builtin atomic compare-and-swap on 
128-bit values... no
checking for __sync builtin atomic compare-and-swap on 128-bit values with 
-mcx16 flag... no
checking if .proc/endp is needed... no
checking directive for setting text section... .text
checking directive for exporting symbols... .globl
checking for objdump... objdump
checking if .note.GNU-stack is needed... no
checking suffix for labels... :
checking prefix for global symbol labels...
checking prefix for lsym labels... .L
checking prefix for function in .type... @
checking if .size is needed... yes
checking if .align directive takes logarithmic value... no
checking if processor supports x86_64 16-byte compare-and-exchange... no
checking for assembly architecture... IA32
checking for builtin atomics... BUILTIN_SYNC
checking for atomic assembly filename... none

-Paul

--
Paul H. Hargrove                          <mailto:phhargr...@lbl.gov> 
phhargr...@lbl.gov<mailto:phhargr...@lbl.gov>
Computer Languages & Systems Software (CLaSS) Group
Computer Science Department               Tel: +1-510-495-2352
Lawrence Berkeley National Laboratory     Fax: +1-510-486-6900



_______________________________________________
devel mailing list
de...@open-mpi.org<mailto:de...@open-mpi.org>
Subscription: https://www.open-mpi.org/mailman/listinfo.cgi/devel
Link to this post: 
http://www.open-mpi.org/community/lists/devel/2016/05/18941.php

Reply via email to