Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

correcting version of glog expected by folly #648

Closed
ahundt opened this issue Jul 31, 2017 · 5 comments
Closed

correcting version of glog expected by folly #648

ahundt opened this issue Jul 31, 2017 · 5 comments

Comments

@ahundt
Copy link

ahundt commented Jul 31, 2017

I'm trying to coordinate the correction of an inconsistency between three tools, folly, glog, and homebrew, so please bear with me.

folly appears to expect a dynamic library for glog named:

  /usr/local/opt/glog/lib/libglog.0.dylib

However, this does not appear to be the correct filename for various versions and methods of installing of glog, depending on how it was compiled. This inconsistency between glog and folly causes the homebrew install of folly to fail. I'd like to resolve this inconsistency so all the utilities work together correctly. Thanks for your consideration! :-)

Equivalent issues on the other projects:
google/glog#196
Homebrew/homebrew-core#14379

@ahundt
Copy link
Author

ahundt commented Aug 1, 2017

        Testing folly
==> Using the sandbox
/usr/bin/sandbox-exec -f /tmp/homebrew20170801-62951-7aurkv.sb /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby -W0 -I /usr/local/Homebrew/Library/Homebrew -- /usr/local/Homebrew/Library/Homebrew/test.rb /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/folly.rb --verbose
==> /usr/bin/clang++ -std=c++11 test.cc -I/usr/local/Cellar/folly/2017.07.31.00/include -L/usr/local/Cellar/folly/2017.07.31.00/lib -lfolly -o test
==> ./test
dyld: Library not loaded: /usr/local/opt/glog/lib/libglog.0.dylib
  Referenced from: /usr/local/opt/folly/lib/libfolly.57.dylib
  Reason: Incompatible library version: libfolly.57.dylib requires version 1.0.0 or later, but libglog.0.dylib provides version 0.3.5
Error: folly: failed
Failed executing: ./test 
/usr/local/Homebrew/Library/Homebrew/formula.rb:1804:in `block in system'
/usr/local/Homebrew/Library/Homebrew/formula.rb:1742:in `open'
/usr/local/Homebrew/Library/Homebrew/formula.rb:1742:in `system'
/usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/folly.rb:64:in `block in <class:Folly>'
/usr/local/Homebrew/Library/Homebrew/formula.rb:1639:in `block (2 levels) in run_test'
/usr/local/Homebrew/Library/Homebrew/formula.rb:834:in `with_logging'
/usr/local/Homebrew/Library/Homebrew/formula.rb:1638:in `block in run_test'
/usr/local/Homebrew/Library/Homebrew/extend/fileutils.rb:14:in `block in mktemp'
/usr/local/Homebrew/Library/Homebrew/extend/fileutils.rb:74:in `block in run'
/usr/local/Homebrew/Library/Homebrew/extend/fileutils.rb:74:in `chdir'
/usr/local/Homebrew/Library/Homebrew/extend/fileutils.rb:74:in `run'
/usr/local/Homebrew/Library/Homebrew/extend/fileutils.rb:13:in `mktemp'
/usr/local/Homebrew/Library/Homebrew/formula.rb:1632:in `run_test'
/usr/local/Homebrew/Library/Homebrew/test.rb:28:in `block in <main>'
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/timeout.rb:66:in `timeout'
/usr/local/Homebrew/Library/Homebrew/test.rb:27:in `<main>'

@ahundt
Copy link
Author

ahundt commented Oct 1, 2017

@Orvid is there any chance you could give this a look, it seems you're involved in some of the cmake code.

@Orvid
Copy link
Contributor

Orvid commented Oct 2, 2017

I'm not actually very familiar with the homebrew setup :(

@ahundt
Copy link
Author

ahundt commented Oct 2, 2017

@Orvid Sorry for the confusing post, I think the main question is related to folly and glog, no homebrew required. Essentially, can folly be updated to find a glog installation when it has been built and installed via cmake?

I believe the library name folly looks for doesn't work right when it is a cmake based install of glog, and the reason for that is the autoconf build of glog does not version the library. In other words, folly needs to correctly find glog when there is, for example, a file named /usr/local/lib/libglog.0.3.5.dylib present (or similarly /usr/lib/libglog.0.3.5.dylib).

@emmenlau
Copy link

If glog was built with cmake, could folly detect it from the cmake configuration first, instead of a find-script? This would probably be a lot more robust.
Currently I can not build folly against a standard glog that was built from source with cmake.

@yfeldblum yfeldblum closed this as not planned Won't fix, can't repro, duplicate, stale Aug 31, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants