Skip to content
This repository has been archived by the owner on Jul 4, 2023. 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
Closed

Spidermonkey not compatible with CouchDB on OS X 10.9 #23332

greimers opened this issue Oct 17, 2013 · 27 comments

Comments

@greimers
Copy link

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
Copy link
Member

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

@cararemixed
Copy link

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

@greimers
Copy link
Author

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

@cararemixed
Copy link

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
Copy link
Member

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
Copy link
Member

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

@cararemixed
Copy link

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
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
Copy link
Member

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

@mistydemeo
Copy link
Member

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
Copy link
Member

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

@cararemixed
Copy link

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

@mistydemeo
Copy link
Member

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
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
Copy link
Contributor

Is this resolved? /cc @mistydemeo

@natevw
Copy link

natevw commented Nov 7, 2013

Seems like 8f5d0f7 did resolve this.

@mistydemeo
Copy link
Member

Should be fixed.

@zebeurton
Copy link

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

@janl
Copy link
Contributor

janl commented Nov 29, 2013

The problem persists.

@janl
Copy link
Contributor

janl commented Nov 29, 2013

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

@dch
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
Copy link

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

@janl
Copy link
Contributor

janl commented Jan 20, 2014

@julianguyen did you brew upgrade at some point?

@julianguyen
Copy link

Aha it works. Thanks! Reinstalling spidermonkey helped!

@dch
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
Copy link

@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
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.
Labels
None yet
Projects
None yet
Development

No branches or pull requests