You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@httpd.apache.org by Peter Musolino <mu...@pegasus.montclair.edu> on 2002/06/03 17:31:26 UTC

Compiling Apache 1.3.24 with enable-rule=SHARED_CORE on Mac OS X 10.1.4

I have run into a problem getting the enable-rule=SHARED_CORE option to 
compile under
Mac OSX v10.1.4.  I am using gcc 2.95.2 to compile apache 1.3.24.  

The problem is during the compile when making the libhttpd.ep program, 
it uses the -lhttpd flag, which will look for libhttpd.so which is 
compiled right before libhttpd.ep.  Here is the exact error:

gcc -c  -I./os/unix -I./include   -DDARWIN -DUSE_HSREGEX  -DSHARED_CORE 
`./apaci` modules.c
gcc -c  -I./os/unix -I./include   -DDARWIN -DUSE_HSREGEX  -DSHARED_CORE 
`./apaci` buildmark.c
cc  -bundle -undefined suppress -flat_namespace -o libhttpd.so 
buildmark.o modules.o modules/standard/libstandard.a main/libmain.a 
./os/unix/libos.a ap/libap.a regex/libregex.a  

gcc  -I./os/unix -I./include   -DDARWIN -DUSE_HSREGEX  -DSHARED_CORE 
`./apaci`    \
      -o libhttpd.ep -DSHARED_CORE_TIESTATIC main/http_main.c \
          -L. -lhttpd -lldap -llber -lssl -L/sw/lib 
-L/Users/pmusolin/httpdstuff/apache_1.3.24/src/libhttpd.so -lexpat -ldl
/usr/bin/ld: can't locate file for: -lhttpd
make: *** [libhttpd.ep] Error 1

I did some research, and what I came up with is that Darwin, when 
looking for dynamic libraries with the -l flag, does not look for 
anything but libraries ending in .a or .dylib.  It will not allow  
mach-o bundles to be used.  The first thing I tried was changing the 
SHLIB_SUFFIX_NAME
to dylib in the src/Makefile.  This is the error I received:

gcc  -I./os/unix -I./include   -DDARWIN -DUSE_HSREGEX  -DSHARED_CORE 
`./apaci`    \
      -o libhttpd.ep -DSHARED_CORE_TIESTATIC main/http_main.c \
          -L. -lhttpd -lldap -llber -lssl -L/sw/lib 
-L/Users/pmusolin/httpdstuff/apache_1.3.24/src/libhttpd.so -lexpat -ldl
/usr/bin/ld: ./libhttpd.dylib is input for the dynamic link editor, is 
not relocatable by the static link editor again
make: *** [libhttpd.ep] Error 1

I tried the same thing with .a as a suffix, and got the same error.
Next I tried changing the line in the src/Makefile defining how to 
compile the libhttpd.so, where I changed LDFLAGS_SHLIB=$(EXTRA_LDFLAGS) 
-bundle to be -dylib
This gave me the original error of not being able to locate -lhttpd
I changed the SHLIB_SUFFIX_NAME option to dylib once again and got the 
same error I received when doing so before.

I did more searching and found that there is an API to include bundles 
using either dlopen() and NSLinkModule() but I am not exactly sure where 
these would come into play in the source.


Just as some background, I am trying to get auth_ldap to work on this 
platform, and I have bee
n unsuccessful.  I used a slight variation under solaris 8 x86 of the 
configure line below and had no trouble when it came to getting that 
module to work, but under OS X, i have symbol table resolution problems. 
 But that is something I have already asked on the auth_ldap mailing 
list. The problem I am having is apache related.

 LIBS="-lldap -llber -lssl -L/sw/lib 
-L/Users/pmusolin/httpdstuff/apache_1.3.24/src" ./configure 
--enable-module=most --enable-shared=max --with-layout=Apache 
--enable-rule=SHARED_CORE

I have also set my DYLD_LIBRARY_PATH to include all the proper paths to 
any library I should theoretically need.
I have the fink package installed which includes a few libs as well, 
though I don't believe it is causing any problems.

Can anyone successfully compiled apache 1.3.24 on OS 10 with the 
SHARED_CORE rule?  If so what am I doing wrong?  Otherwise any 
information to send me in the right direction would be much appreciated.


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
For additional commands, e-mail: users-help@httpd.apache.org