Re: Incorrect processor define on Apple M1
Thomas Braun via omniORB-list <[email protected]> Sat, 15 Apr 2023 16:40:00 +0200
| Newsgroups | gmane.comp.corba.omniorb.user |
|---|---|
| Message-ID | <[email protected]> |
--=-PhO1dvdGRn0R9hd4DTQK Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 8bit Am 15.04.2023 um 13:50 schrieb Duncan Grisby: > On Fri, 2023-04-14 at 12:36 +0200, Thomas Braun via omniORB-list > wrote: Thanks for the quick reply, > > we do have some issues on cppTango, which uses omniORB, with > > obvious > > crashes on Apple M1. > > > > The problem seems to be that the omniORB pkg-config files use the > > wrong processor defines. > > [...] > > and that gives > > > > PROCESSOR_DEFINE='__arm__' > > PROCESSOR_NAME='ArmProcessor' > > I agree that it is not quite right. However, I am not sure how that > could lead to a crash. The only place in omniORB that actually looks > at > that processor define is where it handles the old ARM mixed-endian > double format. It certainly could become confused and break double > precision values, which would clearly be bad, but it would not crash. > > Or is it that the definition of __arm__ somehow breaks some other > code > that is not in omniORB? Yes this is the problem. PROCESSOR_DEFINE is used in contrib/pkgconfig/omnithread.pc.in and include/omniconfig.h.in. clang -print-target-triple says arm64-apple-darwin22.3.0 and if I then check what it defines for architecture arm64 with clang -arch arm64 -dM -E - < /dev/null | grep -e __aarch -e __arm I get #define __aarch64__ 1 #define __arm64 1 #define __arm64__ 1 and checking for plain arm gives clang -arch arm -dM -E - < /dev/null | grep -e __aarch -e __arm #define __arm 1 #define __arm__ 1 [2] hints also to the fact that __arm__ should be only defined for 32bit arm. Grepping through some system files gives grep -A3 __arm__ /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xcto olchain/usr/include/c++/v1/__threading_support #if defined(_M_IX86) || defined(__i386__) || defined(_M_ARM) || defined(__arm__) typedef void* __libcpp_recursive_mutex_t[6]; #elif defined(_M_AMD64) || defined(__x86_64__) || defined(_M_ARM64) || defined(__aarch64__) typedef void* __libcpp_recursive_mutex_t[5]; which gives the same conclusion. To summarize: PROCESSOR_DEFINE should be __aarch64__ on Apple M1 as that is what clang defines by default. > If the crash is in omniORB, can you give a stack trace for it? What we see are random SIGABORT when deallocating std::string objects. The fix was to *not* use the pkg-config file supplied with omniORB. That was how we found the __arm__ define. I'm attaching the lldb output of one of those crashes. [2]: https://stackoverflow.com/a/41666292 --=-PhO1dvdGRn0R9hd4DTQK Content-Type: application/gzip; name="sigabrt.trace.gz" Content-Disposition: attachment; filename="sigabrt.trace.gz" Content-Transfer-Encoding: base64 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 --=-PhO1dvdGRn0R9hd4DTQK Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ omniORB-list mailing list [email protected] https://www.omniorb-support.com/mailman/listinfo/omniorb-list --=-PhO1dvdGRn0R9hd4DTQK--