We have chosen to use the __sync builtins by default on master. There was an rfc on it awhile ago. Is there a good reason to go back to the inline by default or is this just surprising?
________________________________________ From: devel on behalf of Paul Hargrove Sent: Monday, May 09, 2016 11:12:16 AM To: Open MPI Developers Subject: Re: [OMPI devel] Master broken for ILP32 Regarding "distro": This was happening, for instance, on OpenBSD and NetBSD (32-bit kernels on 64-bit h/w) when testing your PR1643. However, it sounds like Nathan knows how/where to fix this. HOWEVER, that is not the only issue here. Why is master is picking the BUILTIN (__sync) atomics (as shown in the configure output quoted below), while v2.x (same system and same config args) uses a .s file: *** 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 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 if gcc -std=gnu99 supports GCC inline assembly... yes checking if gcc -std=gnu99 supports DEC inline assembly... no checking if gcc -std=gnu99 supports XLC inline assembly... no checking for assembly format... default-.text-.globl-:--.L-@-1-0-1-1-0 checking for assembly architecture... IA32 checking for builtin atomics... BUILTIN_NO checking for perl... perl checking for pre-built assembly file... yes (atomic-ia32-linux-nongas.s) checking for atomic assembly filename... atomic-ia32-linux-nongas.s -Paul On Mon, May 9, 2016 at 1:22 AM, Gilles Gouaillardet <gil...@rist.or.jp<mailto:gil...@rist.or.jp>> wrote: 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<tel:%2B1-510-495-2352> Lawrence Berkeley National Laboratory Fax: +1-510-486-6900<tel:%2B1-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 _______________________________________________ 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/18942.php -- Paul H. Hargrove 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