brewsci / homebrew-bio

:beer::microscope: Bioinformatics formulae for the Homebrew package manager (macOS and Linux)
http://brewsci.github.io/homebrew-bio
Other
306 stars 119 forks source link

canu: dyld: Library not loaded: /usr/local/opt/gcc/lib/gcc/7/libgomp.1.dylib #283

Closed jpummil closed 6 years ago

jpummil commented 6 years ago

Warning: brewsci/bio/canu dependency gmp was built with a different C++ standard library (libc++ from clang). This may cause problems at runtime. 🍺 /usr/local/Cellar/canu/1.7: 96 files, 10.2MB

Install Canu assembly package

Warning: brewsci/bio/canu dependency gmp was built with a different C++ standard library (libc++ from clang). This may cause problems at runtime. 🍺 /usr/local/Cellar/canu/1.7: 96 files, 10.2MB

For Homebrew to resolve dependencies and set up paths to avoid possible warnings and issues with things like C++ libraries.

Completely removed all existing brew installed apps, then completely removed old brew. Re-installed brew after updating system (no errors)... Then: brew tap brewsci/bio brew install canu ==> Installing canu from brewsci/bio ==> Installing dependencies for brewsci/bio/canu: gmp, isl, mpfr, libmpc, gcc ==> Installing brewsci/bio/canu dependency: gmp ==> Downloading https://homebrew.bintray.com/bottles/gmp-6.1.2_2.high_sierra.bottle.tar.gz ######################################################################## 100.0% ==> Pouring gmp-6.1.2_2.high_sierra.bottle.tar.gz 🍺 /usr/local/Cellar/gmp/6.1.2_2: 18 files, 3.1MB ==> Installing brewsci/bio/canu dependency: isl ==> Downloading https://homebrew.bintray.com/bottles/isl-0.19.high_sierra.bottle.tar.gz ######################################################################## 100.0% ==> Pouring isl-0.19.high_sierra.bottle.tar.gz 🍺 /usr/local/Cellar/isl/0.19: 66 files, 3.8MB ==> Installing brewsci/bio/canu dependency: mpfr ==> Downloading https://homebrew.bintray.com/bottles/mpfr-4.0.1.high_sierra.bottle.tar.gz ######################################################################## 100.0% ==> Pouring mpfr-4.0.1.high_sierra.bottle.tar.gz 🍺 /usr/local/Cellar/mpfr/4.0.1: 28 files, 4.6MB ==> Installing brewsci/bio/canu dependency: libmpc ==> Downloading https://homebrew.bintray.com/bottles/libmpc-1.1.0.high_sierra.bottle.tar.gz ######################################################################## 100.0% ==> Pouring libmpc-1.1.0.high_sierra.bottle.tar.gz 🍺 /usr/local/Cellar/libmpc/1.1.0: 12 files, 353.8KB ==> Installing brewsci/bio/canu dependency: gcc ==> Downloading https://homebrew.bintray.com/bottles/gcc-8.1.0.high_sierra.bottle.1.tar.gz ######################################################################## 100.0% ==> Pouring gcc-8.1.0.high_sierra.bottle.1.tar.gz 🍺 /usr/local/Cellar/gcc/8.1.0: 1,495 files, 336.1MB ==> Installing brewsci/bio/canu ==> Downloading https://linuxbrew.bintray.com/bottles-bio/canu-1.7.sierra.bottle.tar.gz ######################################################################## 100.0% ==> Pouring canu-1.7.sierra.bottle.tar.gz Warning: brewsci/bio/canu dependency gmp was built with a different C++ standard library (libc++ from clang). This may cause problems at runtime. 🍺 /usr/local/Cellar/canu/1.7: 96 files, 10.2MB

I believe there are additional warnings similar to this one as I attempted to add new packages with "brew install" last time. Is there a best method to resolve this situation and make everything just "work" again? Clang seems to have thrown a wrench into things...

jonchang commented 6 years ago

You can recompile everything with gcc to get rid of the warning, but note that it's just a warning and if you don't encounter any problems at runtime it's probably fine. Anecdotally I've never had any errors with the stdc++ mismatch. Feel free to open a new issue if you do encounter problems when running software.

jpummil commented 6 years ago

It does in fact throw an error during execution:

dyld: Library not loaded: /usr/local/opt/gcc/lib/gcc/7/libgomp.1.dylib Referenced from: /usr/local/Cellar/canu/1.7/Darwin-amd64/bin/gatekeeperCreate Reason: image not found

While gcc was loaded by brew install process...the clang instance seems to be default:

gcc --version Configured with: --prefix=/Library/Developer/CommandLineTools/usr --with-gxx-include-dir=/usr/include/c++/4.2.1 Apple LLVM version 9.1.0 (clang-902.0.39.1) Target: x86_64-apple-darwin17.5.0 Thread model: posix InstalledDir: /Library/Developer/CommandLineTools/usr/bin

jonchang commented 6 years ago

try reinstalling canu from source with brew reinstall -s canu

if that works then please file a new pull request to bump the revision number of canu, thanks!

jonchang commented 6 years ago

(the libstdc++ warning is a red herring in this case - the real reason is that the current version of gcc is 8.1 but canu is trying to link against gcc 7)

jpummil commented 6 years ago

Same error after brew reinstall -s canu...

No obvious errors during the process however:

brew reinstall -s canu ==> Reinstalling brewsci/bio/canu ==> Downloading https://github.com/marbl/canu/archive/v1.7.tar.gz ==> Downloading from https://codeload.github.com/marbl/canu/tar.gz/v1.7 ######################################################################## 100.0% ==> make -C src Last 15 lines from /Users/jpummil/Library/Logs/Homebrew/canu/01.make: ^~~~ In file included from /usr/local/Cellar/gcc/8.1.0/include/c++/8.1.0/memory:80, from utgcns/libboost/boost/unordered/unordered_set_fwd.hpp:14, from utgcns/libboost/boost/unordered/unordered_set.hpp:17, from utgcns/libboost/boost/unordered_set.hpp:17, from utgcns/libboost/boost/graph/adjacency_list.hpp:21, from utgcns/libpbutgcns/AlnGraphBoost.H:69, from utgcns/libcns/unitigConsensus.C:77: /usr/local/Cellar/gcc/8.1.0/include/c++/8.1.0/bits/unique_ptr.h:53:28: note: declared here template class auto_ptr; ^~~~ utgcns/libcns/unitigConsensus.C: In function 'char generateTemplateStitch(abAbacus, tgPosition*, uint32, double, bool)': utgcns/libcns/unitigConsensus.C:464:8: warning: suggest explicit braces to avoid ambiguous 'else' [-Wdangling-else] if (verbose) ^

sjackman commented 6 years ago

@jpummil Please surround copied-and-pasted logs with triple back ticks. See GitHub Help / Quoting Code.

sjackman commented 6 years ago

Hi, Jeff. Could you please open a PR to bump the revision of canu? brew edit canu then after sha256 add a line

revision 1
jpummil commented 6 years ago

Hey Shaun,

Sorry about the back ticks...just now getting in to the details of posting to Git.

On that note, I've never filed a Pull Request, and when I hop over there, it's asking for both a base:master and a pull:master?

Hang with me...I'll only have to learn this once ;-)

Edit: Ahhh! This is from the command line! So, I believe I have accomplished this step...

jonchang commented 6 years ago

That error in the build process is also a red herring, here's the real build error:

In file included from utgcns/libNDalign/NDalign.C:39:
AS_UTL/stddev.H: In member function 'const std::vector<long long unsigned int>& genericStatistics<TT>::histogram()':
AS_UTL/stddev.H:341:12: error: invalid initialization of reference of type 'const std::vector<long long unsigned int>&' from expression of type 'std::vector<long long unsigned int>*'
     return(&_histogram);
           ~^~~~~~~~~~~~
AS_UTL/stddev.H: In member function 'const std::vector<long long unsigned int>& genericStatistics<TT>::Nstatistics()':
AS_UTL/stddev.H:346:12: error: invalid initialization of reference of type 'const std::vector<long long unsigned int>&' from expression of type 'std::vector<long long unsigned int>*'
     return(&_Nstatistics);
           ~^~~~~~~~~~~~~~

Taking a reference of a pointer seems like a mistake (why not just pass the pointer by value?) so changing it to return(_histogram) and return(_Nstatistics) will probably work...

sjackman commented 6 years ago

Sorry about the back ticks...just now getting in to the details of posting to Git.

No worries!

Odd. That does look like it may be a bug. I'd suggest reporting that build error to the upstream developers at https://github.com/marbl/canu/

To bump the revision, you can also use the GitHub web interface if you prefer. The defaults for the base and branch should be correct. For the command like, I like using hub.

brew install hub
hub fork
git push
hub pull-request
jpummil commented 6 years ago

Not my day, Shaun...

brew install hub
==> Downloading https://homebrew.bintray.com/bottles/hub-2.2.9.high_sierra.bottle.tar.gz
######################################################################## 100.0%
==> Pouring hub-2.2.9.high_sierra.bottle.tar.gz
==> Caveats
Bash completion has been installed to:
  /usr/local/etc/bash_completion.d

zsh completions have been installed to:
  /usr/local/share/zsh/site-functions
==> Summary
🍺  /usr/local/Cellar/hub/2.2.9: 10 files, 9.4MB
jeffs-imac-pro:~ jpummil$ hub fork
fatal: Not a git repository
tseemann commented 6 years ago

@jpummil maybe lets do something simpler and see if brew doctor confirms your setup is correct?

jpummil commented 6 years ago

Hey Torsten!

brew doctor
Please note that these warnings are just used to help the Homebrew maintainers
with debugging if you file an issue. If everything you use Homebrew for is
working fine: please don't worry or file an issue; just ignore this. Thanks!

Warning: Broken symlinks were found. Remove them with `brew prune`:
  /usr/local/bin/docker-credential-osxkeychain.backup
  /usr/local/bin/hyperkit.backup
  /usr/local/bin/notary.backup
  /usr/local/bin/vpnkit.backup
jpummil commented 6 years ago

I should note that other packages exhibit similar issues. I just tried quickmerge for example:

brew install quickmerge
Updating Homebrew...
==> Auto-updated Homebrew!
Updated Homebrew from 5c3ec3e7c to 3794d5357.
Updated 1 tap (homebrew/core).
==> Updated Formulae
agedu                  fluent-bit             imagemagick@6          mupdf                  purescript             vala
annie                  folly                  infer                  mupdf-tools            qjackctl               vte3
bcal                   geoserver              ispc                   nss                    redshift               x265
clang-format           git-lfs                jenkins                osm2pgrouting          restic                 zsh-autosuggestions
cockroach              gitlab-runner          jsonpp                 petsc                  spdlog
coffeescript           glib-networking        libxo                  plantuml               stella
dependency-check       gnome-latex            logtalk                plowshare              stunnel
diffoscope             heroku                 mill                   pre-commit             telegraf
firebase-cli           imagemagick            mongo-c-driver         pumba                  texmath

==> Installing quickmerge from brewsci/bio
==> Installing dependencies for brewsci/bio/quickmerge: mummer, gdbm, openssl, sqlite, python@2
==> Installing brewsci/bio/quickmerge dependency: mummer
==> Downloading https://linuxbrew.bintray.com/bottles-bio/mummer-3.23_3.sierra.bottle.tar.gz
######################################################################## 100.0%
==> Pouring mummer-3.23_3.sierra.bottle.tar.gz
🍺  /usr/local/Cellar/mummer/3.23_3: 147 files, 6.5MB
==> Installing brewsci/bio/quickmerge dependency: gdbm
==> Downloading https://homebrew.bintray.com/bottles/gdbm-1.14.1_1.high_sierra.bottle.tar.gz
######################################################################## 100.0%
==> Pouring gdbm-1.14.1_1.high_sierra.bottle.tar.gz
🍺  /usr/local/Cellar/gdbm/1.14.1_1: 20 files, 555.7KB
==> Installing brewsci/bio/quickmerge dependency: openssl
==> Downloading https://homebrew.bintray.com/bottles/openssl-1.0.2o_1.high_sierra.bottle.tar.gz
######################################################################## 100.0%
==> Pouring openssl-1.0.2o_1.high_sierra.bottle.tar.gz
==> Caveats
A CA file has been bootstrapped using certificates from the SystemRoots
keychain. To add additional certificates (e.g. the certificates added in
the System keychain), place .pem files in
  /usr/local/etc/openssl/certs

and run
  /usr/local/opt/openssl/bin/c_rehash

This formula is keg-only, which means it was not symlinked into /usr/local,
because Apple has deprecated use of OpenSSL in favor of its own TLS and crypto libraries.

If you need to have this software first in your PATH run:
  echo 'export PATH="/usr/local/opt/openssl/bin:$PATH"' >> ~/.bash_profile

For compilers to find this software you may need to set:
    LDFLAGS:  -L/usr/local/opt/openssl/lib
    CPPFLAGS: -I/usr/local/opt/openssl/include

==> Summary
🍺  /usr/local/Cellar/openssl/1.0.2o_1: 1,791 files, 12.3MB
==> Installing brewsci/bio/quickmerge dependency: sqlite
==> Downloading https://homebrew.bintray.com/bottles/sqlite-3.23.1.high_sierra.bottle.tar.gz
######################################################################## 100.0%
==> Pouring sqlite-3.23.1.high_sierra.bottle.tar.gz
==> Caveats
This formula is keg-only, which means it was not symlinked into /usr/local,
because macOS provides an older sqlite3.

If you need to have this software first in your PATH run:
  echo 'export PATH="/usr/local/opt/sqlite/bin:$PATH"' >> ~/.bash_profile

For compilers to find this software you may need to set:
    LDFLAGS:  -L/usr/local/opt/sqlite/lib
    CPPFLAGS: -I/usr/local/opt/sqlite/include

==> Summary
🍺  /usr/local/Cellar/sqlite/3.23.1: 11 files, 3MB
==> Installing brewsci/bio/quickmerge dependency: python@2
==> Downloading https://homebrew.bintray.com/bottles/python@2-2.7.15.high_sierra.bottle.tar.gz
######################################################################## 100.0%
==> Pouring python@2-2.7.15.high_sierra.bottle.tar.gz
==> /usr/local/Cellar/python@2/2.7.15/bin/python -s setup.py --no-user-cfg install --force --verbose --single-version-externally-managed --r
==> /usr/local/Cellar/python@2/2.7.15/bin/python -s setup.py --no-user-cfg install --force --verbose --single-version-externally-managed --r
==> /usr/local/Cellar/python@2/2.7.15/bin/python -s setup.py --no-user-cfg install --force --verbose --single-version-externally-managed --r
==> Caveats
Pip and setuptools have been installed. To update them
  pip install --upgrade pip setuptools

You can install Python packages with
  pip install <package>

They will install into the site-package directory
  /usr/local/lib/python2.7/site-packages

See: https://docs.brew.sh/Homebrew-and-Python
==> Summary
🍺  /usr/local/Cellar/python@2/2.7.15: 4,669 files, 82.7MB
==> Installing brewsci/bio/quickmerge
==> Downloading https://linuxbrew.bintray.com/bottles-bio/quickmerge-0.2.sierra.bottle.tar.gz
######################################################################## 100.0%
==> Pouring quickmerge-0.2.sierra.bottle.tar.gz
🍺  /usr/local/Cellar/quickmerge/0.2: 6 files, 164.0KB

Then, a quick test:

libc++abi.dylib: terminating with uncaught exception of type std::out_of_range: basic_string
Abort trap: 6
sjackman commented 6 years ago

What command did you run?

❯❯❯ quickmerge --help
All options were not supplied :(
Usage: quickmerge -d delta_file.out -q hybrid.fasta -r self.fasta -hco (default=5.0) -c (default=1.5) -l seed_length_cutoff -ml merging_length_cutoff 
sjackman commented 6 years ago

@jpummil Try using the GitHub web interface to edit canu.rb Navigate to the canu formula https://github.com/brewsci/homebrew-bio/blob/master/Formula/canu.rb then click the pencil edit icon. Then add

  revision 1

below sha256 and submit the pull request.

jpummil commented 6 years ago

Shaun,

On quickmerge, I successfully executed the first two steps described in the "Manual" operation of the package listed here:

https://github.com/mahulchak/quickmerge

It's when I executed the final step that I got the error:

quickmerge -d out.rq.delta -q hybrid_assembly.fasta -r self_assembly.fasta -hco 5.0 -c 1.5 -l n -ml m
jpummil commented 6 years ago

Shaun,

Believe I successfully added the revision 1 piece and submitted the pull request.

sjackman commented 6 years ago

Regarding quickmerge, that may be a bug in quickmerge. I'd suggest contacting the developers of quickmerge.

stale[bot] commented 6 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs.

sjackman commented 6 years ago

This issue is addressed by PR #285.