---- Joe Lewis <j...@joe-lewis.com> wrote: 
> On 6/21/12 1:40 PM, oh...@cox.net wrote:
> > ---- oh...@cox.net wrote:
> >> ---- Sorin Manolache<sor...@gmail.com>  wrote:
> >>> On 2012-06-21 19:47, oh...@cox.net wrote:
> >>>
> >>>> I've tried using "-l" pointing directly to the .so, libobaccess.so, but 
> >>>> when I do that, it says it can't find the .so:
> >>>>
> >>>> [root@apachemodule build-mod_headers]# ./compile-mod-headers.sh
> >>>> /apps/httpd2222/build/libtool --silent --mode=compile gcc -prefer-pic   
> >>>> -DLINUX=2 -D_REENTRANT -D_GNU_SOURCE -g -O2 -pthread 
> >>>> -I/apps/httpd2222/include  -I/apps/httpd2222/include   
> >>>> -I/apps/httpd2222/include   -c -o mod_headers.lo mod_headers.c&&  touch 
> >>>> mod_headers.slo
> >>>> /apps/httpd2222/build/libtool --silent --mode=link gcc -o mod_headers.la 
> >>>>  -l/apps/netpoint/AccessServerSDK/oblix/lib/libobaccess.so -rpath 
> >>>> /apps/httpd2222/modules -module -avoid-version    mod_headers.lo
> >>>> /usr/bin/ld: cannot find 
> >>>> -l/apps/netpoint/AccessServerSDK/oblix/lib/libobaccess.so
> >>>> collect2: ld returned 1 exit status
> >>>> apxs:Error: Command failed with rc=65536
> >>> Try -lobaccess
> >>>
> >>> S
> >>
> >> Sorin,
> >>
> >> I was able to get Apache to start, kind of, using the apxs I posted, but 
> >> adding LoadFile directives to the Apache httpd.conf, to load 
> >> libobaccess.so.
> >>
> >> Now, when I run "apachectl -t", it says "OK", but when I try to actually 
> >> start Apache, I get a segfault (see below).  The thing is, I have a bunch 
> >> of printfs in almost every function in mod_headers.c, so I could see what 
> >> functions are being called, and it looks like the segfault is occurring 
> >> even before it gets to any of the code parts that I've tweaked (vs. 
> >> original mod_headers.c):
> >>
> >>
> >> [root@apachemodule build-mod_headers]# /apps/httpd2222/bin/apachectl -k 
> >> start -X
> >> mod_headers-jl V0.09 - start calling OAM API
> >> In register_hooks
> >> In create_headers_dir_config
> >> In create_headers_dir_config
> >> In header_cmd
> >> In header_inout_cmd
> >> In parse_format_tag
> >> In parse_misc_string
> >> In create_headers_dir_config
> >> In header_cmd
> >> In header_inout_cmd
> >> In parse_format_tag
> >> In parse_misc_string
> >> In header_post_config
> >>
> >> I tried running strace, and got (the ending of the strace):
> >>
> >>
> >> In register_hooks
> >> In create_headers_dir_config
> >> In create_headers_dir_config
> >> In header_cmd
> >> In header_inout_cmd
> >> In parse_format_tag
> >> In parse_misc_string
> >> In create_headers_dir_config
> >> In header_cmd
> >> In header_inout_cmd
> >> In parse_format_tag
> >> In parse_misc_string
> >> In header_post_config
> >> rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
> >> rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
> >> rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
> >> rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
> >> rt_sigaction(SIGINT, {0x432cc0, [], SA_RESTORER, 0x351432e300}, {SIG_DFL}, 
> >> 8) = 0
> >> wait4(-1, [{WIFSIGNALED(s)&&  WTERMSIG(s) == SIGSEGV}], 0, NULL) = 11711
> >> fstat(2, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 5), ...}) = 0
> >> mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 
> >> 0x2a983bf000
> >> open("/usr/share/locale/locale.alias", O_RDONLY) = 3
> >> fstat(3, {st_mode=S_IFREG|0644, st_size=2528, ...}) = 0
> >> mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 
> >> 0x2a983c0000
> >> read(3, "# Locale name alias data base.\n#"..., 4096) = 2528
> >> read(3, "", 4096)                       = 0
> >> close(3)                                = 0
> >> munmap(0x2a983c0000, 4096)              = 0
> >> open("/usr/share/locale/en_US.UTF-8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 
> >> ENOENT (No such file or directory)
> >> open("/usr/share/locale/en_US.utf8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 
> >> ENOENT (No such file or directory)
> >> open("/usr/share/locale/en_US/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT 
> >> (No such file or directory)
> >> open("/usr/share/locale/en.UTF-8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 
> >> ENOENT (No such file or directory)
> >> open("/usr/share/locale/en.utf8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 
> >> ENOENT (No such file or directory)
> >> open("/usr/share/locale/en/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No 
> >> such file or directory)
> >> write(2, "/apps/httpd2222/bin/apachectl: l"..., 
> >> 83/apps/httpd2222/bin/apachectl: line 78: 11711 Segmentation fault      
> >> $HTTPD $ARGV
> >> ) = 83
> >> rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
> >> --- SIGCHLD (Child exited) @ 0 (0) ---
> >> wait4(-1, 0x7fbfffed64, WNOHANG, NULL)  = -1 ECHILD (No child processes)
> >> rt_sigreturn(0xffffffffffffffff)        = 0
> >> rt_sigaction(SIGINT, {SIG_DFL}, {0x432cc0, [], SA_RESTORER, 0x351432e300}, 
> >> 8) = 0
> >> rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
> >> read(255, "\nexit $ERROR\n\n", 3420)    = 14
> >> rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
> >> rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
> >> exit_group(139)                         = ?
> >>
> >>
> >> I'll try to do the apxs with -lobccess and post back...
> >>
> >> Jim
> >
> > Hi,
> >
> > It looks like just including the .so in the apxs command is enough to cause 
> > the segfault, even if I remove all references to the functions in the .so 
> > from my module code.
> >
> > Is there something else I need to do when using my module that uses 
> > "external" .so files?
> >
> > Jim
> 
> You may need to ensure the .so is in your ldconfig paths.  If you do an 
> "ldconfig -p" and grep for your module, it should show up.  
> Additionally, on your compile, split your -l/-L into two parts :
> 
> -L/apps/netpoint/AccessServerSDK/oblix/lib/ -llibobaccess
> 
> See if that behaves any differently.
> 
> Joe
> --
> http://www.silverhawk.net/


Hi,

ldconfig -p doesn't list either "header" or "obaccess":


[root@apachemodule build-mod_headers]# ldconfig -p | grep obaccess
[root@apachemodule build-mod_headers]#
[root@apachemodule build-mod_headers]#
[root@apachemodule build-mod_headers]# ldconfig -p | grep header
[root@apachemodule build-mod_headers]#
[root@apachemodule build-mod_headers]#


FYI, I've been using both -L and -l together as you mentioned.

Jim

Reply via email to