Disclosure: My autotools expertise is not that great. In fact, since I've been in Ruby & Java mostly the last few years, I may be missing something obvious at the ld or gcc level. This is all with a fresh 2.2.6 tarball downloaded earlier this week. This note to both [EMAIL PROTECTED] & [EMAIL PROTECTED] because the problem seems to be in the crack between them.

I got here because apr_global_mutex_create() was acting weird, so I wanted to step into it with the debugger. So I went to apr and did

CFLAGS=-g ./configure
make

Oops...
network_io/unix/sendrecv.c:967:2: error: #error APR has detected sendfile on your system, but nobody has written a network_io/unix/sendrecv.c:968:2: error: #error version of it for APR yet. To get past this, either write network_io/unix/sendrecv.c:969:2: error: #error apr_socket_sendfile or change APR_HAS_SENDFILE in apr.h to 0.

Hmph. So I tried changing APR_HAS_SENDFILE in apr.h to 0 and make/ make install worked.

But... I couldn't get httpd to build with my new APR living in /usr/ local/apr. I think this is because httpd's configure writes build/ config_vars.mk including this:

LDFLAGS = -L/usr/lib -L/usr/local/apr/lib

So, it's irrelevant how you go about building APR, you're gonna get the one that Leopard ships in /usr/lib (and hey, it's nice that Leopard ships with APR).

I tried a few ./configure options but couldn't find one to force it to change the -L, so I eventually went and edited build/config_vars.mk, blecch.

But then httpd wouldn't build, on the final "-o httpd" step I got

Undefined symbols:
  "_apr_socket_sendfile", referenced from:
      _ap_hack_apr_socket_sendfile in libmain.a(exports.o)
      _sendfile_it_all in libmain.a(core_filters.o)
ld: symbol(s) not found

Hokay... I suspect it's most likely that's I'm just ignorant of something obvious that Everybody Knows. If so, what is it?

It does seem like it shouldn't be this hard.  -Tim



Reply via email to