[swift-corelibs-dev] libdispatch on Linux, or C++ std::async?

David P Grove groved at us.ibm.com
Mon May 30 11:24:52 CDT 2016


	my guess is you missed the git submodule init and update step in
setting up your libdispatch checkout.  If the libpwq directory is empty,
this is certainly what happened (and is why it isn't invoking auotconf
recursively on libpwq).  Buried at the bottom of the INSTALL file:

Initialize git submodules:
  We are using git submodules to incorporate a specific revision of the
  upstream pthread_workqueue library into the build.
    git submodule init
    git submodule update


From:	Brian Gesiak via swift-corelibs-dev
            <swift-corelibs-dev at swift.org>
To:	Chris Bailey <BAILEYC at uk.ibm.com>
Cc:	Swift Core Libs <swift-corelibs-dev at swift.org>
Date:	05/30/2016 11:51 AM
Subject:	Re: [swift-corelibs-dev] libdispatch on Linux, or C++
Sent by:	swift-corelibs-dev-bounces at swift.org

Thanks for the quick responses!

I had tried the experimental/foundation branch as well, with no luck.
Here's the full output from a clean build I just attempted:

Prior to the build I removed my entire build directory (which included
both libdispatch-linux-x86_64 and swift-linux-x86_64) and removed all build
artifacts from my libdispatch directory (I used `git clean -fxd` -- Make
tells me there's no target `distclean`).

Looking at the build failure, it appears to be the same one that was
reported in https://bugs.swift.org/browse/SR-1242. The author of that
report indicates that
https://github.com/apple/swift-corelibs-libdispatch/pull/64 fixes the
problem. My checkout includes the commits from that pull request, but the
problem remains.

In any case, thanks for all your help! I'll keep trying. Any and all advice
would be much appreciated!

- Brian Gesiak

On Mon, May 30, 2016 at 10:22 AM, Chris Bailey <BAILEYC at uk.ibm.com> wrote:
  I'd certainly recommend picking up the experimental/foundation branch as
  Rob recommends. Its where we've been doing some additional work to get
  properly built into the Swift toolchain and to open up some internal APIs
  needed by Foundation.

  Whilst I've been building Dispatch either independently or as part of a
  full toolchain using the buildbot_linux preset (with dispatch and
  install-dispatch added), I've just checked your build line and its
  working fine for me. It might be worth cleaning out any partial build you
  might have of libdispatch in your build directory, and running 'make
  distclean' from your libdispatch source directory.

  FYI, we've got some further changes to the experimental/foundation branch
  of libdispatch with should land in the next couple of days. This fixes
  some issues with the Swift overlay, and resolves a crash that we've found
  in the underlying libkqueue implementation.


  From:        Rob Allen via swift-corelibs-dev <
  swift-corelibs-dev at swift.org>
  To:        Brian Gesiak <modocache at gmail.com>
  Cc:        Swift Core Libs <swift-corelibs-dev at swift.org>
  Date:        30/05/2016 08:08
  Subject:        Re: [swift-corelibs-dev] libdispatch on Linux, or C++
  Sent by:        swift-corelibs-dev-bounces at swift.org


  For what it's worth, I can't get the master branch to build either, but I
  can get the experimental/foundation branch to build.



  On 30 May 2016, at 05:28, Brian Gesiak via swift-corelibs-dev <
  swift-corelibs-dev at swift.org> wrote:

  Hello all!

  I'm working on https://bugs.swift.org/browse/SR-710, which involves
  porting SourceKit to Linux. SourceKit contains a handful of references to
  libdispatch symbols.

  I have two questions:

  1. Could someone share a set of instructions to build
  swift-corelibs-libdispatch on Linux? I'm using Ubuntu 15.10 and have
  installed [the dependencies listed here](
  ). I have tried using both `swift/utils/build-script --libdispatch` as
  well as the instructions in the swift-corelibs-libdispatch `INSTALL`
  file. Both fail with the [same errors](
  https://gist.github.com/modocache/8389d5d64e39ca5a4281500f84e9ce11). Any

  2. I don't know much about C++, but from what I understand the C++ stdlib
  provides tools for asynchronous programming. I list SourceKit's uses of
  libdispatch in a comment on https://bugs.swift.org/browse/SR-1639. For
  those familiar with both C++ and libdispatch: do you think it's a good
  idea to migrate to C++, at least for now?

  Any advice would be appreciated. Thanks!!

  - Brian Gesiak

  Development thoughts at http://akrabat.com
  Daily Jotter for Mac OS X at http://dailyjotter.com
  swift-corelibs-dev mailing list
  swift-corelibs-dev at swift.org

swift-corelibs-dev mailing list
swift-corelibs-dev at swift.org

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-corelibs-dev/attachments/20160530/ef3b0806/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: graycol.gif
Type: image/gif
Size: 105 bytes
Desc: not available
URL: <https://lists.swift.org/pipermail/swift-corelibs-dev/attachments/20160530/ef3b0806/attachment.gif>

More information about the swift-corelibs-dev mailing list