---- 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