Tobias and Jeff, here is attached a simple reproducer.
i reported it to apple with id 23195613 /* you need to replace #define EXTERN with #define EXTERN extern so the compilation successes with an other compiler (otherwise, compilation fails but compiler does not crash) */ Cheers, Gilles On Tue, Oct 20, 2015 at 11:14 PM, Jeff Squyres (jsquyres) <jsquy...@cisco.com> wrote: > Tobias -- > > I'm able to replicate the problem with 1.8.4 and 1.8.8 and 1.10.0 on OS X > 10.10.5 (Yosemite) and Xcode 7.0.1. I'd suggest filing a bug at > bugreporter.apple.com with the information that clang provided in their > output. > > If there's a bug in the compiler, there's not much that we here at OMPI can > do without digging in deep to understand the actual bug (not just one of its > symptoms/manifestations) and then putting in a workaround. We've been a bit > resistant to putting in compiler workarounds in the past, because that would > be a nightmare (since Open MPI supports so many compilers). Instead, we've > encouraged compiler vendors to fix their compilers. > > > >> On Oct 20, 2015, at 7:07 AM, Tobias Hilbrich <tobias.hilbr...@tu-dresden.de> >> wrote: >> >> Hi Gilles, >> >> as for that, recompiling OpenMPI works, but causes no change here. >> >> -Tobias >> >> -- >> Dr.-Ing. Tobias Hilbrich >> Research Assistant >> >> Technische Universitaet Dresden, Germany >> Tel.: +49 (351) 463-38485 >> E-Mail: tobias.hilbr...@tu-dresden.de >> >>> On 20 Oct 2015, at 11:42, Gilles Gouaillardet >>> <gilles.gouaillar...@gmail.com> wrote: >>> >>> Tobias, >>> >>> Btw, did you recompile ompi with this xcode ? >>> Iirc, we do similar comparisons in ompi itself >>> >>> Cheers, >>> >>> Gilles >>> >>> Tobias Hilbrich <tobias.hilbr...@tu-dresden.de> wrote: >>>> Hi all, >>>> >>>> a wonderful puzzle for the OSX folks in your team (Reproducer attached): >>>> >>>> Attached source file builds with Xcode 7.0.0, but fails since the release >>>> of Xcode 7.0.1. I post it here since it results from an "if (MPI_COMM_NULL >>>> == MPI_COMM_SELF)". I am actually curious whether this is somehow off by >>>> itself, or whether it has something to do with how you define these >>>> constants. Overall, the situation is that this worked with previous clang >>>> compilers (and that it again works for more recent versions from >>>> mac-ports), so likely not your fault at all. >>>> >>>> The issue I get is: >>>> $ mpicc osx-10.10.5-xcode-7.0.1-openmpi-problem.c >>>> clang: error: unable to execute command: Segmentation fault: 11 >>>> clang: error: clang frontend command failed due to signal (use -v to see >>>> invocation) >>>> Apple LLVM version 7.0.0 (clang-700.0.72) >>>> Target: x86_64-apple-darwin14.5.0 >>>> Thread model: posix >>>> clang: note: diagnostic msg: PLEASE submit a bug report to >>>> http://developer.apple.com/bugreporter/ and include the crash backtrace, >>>> preprocessed source, and associated run script. >>>> clang: note: diagnostic msg: >>>> ******************** >>>> PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT: >>>> ... >>>> ******************** >>>> >>>> As I said above the culprit is "if (MPI_COMM_NULL == MPI_COMM_SELF)". >>>> Also, this doesn't works either: >>>> - "if (MPI_COMM_SELF == MPI_COMM_NULL)" >>>> But then, these work: >>>> - "if (MPI_COMM_SELF == MPI_COMM_WORLD)" >>>> - "if (MPI_COMM_WORLD == MPI_COMM_SELF)" >>>> >>>> So it appears it has something to do with MPI_COMM_NULL specifically. >>>> >>>> Maybe you already know of the issue. Maybe you can provide something to >>>> alleviate this issue in your releases, since it may take a while until we >>>> get a newer Xcode version on most OSX'es. >>>> >>>> My "ompi_info" is at the bottom of the mail. >>>> >>>> With that thanks for your looking into this, and many thanks for your >>>> wonderful MPI implementation, >>>> -Tobias >>>> >>>> $ ompi_info >>>> Package: Open MPI saibot@Tobiass-MacBook-Pro.local >>>> Distribution >>>> Open MPI: 1.8.4 >>>> Open MPI repo revision: v1.8.3-330-g0344f04 >>>> Open MPI release date: Dec 19, 2014 >>>> Open RTE: 1.8.4 >>>> Open RTE repo revision: v1.8.3-330-g0344f04 >>>> Open RTE release date: Dec 19, 2014 >>>> OPAL: 1.8.4 >>>> OPAL repo revision: v1.8.3-330-g0344f04 >>>> OPAL release date: Dec 19, 2014 >>>> MPI API: 3.0 >>>> Ident string: 1.8.4 >>>> Prefix: /Users/saibot/local/openmpi-1.8.4 >>>> Configured architecture: x86_64-apple-darwin14.0.0 >>>> Configure host: Tobiass-MacBook-Pro.local >>>> Configured by: saibot >>>> Configured on: Sun Jan 4 09:27:07 CET 2015 >>>> Configure host: Tobiass-MacBook-Pro.local >>>> Built by: saibot >>>> Built on: Sun Jan 4 09:33:26 CET 2015 >>>> Built host: Tobiass-MacBook-Pro.local >>>> C bindings: yes >>>> C++ bindings: yes >>>> Fort mpif.h: no >>>> Fort use mpi: no >>>> Fort use mpi size: deprecated-ompi-info-value >>>> Fort use mpi_f08: no >>>> Fort mpi_f08 compliance: The mpi_f08 module was not built >>>> Fort mpi_f08 subarrays: no >>>> Java bindings: no >>>> Wrapper compiler rpath: unnecessary >>>> C compiler: gcc >>>> C compiler absolute: /usr/bin/gcc >>>> C compiler family name: GNU >>>> C compiler version: 4.2.1 >>>> C++ compiler: g++ >>>> C++ compiler absolute: /usr/bin/g++ >>>> Fort compiler: none >>>> Fort compiler abs: none >>>> Fort ignore TKR: no >>>> Fort 08 assumed shape: no >>>> Fort optional args: no >>>> Fort INTERFACE: no >>>> Fort ISO_FORTRAN_ENV: no >>>> Fort STORAGE_SIZE: no >>>> Fort BIND(C) (all): no >>>> Fort ISO_C_BINDING: no >>>> Fort SUBROUTINE BIND(C): no >>>> Fort TYPE,BIND(C): no >>>> Fort T,BIND(C,name="a"): no >>>> Fort PRIVATE: no >>>> Fort PROTECTED: no >>>> Fort ABSTRACT: no >>>> Fort ASYNCHRONOUS: no >>>> Fort PROCEDURE: no >>>> Fort C_FUNLOC: no >>>> Fort f08 using wrappers: no >>>> Fort MPI_SIZEOF: no >>>> C profiling: yes >>>> C++ profiling: yes >>>> Fort mpif.h profiling: no >>>> Fort use mpi profiling: no >>>> Fort use mpi_f08 prof: no >>>> C++ exceptions: no >>>> Thread support: posix (MPI_THREAD_MULTIPLE: no, OPAL support: yes, >>>> OMPI progress: no, ORTE progress: yes, Event lib: >>>> yes) >>>> Sparse Groups: no >>>> Internal debug support: no >>>> MPI interface warnings: yes >>>> MPI parameter check: runtime >>>> Memory profiling support: no >>>> Memory debugging support: no >>>> libltdl support: yes >>>> Heterogeneous support: no >>>> mpirun default --prefix: no >>>> MPI I/O support: yes >>>> MPI_WTIME support: gettimeofday >>>> Symbol vis. support: yes >>>> Host topology support: yes >>>> MPI extensions: >>>> FT Checkpoint support: no (checkpoint thread: no) >>>> C/R Enabled Debugging: no >>>> VampirTrace support: yes >>>> MPI_MAX_PROCESSOR_NAME: 256 >>>> MPI_MAX_ERROR_STRING: 256 >>>> MPI_MAX_OBJECT_NAME: 64 >>>> MPI_MAX_INFO_KEY: 36 >>>> MPI_MAX_INFO_VAL: 256 >>>> MPI_MAX_PORT_NAME: 1024 >>>> MPI_MAX_DATAREP_STRING: 128 >>>> MCA backtrace: execinfo (MCA v2.0, API v2.0, Component v1.8.4) >>>> MCA compress: bzip (MCA v2.0, API v2.0, Component v1.8.4) >>>> MCA compress: gzip (MCA v2.0, API v2.0, Component v1.8.4) >>>> MCA crs: none (MCA v2.0, API v2.0, Component v1.8.4) >>>> MCA db: hash (MCA v2.0, API v1.0, Component v1.8.4) >>>> MCA db: print (MCA v2.0, API v1.0, Component v1.8.4) >>>> MCA event: libevent2021 (MCA v2.0, API v2.0, Component v1.8.4) >>>> MCA hwloc: hwloc191 (MCA v2.0, API v2.0, Component v1.8.4) >>>> MCA if: bsdx_ipv6 (MCA v2.0, API v2.0, Component v1.8.4) >>>> MCA if: posix_ipv4 (MCA v2.0, API v2.0, Component v1.8.4) >>>> MCA installdirs: env (MCA v2.0, API v2.0, Component v1.8.4) >>>> MCA installdirs: config (MCA v2.0, API v2.0, Component v1.8.4) >>>> MCA pstat: test (MCA v2.0, API v2.0, Component v1.8.4) >>>> MCA sec: basic (MCA v2.0, API v1.0, Component v1.8.4) >>>> MCA shmem: mmap (MCA v2.0, API v2.0, Component v1.8.4) >>>> MCA shmem: posix (MCA v2.0, API v2.0, Component v1.8.4) >>>> MCA shmem: sysv (MCA v2.0, API v2.0, Component v1.8.4) >>>> MCA timer: darwin (MCA v2.0, API v2.0, Component v1.8.4) >>>> MCA dfs: app (MCA v2.0, API v1.0, Component v1.8.4) >>>> MCA dfs: orted (MCA v2.0, API v1.0, Component v1.8.4) >>>> MCA dfs: test (MCA v2.0, API v1.0, Component v1.8.4) >>>> MCA errmgr: default_app (MCA v2.0, API v3.0, Component v1.8.4) >>>> MCA errmgr: default_hnp (MCA v2.0, API v3.0, Component v1.8.4) >>>> MCA errmgr: default_orted (MCA v2.0, API v3.0, Component >>>> v1.8.4) >>>> MCA errmgr: default_tool (MCA v2.0, API v3.0, Component v1.8.4) >>>> MCA ess: env (MCA v2.0, API v3.0, Component v1.8.4) >>>> MCA ess: hnp (MCA v2.0, API v3.0, Component v1.8.4) >>>> MCA ess: singleton (MCA v2.0, API v3.0, Component v1.8.4) >>>> MCA ess: slurm (MCA v2.0, API v3.0, Component v1.8.4) >>>> MCA ess: tool (MCA v2.0, API v3.0, Component v1.8.4) >>>> MCA filem: raw (MCA v2.0, API v2.0, Component v1.8.4) >>>> MCA grpcomm: bad (MCA v2.0, API v2.0, Component v1.8.4) >>>> MCA iof: hnp (MCA v2.0, API v2.0, Component v1.8.4) >>>> MCA iof: mr_hnp (MCA v2.0, API v2.0, Component v1.8.4) >>>> MCA iof: mr_orted (MCA v2.0, API v2.0, Component v1.8.4) >>>> MCA iof: orted (MCA v2.0, API v2.0, Component v1.8.4) >>>> MCA iof: tool (MCA v2.0, API v2.0, Component v1.8.4) >>>> MCA odls: default (MCA v2.0, API v2.0, Component v1.8.4) >>>> MCA oob: tcp (MCA v2.0, API v2.0, Component v1.8.4) >>>> MCA plm: isolated (MCA v2.0, API v2.0, Component v1.8.4) >>>> MCA plm: rsh (MCA v2.0, API v2.0, Component v1.8.4) >>>> MCA plm: slurm (MCA v2.0, API v2.0, Component v1.8.4) >>>> MCA ras: simulator (MCA v2.0, API v2.0, Component v1.8.4) >>>> MCA ras: slurm (MCA v2.0, API v2.0, Component v1.8.4) >>>> MCA rmaps: lama (MCA v2.0, API v2.0, Component v1.8.4) >>>> MCA rmaps: mindist (MCA v2.0, API v2.0, Component v1.8.4) >>>> MCA rmaps: ppr (MCA v2.0, API v2.0, Component v1.8.4) >>>> MCA rmaps: rank_file (MCA v2.0, API v2.0, Component v1.8.4) >>>> MCA rmaps: resilient (MCA v2.0, API v2.0, Component v1.8.4) >>>> MCA rmaps: round_robin (MCA v2.0, API v2.0, Component v1.8.4) >>>> MCA rmaps: seq (MCA v2.0, API v2.0, Component v1.8.4) >>>> MCA rmaps: staged (MCA v2.0, API v2.0, Component v1.8.4) >>>> MCA rml: oob (MCA v2.0, API v2.0, Component v1.8.4) >>>> MCA routed: binomial (MCA v2.0, API v2.0, Component v1.8.4) >>>> MCA routed: debruijn (MCA v2.0, API v2.0, Component v1.8.4) >>>> MCA routed: direct (MCA v2.0, API v2.0, Component v1.8.4) >>>> MCA routed: radix (MCA v2.0, API v2.0, Component v1.8.4) >>>> MCA state: app (MCA v2.0, API v1.0, Component v1.8.4) >>>> MCA state: hnp (MCA v2.0, API v1.0, Component v1.8.4) >>>> MCA state: novm (MCA v2.0, API v1.0, Component v1.8.4) >>>> MCA state: orted (MCA v2.0, API v1.0, Component v1.8.4) >>>> MCA state: staged_hnp (MCA v2.0, API v1.0, Component v1.8.4) >>>> MCA state: staged_orted (MCA v2.0, API v1.0, Component v1.8.4) >>>> MCA state: tool (MCA v2.0, API v1.0, Component v1.8.4) >>>> MCA allocator: basic (MCA v2.0, API v2.0, Component v1.8.4) >>>> MCA allocator: bucket (MCA v2.0, API v2.0, Component v1.8.4) >>>> MCA bcol: basesmuma (MCA v2.0, API v2.0, Component v1.8.4) >>>> MCA bcol: ptpcoll (MCA v2.0, API v2.0, Component v1.8.4) >>>> MCA bml: r2 (MCA v2.0, API v2.0, Component v1.8.4) >>>> MCA btl: self (MCA v2.0, API v2.0, Component v1.8.4) >>>> MCA btl: sm (MCA v2.0, API v2.0, Component v1.8.4) >>>> MCA btl: tcp (MCA v2.0, API v2.0, Component v1.8.4) >>>> MCA btl: vader (MCA v2.0, API v2.0, Component v1.8.4) >>>> MCA coll: basic (MCA v2.0, API v2.0, Component v1.8.4) >>>> MCA coll: hierarch (MCA v2.0, API v2.0, Component v1.8.4) >>>> MCA coll: inter (MCA v2.0, API v2.0, Component v1.8.4) >>>> MCA coll: libnbc (MCA v2.0, API v2.0, Component v1.8.4) >>>> MCA coll: ml (MCA v2.0, API v2.0, Component v1.8.4) >>>> MCA coll: self (MCA v2.0, API v2.0, Component v1.8.4) >>>> MCA coll: sm (MCA v2.0, API v2.0, Component v1.8.4) >>>> MCA coll: tuned (MCA v2.0, API v2.0, Component v1.8.4) >>>> MCA dpm: orte (MCA v2.0, API v2.0, Component v1.8.4) >>>> MCA fbtl: posix (MCA v2.0, API v2.0, Component v1.8.4) >>>> MCA fcoll: dynamic (MCA v2.0, API v2.0, Component v1.8.4) >>>> MCA fcoll: individual (MCA v2.0, API v2.0, Component v1.8.4) >>>> MCA fcoll: static (MCA v2.0, API v2.0, Component v1.8.4) >>>> MCA fcoll: two_phase (MCA v2.0, API v2.0, Component v1.8.4) >>>> MCA fcoll: ylib (MCA v2.0, API v2.0, Component v1.8.4) >>>> MCA fs: ufs (MCA v2.0, API v2.0, Component v1.8.4) >>>> MCA io: ompio (MCA v2.0, API v2.0, Component v1.8.4) >>>> MCA io: romio (MCA v2.0, API v2.0, Component v1.8.4) >>>> MCA mpool: grdma (MCA v2.0, API v2.0, Component v1.8.4) >>>> MCA mpool: sm (MCA v2.0, API v2.0, Component v1.8.4) >>>> MCA osc: rdma (MCA v2.0, API v3.0, Component v1.8.4) >>>> MCA osc: sm (MCA v2.0, API v3.0, Component v1.8.4) >>>> MCA pml: v (MCA v2.0, API v2.0, Component v1.8.4) >>>> MCA pml: bfo (MCA v2.0, API v2.0, Component v1.8.4) >>>> MCA pml: cm (MCA v2.0, API v2.0, Component v1.8.4) >>>> MCA pml: ob1 (MCA v2.0, API v2.0, Component v1.8.4) >>>> MCA pubsub: orte (MCA v2.0, API v2.0, Component v1.8.4) >>>> MCA rcache: vma (MCA v2.0, API v2.0, Component v1.8.4) >>>> MCA rte: orte (MCA v2.0, API v2.0, Component v1.8.4) >>>> MCA sbgp: basesmsocket (MCA v2.0, API v2.0, Component v1.8.4) >>>> MCA sbgp: basesmuma (MCA v2.0, API v2.0, Component v1.8.4) >>>> MCA sbgp: p2p (MCA v2.0, API v2.0, Component v1.8.4) >>>> MCA sharedfp: individual (MCA v2.0, API v2.0, Component v1.8.4) >>>> MCA sharedfp: lockedfile (MCA v2.0, API v2.0, Component v1.8.4) >>>> MCA sharedfp: sm (MCA v2.0, API v2.0, Component v1.8.4) >>>> MCA topo: basic (MCA v2.0, API v2.1, Component v1.8.4) >>>> MCA vprotocol: pessimist (MCA v2.0, API v2.0, Component v1.8.4) >>>> >>>> >>>> >>> _______________________________________________ >>> devel mailing list >>> de...@open-mpi.org >>> Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/devel >>> Link to this post: >>> http://www.open-mpi.org/community/lists/devel/2015/10/18200.php >> >> _______________________________________________ >> devel mailing list >> de...@open-mpi.org >> Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/devel >> Link to this post: >> http://www.open-mpi.org/community/lists/devel/2015/10/18202.php > > > -- > Jeff Squyres > jsquy...@cisco.com > For corporate legal information go to: > http://www.cisco.com/web/about/doing_business/legal/cri/ > > _______________________________________________ > devel mailing list > de...@open-mpi.org > Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/devel > Link to this post: > http://www.open-mpi.org/community/lists/devel/2015/10/18203.php
# 1 "<built-in>" # 1 "xcode_7_0_1_clang_crash.c" #define EXTERN typedef struct s *t; EXTERN struct ss e1; EXTERN struct ss e2; int foo() { return (((t)&e1) == ((t)&e2)); }