Tarantool development patches archive
 help / color / mirror / Atom feed
From: Kirill Yukhin <kyukhin@tarantool.org>
To: Vladislav Shpilevoy <v.shpilevoy@tarantool.org>
Cc: tarantool-patches@dev.tarantool.org
Subject: Re: [Tarantool-patches] [PATCH 1/1] Fix build on Mac with gcc and XCode 11
Date: Tue, 10 Dec 2019 17:15:24 +0300	[thread overview]
Message-ID: <20191210141524.pz4qyuryz7hunu76@tarantool.org> (raw)
In-Reply-To: <24ad607cdb08403e955e4c66daf11e2ed99e750e.1575233822.git.v.shpilevoy@tarantool.org>

Hello,

On 01 дек 21:59, Vladislav Shpilevoy wrote:
> There is a bug in XCode 11 which makes some standard C headers
> not self sufficient when compile with gcc. At least <stdlib.h> and
> <algorithm> are affected. When they are included first,
> compilation fails with creepy errors like this:
> 
>     In file included
>     from /Applications/Xcode.app/Contents/Developer/
>         Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/
>         sys/wait.h:110,
>     from /Applications/Xcode.app/Contents/Developer/
>         Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/
>         stdlib.h:66,
>     from tarantool/third_party/zstd/lib/common/zstd_common.c:16:
>         /Applications/Xcode.app/Content/Developer/
>         Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/
>         sys/resource.h:
>     In function 'getiopolicy_np': /Applications/Xcode.app/Contents/Developer/
>         Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/
>         sys/resource.h:447:34: error:
>             expected declaration specifiers before '__OSX_AVAILABLE_STARTING'
>             447 | int     getiopolicy_np(int, int)
>             __OSX_AVAILABLE_STARTING(__MAC_10_5, __IPHONE_2_0);
> 
> The patch workarounds the bug by deleting the buggy header
> includes where possible, and by changing include order in other
> cases.
> 
> Also there was a second compilation problem. This was about
> different definitions of the same standard functions: via extern
> "C" and without. It looked like this:
> 
>     In file included from tarantool/src/trivia/util.h:36,
>     from tarantool/src/tt_pthread.h:35,
>     from tarantool/src/lib/core/fiber.h:38,
>     from tarantool/src/lib/core/coio.h:33,
>     from tarantool/src/lib/core/coio.cc:31:
>     /usr/local/Cellar/gcc/9.2.0_1/lib/gcc/9/gcc/x86_64-apple-darwin18/9.2.0
>     include-fixed/stdio.h:222:7: error: conflicting declaration of
>     'char* ctermid(char*)' with 'C' linkage
>       222 | char *ctermid(char *);
>           |       ^~~~~~~
> 
>     In file included from /Applications/Xcode.app/Contents/Developer/Platforms/
>     MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/unistd.h:525,
>     from tarantool/src/lib/core/fiber.h:37,
>     from tarantool/src/lib/core/coio.h:33,
>     from tarantool/src/lib/core/coio.cc:31:
>     /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/
>     Developer/SDKs/MacOSX.sdk/usr/include/_ctermid.h:26:10: note: previous
>     declaration with 'C++' linkage
>       26 | char    *ctermid(char *);
>          |          ^~~~~~~
> 
> This bug is workarounded by deletion of the conflicting includes,
> because anyway they appeared to be not needed.
> 
> Closes #4580
> ---
> Issue: https://github.com/tarantool/tarantool/issues/4580
> Branch: https://github.com/tarantool/tarantool/tree/gerold103/gh-4580-mac-build

I've checked your patch into master.

--
Regards, Kirill 

      reply	other threads:[~2019-12-10 14:15 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-12-01 20:59 Vladislav Shpilevoy
2019-12-10 14:15 ` Kirill Yukhin [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20191210141524.pz4qyuryz7hunu76@tarantool.org \
    --to=kyukhin@tarantool.org \
    --cc=tarantool-patches@dev.tarantool.org \
    --cc=v.shpilevoy@tarantool.org \
    --subject='Re: [Tarantool-patches] [PATCH 1/1] Fix build on Mac with gcc and XCode 11' \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox