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)
<[email protected]> 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 <[email protected]>
>> 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: [email protected]
>>
>>> On 20 Oct 2015, at 11:42, Gilles Gouaillardet
>>> <[email protected]> wrote:
>>>
>>> Tobias,
>>>
>>> Btw, did you recompile ompi with this xcode ?
>>> Iirc, we do similar comparisons in ompi itself
>>>
>>> Cheers,
>>>
>>> Gilles
>>>
>>> Tobias Hilbrich <[email protected]> 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 [email protected]
>>>> 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
>>> [email protected]
>>> 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
>> [email protected]
>> 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
> [email protected]
> For corporate legal information go to:
> http://www.cisco.com/web/about/doing_business/legal/cri/
>
> _______________________________________________
> devel mailing list
> [email protected]
> 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));
}