3

I'm trying to get Passenger working on Mountain Lion after the upgrade from 10.7, but I'm having issues when running passenger-install-apache2-module:

g++ ext/apache2/HelperAgent.cpp -o agents/apache2/PassengerHelperAgent -Iext -Iext/common -D_REENTRANT -I/usr/local/include -DHASH_NAMESPACE="__gnu_cxx" -DHASH_FUN_H="<ext/hash_fun.h>" -DHAS_ALLOCA_H -DHAS_SFENCE -DHAS_LFENCE -Wall -Wextra -Wno-unused-parameter -Wno-parentheses -Wpointer-arith -Wwrite-strings -Wno-long-long -Wno-missing-field-initializers -g -DPASSENGER_DEBUG -DBOOST_DISABLE_ASSERTS ext/common/libpassenger_common.a ext/common/libboost_oxt.a -lpthread  
Undefined symbols for architecture x86_64:
  "_regcompA", referenced from:
      Passenger::FilterSupport::Filter::Value::Value(bool, Passenger::StaticString const&, bool)in libpassenger_common.a(aggregate.o)
      Passenger::FilterSupport::Filter::Value::initializeFrom(Passenger::FilterSupport::Filter::Value const&)in libpassenger_common.a(aggregate.o)
  "_regexecA", referenced from:
      Passenger::FilterSupport::Filter::Comparison::compareStringOrRegexp(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, Passenger::FilterSupport::Context const&)in libpassenger_common.a(aggregate.o)
  "_regfreeA", referenced from:
      Passenger::FilterSupport::Filter::Value::freeStorage()    in libpassenger_common.a(aggregate.o)
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status
rake aborted!
Command failed with status (1): [g++ ext/apache2/HelperAgent.cpp -o agents/...]

All the required software checks are green.

I've installed the PCRE headers as suggested in the Phusion blog post, although that was a bit of a gamble since it's aimed at Nginx issues.

Does anyone have any ideas?

Thanks, Griff

Griff
  • 31
  • 2
  • are you using a packet manager? I had the same issue with homebrew and fixed it by uninstalling homebrew and reinstalling everything. – gnzlbg Dec 03 '12 at 15:47
  • I'm installing Passenger from the gem. I do have homebrew installed, though I'm pretty sure that Apache, Ruby etc. weren't installed through it. Might be worth uninstalling it and trying again in any event – Griff Dec 04 '12 at 16:22
  • Try uninstalling boost if you have installed it with homebrew. For me that was the deal. – gnzlbg Dec 05 '12 at 17:32

1 Answers1

0

This is a separate problem from the PCRE problem. Phusion Passenger uses regexp functions from the POSIX standard.

At first appearance, this error seems to be implying that OS X 10.8 does not support POSIX regexp functions. But that would be a very strange conclusion seeing that:

  • 10.6 and 10.7 supported them just fine.
  • the header file regex.h is available, otherwise you would get a compiler error about regex.h missing instead of this linker error.
  • even Apple claims to officially support it.

The only conclusion I can draw at the moment is that either your system is broken, or OS X 10.8 has become broken. I am on holidays right now, ping times to Europe and the US are over 1000+ ms, and I don't have OS X 10.8, so I cannot further analyze the problem right now. As such, short-term advice I can give you are:

  • Reinstall your system.
  • Contact Apple for support.
Hongli Lai
  • 2,112
  • 4
  • 22
  • 27