---- [email protected] wrote:
>
> ---- Joe Lewis <[email protected]> wrote:
> > On 6/21/12 5:49 PM, [email protected] wrote:
> > > ---- [email protected] wrote:
> > >> ---- Sorin Manolache<[email protected]> wrote:
> > >>> And I forgot to say: run gdb in some sort of environment where you see
> > >>> your current source code line and a couple of surrounding lines. You
> > >>> could achieve this with the "list" command, but I prefer running gdb in
> > >>> emacs and let emacs do the nice listing of source code in a different
> > >>> panel.
> > >>>
> > >>> S
> > >>
> > >> Here's the function from my source. It's the original from
> > >> mod_headers.c, plus my printf:
> > >>
> > >>
> > >> static int header_post_config(apr_pool_t *pconf, apr_pool_t *plog,
> > >> apr_pool_t *ptemp, server_rec *s)
> > >> {
> > >> printf("In header_post_config\n");
> > >> header_ssl_lookup = APR_RETRIEVE_OPTIONAL_FN(ssl_var_lookup);
> > >> return OK;
> > >> }
> > >>
> > >> Jim
> > >
> > > Hi,
> > >
> > > I was able to get the segfault to go away. Here's what I had to do:
> > >
> > > - Created /etc/ld.so.conf.d/my.conf, and added the directory where my
> > > libobaccess.so was
> > > - Run 'ldconfig' to activate.
> > > - In the apxs command, DON'T include the -L and -l arguments
> > >
> > > After that, Apache appears to start ok, without segfault :)!!
> > >
> > > Thanks for all of the great help, esp. the suggestion about checking
> > > "ldconfig -p". I still don't understand why, but I'm just glad that I
> > > can get past this piece so now I can debug my module :)...
> > >
> > > Later,
> > > Jim
> > I'm just glad this list is as good as it is!
> >
> > FYI, the ldconfig is the dynamic linker control, and those
> > /etc/ld.so.conf.d files provide additional search directories for the
> > linker to check in when loading a library.
> >
> > Joe
> > --
> > http://www.silverhawk.net/
>
>
> Hi,
>
> Sorry to report, but my earlier report was a "false positive" :)...
>
> I forgot that the mod_headers.c that I was doing the earlier testing with had
> all references to the libobaccess.so removed :(!!
>
> So, I'm still stuck with basically the same problem, now, working with my
> "full" code, with the calls in it:
>
> - If I compile with -L and -l, Apache segfaults when it starts
>
> - If I compile without -L and -l, then I get "undefined symbol" errors when I
> try to start Apache, e.g.:
>
> [root@apachemodule build-mod_headers]# /apps/httpd2222/bin/apachectl -k start
> -X
> httpd: Syntax error on line 84 of /apps/httpd2222/conf/httpd.conf: Cannot
> load /apps/httpd2222/modules/mod_headers.so into server:
> /apps/httpd2222/modules/mod_headers.so: undefined symbol:
> ObResource_isProtected
>
> That "ObResource_isProtected" should be a symbol in libobaccess.so, and in
> fact, if I do "nm --dynamic", I get:
>
> [root@apachemodule build-mod_headers]# nm --dynamic
> /apps/netpoint/lib64/libobaccess.so | grep "ObResource_isProtected"
> 00000000000a6d80 T ObResource_isProtected
> [root@apachemodule build-mod_headers]#
>
>
> I'm *assuming* that the reason for the "undefined symbol" error is that
> libobaccess.so is actually not being loaded, but then when I try to load
> libobaccess.so, either via -L and -l in the apxs, or using LoadFile in
> httpd.conf, I get the segfault (same gdb info, BTW).
>
> Catch-22?
>
> Sorry for the false alarm :(!!
>
> Jim
>
>
Hi,
Also, BTW, now that I have the ld.so.conf.d setup, I can do "ldconfig -p" and
get:
[root@apachemodule build-mod_headers]# ldconfig -p | grep libob
libobaccess.so (libc6,x86-64) => /apps/netpoint/lib64/libobaccess.so
The library TYPE ("libc6") is the same with other .so files that are use, e.g.,
the libssl*.so, when I list them with ldconfig.
Sill don't understand why loading that libobaccess.so causes Apache to segfault
:(...
Jim