Skip to content
This repository has been archived by the owner on Jul 4, 2023. It is now read-only.

graphicsmagick fails to compile with gcc-5 in superenv #48402

Closed
felixbuenemann opened this issue Jan 23, 2016 · 5 comments
Closed

graphicsmagick fails to compile with gcc-5 in superenv #48402

felixbuenemann opened this issue Jan 23, 2016 · 5 comments

Comments

@felixbuenemann
Copy link
Sponsor Contributor

I'm trying to enable openmp support in the graphicsmagick formula, which causes a compilerswitch to from clang gcc-5.

Howerver compilation fails due to some issue with the homebrew build environment. If I compile graphicsmagick outside of homebrew it compiles fine, so it does not seem to be a general issue with gcc 5, but rather how superenv sets up the environment.

To reproduce use: brew install graphicsmagick --cc=gcc-5 and make sure the gcc formula is installed.

The errors are:

libtool: link: gcc-5 -g -O2 -Wall -D_THREAD_SAFE -o utilities/.libs/gm utilities/gm.o  -L/usr/local/Cellar/freetype/2.6_1/lib -L/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/usr/lib magick/.libs/libGraphicsMagick.dylib -lfreetype -llzma -lbz2 -lz -lltdl -lm -lpthread
Undefined symbols for architecture x86_64:
  "std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::copy(char*, unsigned long, unsigned long) const", referenced from:
      Magick::Image::fileName(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) in Magick___lib_libGraphicsMagick___la-Image.o
      Magick::Image::magick(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) in Magick___lib_libGraphicsMagick___la-Image.o
      Magick::Montage::updateMontageInfo(MagickLib::_MontageInfo&) const  in Magick___lib_libGraphicsMagick___la-Montage.o
      Magick::Options::fileName(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) in Magick___lib_libGraphicsMagick___la-Options.o
  "std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_dispose()", referenced from:
      Magick::Blob::base64[abi:cxx11]() in Magick___lib_libGraphicsMagick___la-Blob.o
      Magick::CoderInfo::CoderInfo(Magick::CoderInfo const&) in Magick___lib_libGraphicsMagick___la-CoderInfo.o
      Magick::CoderInfo::CoderInfo(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) in Magick___lib_libGraphicsMagick___la-CoderInfo.o
      Magick::CoderInfo::CoderInfo(MagickLib::_MagickInfo const*) in Magick___lib_libGraphicsMagick___la-CoderInfo.o
      Magick::CoderInfo::~CoderInfo() in Magick___lib_libGraphicsMagick___la-CoderInfo.o
      Magick::CoderInfo::~CoderInfo() in Magick___lib_libGraphicsMagick___la-CoderInfo.o
      Magick::Color::operator=(char const*) in Magick___lib_libGraphicsMagick___la-Color.o
      ...
  "std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_S_copy_chars(char*, char const*, char const*)", referenced from:
      std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, std::allocator<char> const&) [clone .isra.31] in Magick___lib_libGraphicsMagick___la-Color.o
      void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char const*>(char const*, char const*, std::forward_iterator_tag) [clone .isra.249] in Magick___lib_libGraphicsMagick___la-Drawable.o
      void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char const*>(char const*, char const*, std::forward_iterator_tag) [clone .isra.32] in Magick___lib_libGraphicsMagick___la-Exception.o
      Magick::Geometry::operator=(char const*) in Magick___lib_libGraphicsMagick___la-Geometry.o
      void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char const*>(char const*, char const*, std::forward_iterator_tag) [clone .isra.49] in Magick___lib_libGraphicsMagick___la-Image.o
      std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, std::allocator<char> const&) [clone .isra.29] in Magick___lib_libGraphicsMagick___la-Options.o
      void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char const*>(char const*, char const*, std::forward_iterator_tag) [clone .isra.76] in Magick___lib_libGraphicsMagick___la-STL.o
      ...
  "std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_S_copy_chars(char*, char*, char*)", referenced from:
      void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) [clone .isra.33] in Magick___lib_libGraphicsMagick___la-Blob.o
      void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) [clone .isra.32] in Magick___lib_libGraphicsMagick___la-CoderInfo.o
  "std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::append(char const*)", referenced from:
      Magick::throwException(MagickLib::_ExceptionInfo&, bool)   in Magick___lib_libGraphicsMagick___la-Exception.o
      std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > std::operator+<char, std::char_traits<char>, std::allocator<char> >(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, char const*) in Magick___lib_libGraphicsMagick___la-Image.o
  "std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::append(char const*, unsigned long)", referenced from:
      std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > std::operator+<char, std::char_traits<char>, std::allocator<char> >(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) in Magick___lib_libGraphicsMagick___la-Exception.o
  "std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::append(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)", referenced from:
      std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > std::operator+<char, std::char_traits<char>, std::allocator<char> >(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) in Magick___lib_libGraphicsMagick___la-Exception.o
      Magick::Image::defineSet(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool) in Magick___lib_libGraphicsMagick___la-Image.o
  "std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long)", referenced from:
      std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > std::operator+<char, std::char_traits<char>, std::allocator<char> >(char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) in Magick___lib_libGraphicsMagick___la-Exception.o
  "std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_assign(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)", referenced from:
      Magick::CoderInfo::CoderInfo(Magick::CoderInfo const&) in Magick___lib_libGraphicsMagick___la-CoderInfo.o
      Magick::CoderInfo::CoderInfo(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) in Magick___lib_libGraphicsMagick___la-CoderInfo.o
      Magick::CoderInfo::operator=(Magick::CoderInfo const&) in Magick___lib_libGraphicsMagick___la-CoderInfo.o
      Magick::Exception::operator=(Magick::Exception const&) in Magick___lib_libGraphicsMagick___la-Exception.o
      Magick::Image::formatExpression(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) in Magick___lib_libGraphicsMagick___la-Image.o
  "std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long)", referenced from:
      void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) [clone .isra.33] in Magick___lib_libGraphicsMagick___la-Blob.o
      void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) [clone .isra.32] in Magick___lib_libGraphicsMagick___la-CoderInfo.o
      std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, std::allocator<char> const&) [clone .isra.31] in Magick___lib_libGraphicsMagick___la-Color.o
      void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char const*>(char const*, char const*, std::forward_iterator_tag) [clone .isra.249] in Magick___lib_libGraphicsMagick___la-Drawable.o
      void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char const*>(char const*, char const*, std::forward_iterator_tag) [clone .isra.32] in Magick___lib_libGraphicsMagick___la-Exception.o
      Magick::Geometry::operator=(char const*) in Magick___lib_libGraphicsMagick___la-Geometry.o
      void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char const*>(char const*, char const*, std::forward_iterator_tag) [clone .isra.49] in Magick___lib_libGraphicsMagick___la-Image.o
      ...
  "std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::push_back(char)", referenced from:
      Magick::Geometry::operator std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >[abi:cxx11]() const in Magick___lib_libGraphicsMagick___la-Geometry.o
  "std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator+=(char const*)", referenced from:
      Magick::Geometry::operator std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >[abi:cxx11]() const in Magick___lib_libGraphicsMagick___la-Geometry.o
  "std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator+=(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)", referenced from:
      Magick::throwException(MagickLib::_ExceptionInfo&, bool)   in Magick___lib_libGraphicsMagick___la-Exception.o
      Magick::Image::Image(Magick::Geometry const&, Magick::Color const&) [clone .constprop.63] in Magick___lib_libGraphicsMagick___la-Image.o
  "std::__detail::_List_node_base::_M_hook(std::__detail::_List_node_base*)", referenced from:
      std::__cxx11::list<Magick::Coordinate, std::allocator<Magick::Coordinate> >::list(unsigned long, Magick::Coordinate const&, std::allocator<Magick::Coordinate> const&) [clone .isra.262] [clone .constprop.312] in Magick___lib_libGraphicsMagick___la-Drawable.o
      std::__cxx11::list<Magick::Coordinate, std::allocator<Magick::Coordinate> >::list(std::__cxx11::list<Magick::Coordinate, std::allocator<Magick::Coordinate> > const&) in Magick___lib_libGraphicsMagick___la-Drawable.o
      std::__cxx11::list<Magick::VPath, std::allocator<Magick::VPath> >::list(std::__cxx11::list<Magick::VPath, std::allocator<Magick::VPath> > const&) in Magick___lib_libGraphicsMagick___la-Drawable.o
      std::__cxx11::list<Magick::PathArcArgs, std::allocator<Magick::PathArcArgs> >::_M_fill_initialize(unsigned long, Magick::PathArcArgs const&) in Magick___lib_libGraphicsMagick___la-Drawable.o
      std::__cxx11::list<Magick::PathArcArgs, std::allocator<Magick::PathArcArgs> >::list(std::__cxx11::list<Magick::PathArcArgs, std::allocator<Magick::PathArcArgs> > const&) in Magick___lib_libGraphicsMagick___la-Drawable.o
      std::__cxx11::list<Magick::PathCurvetoArgs, std::allocator<Magick::PathCurvetoArgs> >::_M_fill_initialize(unsigned long, Magick::PathCurvetoArgs const&) in Magick___lib_libGraphicsMagick___la-Drawable.o
      std::__cxx11::list<Magick::PathCurvetoArgs, std::allocator<Magick::PathCurvetoArgs> >::list(std::__cxx11::list<Magick::PathCurvetoArgs, std::allocator<Magick::PathCurvetoArgs> > const&) in Magick___lib_libGraphicsMagick___la-Drawable.o
      ...
ld: symbol(s) not found for architecture x86_64
collect2: error: ld returned 1 exit status
make[1]: *** [Magick++/lib/libGraphicsMagick++.la] Error 1
make[1]: *** Waiting for unfinished jobs....
libtool: link: (cd "wand/.libs" && rm -f "libGraphicsMagickWand.dylib" && ln -s "libGraphicsMagickWand.2.dylib" "libGraphicsMagickWand.dylib")
libtool: link: ( cd "wand/.libs" && rm -f "libGraphicsMagickWand.la" && ln -s "../libGraphicsMagickWand.la" "libGraphicsMagickWand.la" )
make: *** [install] Error 2

I'm happy to post more detailed info if you can't reproduce. System is 10.11.4-x86_64 / Xcode 7.2.

@tdsmith
Copy link
Contributor

tdsmith commented Jan 24, 2016

@tdsmith
Copy link
Contributor

tdsmith commented Jan 24, 2016

I see an identical error with CC=gcc-5 CXX=g++-5 ./configure --prefix $PWD/install --with-modules --without-x --enable-shared --disable-static --disable-openmp --with-quantum-depth=16 && make outside of Homebrew: https://gist.github.com/tdsmith/4567625468d40780a96b

@felixbuenemann
Copy link
Sponsor Contributor Author

Hmm, I just used CC=gcc-5 CXX=g++-5 ./configurewhen compiling outside homebrew. If I use your flags it also fails…

@felixbuenemann
Copy link
Sponsor Contributor Author

If I remove --enable-shared --disable-static the compile works.

@MikeMcQuaid
Copy link
Member

If this is still broken: we'll accept PRs for this but we're not actively working on it at this time.

@Homebrew Homebrew locked and limited conversation to collaborators Aug 18, 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

4 participants