This repository has been archived by the owner. It is now read-only.

Spidermonkey not compatible with CouchDB on OS X 10.9 #23332

Closed
greimers opened this Issue Oct 17, 2013 · 27 comments

Comments

Projects
None yet
@greimers
Copy link

greimers commented Oct 17, 2013

I'm trying to install CouchDB but it gives me the following error:

Error: couchdb dependency spidermonkey was built with the following
C++ standard library: libstdc++ (from clang)

This is incompatible with the standard library being used
to build couchdb: libc++ (from clang)

Please reinstall spidermonkey using a compatible compiler.
hint: Check https://github.com/mxcl/homebrew/wiki/C++-Standard-Libraries

I am on Mavericks GM. I tried a complete reinstall of homebrew but that still gives me the same error.

Shouldn't Spidermonkey build with libc++ by default on Mavericks?
How can I manually make Spidermonkey compile against libc++?

@mistydemeo

This comment has been minimized.

Copy link
Contributor

mistydemeo commented Oct 17, 2013

Can I see your build logs? They'd be in ~/Library/Logs/Homebrew/spidermonkey

@strmpnk

This comment has been minimized.

Copy link

strmpnk commented Oct 17, 2013

I'm experiencing the same issue described here. I've copied my build logs here: https://gist.github.com/strmpnk/7028077

@greimers

This comment has been minimized.

Copy link

greimers commented Oct 18, 2013

My build logs for spidermonkey are here:
https://gist.github.com/greimers/7038594

@strmpnk

This comment has been minimized.

Copy link

strmpnk commented Oct 23, 2013

For what it's worth, couchdb seems to work fine if I compile from source by hand after installing spidermonkey. It seems like homebrew is raising a false alarm of some sort.

@mistydemeo

This comment has been minimized.

Copy link
Contributor

mistydemeo commented Oct 23, 2013

This case is probably a false alarm, if couchdb is itself not C++ code. However it's a very subtle incompatibility (if there is one) - not the build-failing kind, but the random-segfaults kind that doesn't reproduce instantly.

@mistydemeo

This comment has been minimized.

Copy link
Contributor

mistydemeo commented Oct 23, 2013

(I'm going to improve the false alarm situation.)

@strmpnk

This comment has been minimized.

Copy link

strmpnk commented Oct 23, 2013

Interesting. The CouchDB code integrates spidermonkey using C rather than C++ but I'm not sure if that avoids the problem or not. I'll continue looking for any issues in the meantime.

@natevw

This comment has been minimized.

Copy link

natevw commented Oct 24, 2013

Getting the same here on a ± clean install of everything (removed and pruned full list, definitely built spidermonkey just now). Is there a way to force brew to give the couchdb build a go despite the mismatch?

@mistydemeo

This comment has been minimized.

Copy link
Contributor

mistydemeo commented Oct 24, 2013

I'm going to be pushing a fix soon which will squelch these false positives.

@mistydemeo

This comment has been minimized.

Copy link
Contributor

mistydemeo commented Oct 24, 2013

The CouchDB code integrates spidermonkey using C rather than C++ but I'm not sure if that avoids the problem or not

If there's no C then it's fine, and this won't be flagged as an incompatibility once I improve tracking.

@mistydemeo

This comment has been minimized.

Copy link
Contributor

mistydemeo commented Oct 24, 2013

I can confirm that this false positive will be squelched when #23458 lands.

@strmpnk

This comment has been minimized.

Copy link

strmpnk commented Oct 24, 2013

👍 Thanks for your diligence in making these OS upgrades smooth!

@mistydemeo

This comment has been minimized.

Copy link
Contributor

mistydemeo commented Oct 25, 2013

For some reason spidermonkey is using libc++ in stdenv, which resolves the couchdb issue.

stdenv: https://gist.github.com/mistydemeo/d9430cdace5045d9ea83
superenv: https://gist.github.com/mistydemeo/155314bc780ff073eddb

Ping @manphiz

@manphiz

This comment has been minimized.

Copy link
Contributor

manphiz commented Oct 26, 2013

@mistydemeo the superenv log doesn't seem to have superenv flag note, which is kind of weird.

@jacknagel

This comment has been minimized.

Copy link
Contributor

jacknagel commented Nov 7, 2013

Is this resolved? /cc @mistydemeo

@natevw

This comment has been minimized.

Copy link

natevw commented Nov 7, 2013

Seems like 8f5d0f7 did resolve this.

@mistydemeo

This comment has been minimized.

Copy link
Contributor

mistydemeo commented Nov 7, 2013

Should be fixed.

@mistydemeo mistydemeo closed this Nov 7, 2013

@zebeurton

This comment has been minimized.

Copy link

zebeurton commented Nov 22, 2013

I applied the fix and I have the same issues. I cannot build spider monkey because of libstdc++ instead of libc++

@janl

This comment has been minimized.

Copy link
Contributor

janl commented Nov 29, 2013

The problem persists.

@janl

This comment has been minimized.

Copy link
Contributor

janl commented Nov 29, 2013

Building Spidermonkey with brew install spidermonkey --env=std does the trick.

@dch

This comment has been minimized.

Copy link
Contributor

dch commented Nov 29, 2013

FWIW I didn't have this issue, after doing this:

cd /usr/local/Cellar
brew ls > brews.lst
brew rm --force *
brew update
brew install `cat brews.lst`

Worked fine for mavericks both shortly after release time, and again on 2013/11/29. Hope that helps!

** although my situation was slightly more complex (custom erlang with --brewed-ssl) most other packages are just defaults.

@julianguyen

This comment has been minimized.

Copy link

julianguyen commented Jan 20, 2014

I still have this issue. What is the newest solution that works? I tried all the above and no changes.

@janl

This comment has been minimized.

Copy link
Contributor

janl commented Jan 20, 2014

@julianguyen did you brew upgrade at some point?

@julianguyen

This comment has been minimized.

Copy link

julianguyen commented Jan 22, 2014

Aha it works. Thanks! Reinstalling spidermonkey helped!

@dch

This comment has been minimized.

Copy link
Contributor

dch commented Jan 22, 2014

@julianguyen any chance you can post output of brew doctor
somewhere, and also log of console during:

brew update
brew outdated
brew rm --force `brew deps couchdb` couchdb
brew install -v couchdb

I've just tried this here on 10.9.1 without issues, on 2 macs, for
both couchdb and couchdb HEAD. My brew doctor comes up clean FWIW.

On 22 January 2014 19:11, Julia Nguyen notifications@github.com wrote:

Yep I tried that


Reply to this email directly or view it on GitHub.

@anthonybrown

This comment has been minimized.

Copy link

anthonybrown commented Mar 24, 2014

@dch that didn't work for me
the build broke when installing erlang
here is the output:
`==> Summary
🍺 /usr/local/Cellar/libtool/2.4.2: 66 files, 2.2M
==> Installing couchdb dependency: erlang
==> Downloading https://github.com/erlang/otp/tarball/OTP_R15B03-1
Already downloaded: /Library/Caches/Homebrew/erlang-R15B03-1.tgz
==> Verifying erlang-R15B03-1.tgz checksum
tar xf /Library/Caches/Homebrew/erlang-R15B03-1.tgz
==> ./otp_build autoconf
./otp_build: line 329: autoconf: command not found



*** WARNING: System might fail to configure or
*** might be erroneously configured
*** since autoconf version x is used
*** instead of version 2.59!



=== running autoconf in lib
./otp_build: line 372: autoconf: command not found
==> Configuration
HOMEBREW_VERSION: 0.9.5
HEAD: 3fa6a14
CPU: dual-core 64-bit penryn
OS X: 10.9.2-x86_64
Xcode: 5.1
CLT: 5.1.0.0.1.1393561416
X11: 2.7.5 => /opt/X11
==> ENV
HOMEBREW_CC: clang
HOMEBREW_CXX: clang++
MAKEFLAGS: -j2
CMAKE_PREFIX_PATH: /usr/local
CMAKE_INCLUDE_PATH: /usr/include/libxml2:/System/Library/Frameworks/OpenGL.framework/Versions/Current/Headers
CMAKE_LIBRARY_PATH: /System/Library/Frameworks/OpenGL.framework/Versions/Current/Libraries
PKG_CONFIG_LIBDIR: /usr/lib/pkgconfig:/usr/local/Library/ENV/pkgconfig/10.9
ACLOCAL_PATH: /usr/local/share/aclocal
PATH: /usr/local/Library/ENV/4.3:/usr/local/opt/automake/bin:/usr/local/opt/libtool/bin:/usr/bin:/bin:/usr/sbin:/sbin`

@dch

This comment has been minimized.

Copy link
Contributor

dch commented Mar 24, 2014

@anthonybrown you've not followed the instructions then: current brewed erlang is R16B03-1, but you're installing R15B03.

The current erlang build includes:

depends_on :autoconf
depends_on :automake
depends_on :libtool

Can you brew update & try again?

If you're still stuck today, drop by #couchdb on on irc://freenode.net/#couchdb and we'll get you started.

If the erlang build still fails, best to address that in a new ticket, not in a couchdb one that's over a year old and already closed -- let sleeping dogs lie :-).

@Homebrew Homebrew locked and limited conversation to collaborators Feb 17, 2016

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.