I get that error using the dist (cygwin) copy. It's the reason i tried
compiling from scratch in the first place as I couldn't find anything other
then very techie explanations of running sysv memory configuration tools on
unix (read: non-cygwin) systems to fix Mutex allocation errors.  I finally
found a post last night that gave alternate suggestions to set the apache2
Mutex to posixsem, but even the poster of that change asked (and wasn't
answered) if it was correct. (I found other posts suggested pthread was how
cygwin handled mutex, but found no options to enable pthread in apache2)

SW

On Thu, Feb 17, 2022 at 10:35 AM Jon Turney <jon.tur...@dronecode.org.uk>
wrote:

> On 14/02/2022 22:25, Scott Wood wrote:
> > I'm trying to compile a current version of apache2 httpd under the
> cygwin64
> > environment. There is an older version of apache2 compiled in cygwin but
> > it's orphaned and didn't include some of the ssl libs I needed.
> >
> > When I try to compile it's failing when trying to compile the
> > mod_cache_disk module:
> >
> > --------- modules/cache make results start ---------
> [...]
> > /usr/share/apr/build-1/libtool --silent --mode=link gcc       -L/usr/lib
> > -no-undefined -shrext .so -Wl,/usr/src/httpd-2.4.52/libhttpd.dll.a
> >   -L/usr/lib -R/usr/lib -laprutil-1 -ldb-5.3 -lgdbm -lexpat -liconv
> > -L/usr/lib -R/usr/lib -lapr-1 -luuid -lcrypt -lpthread  -o
> mod_cache_disk.la
> > -rpath /usr/local/apache2/modules -module -avoid-version
> mod_cache_disk.lo
> > /usr/lib/gcc/x86_64-pc-cygwin/11/../../../../x86_64-pc-cygwin/bin/ld:
> > .libs/mod_cache_disk.o:mod_cache_disk:(.text+0x47): undefined reference
> to
> > `ap_cache_generate_name'
> > /usr/lib/gcc/x86_64-pc-cygwin/11/../../../../x86_64-pc-cygwin/bin/ld:
> > .libs/mod_cache_disk.o:mod_cache_disk:(.text+0x12d): undefined reference
> to
> > `ap_cache_generate_name'
> > /usr/lib/gcc/x86_64-pc-cygwin/11/../../../../x86_64-pc-cygwin/bin/ld:
> > .libs/mod_cache_disk.o:mod_cache_disk:(.text+0x3f32): undefined reference
> > to `ap_cache_cacheable_headers_out'
> > /usr/lib/gcc/x86_64-pc-cygwin/11/../../../../x86_64-pc-cygwin/bin/ld:
> > .libs/mod_cache_disk.o:mod_cache_disk:(.text+0x3f59): undefined reference
> > to `ap_cache_cacheable_headers_in'
> > collect2: error: ld returned 1 exit status
> > make[4]: *** [/usr/src/httpd-2.4.52/modules/cache/modules.mk:6:
> > mod_cache_disk.la] Error 1
> > make[4]: Leaving directory '/usr/src/httpd-2.4.52/modules/cache'
> > make[3]: *** [/usr/src/httpd-2.4.52/build/rules.mk:117:
> > shared-build-recursive] Error 1
> > make[3]: Leaving directory '/usr/src/httpd-2.4.52/modules/cache'
> > make[2]: *** [/usr/src/httpd-2.4.52/build/rules.mk:117:
> > shared-build-recursive] Error 1
> > make[2]: Leaving directory '/usr/src/httpd-2.4.52/modules'
> > make[1]: *** [/usr/src/httpd-2.4.52/build/rules.mk:117:
> > shared-build-recursive] Error 1
> > make[1]: Leaving directory '/usr/src/httpd-2.4.52'
> > make: *** [/usr/src/httpd-2.4.52/build/rules.mk:75: all-recursive]
> Error 1
> > --------- modules/cache make results end ---------
> >
> >
> > Digging up the old version in the cygwin ports, I found the patch files,
> > but trying to manually apply a patch to the modules/cache/config.m4
> didn't
> > seem to fix the problem. It appears the patch is saying that the symbols
> > I'm getting the errors upon exist in the 'main cache module' and thus
> it's
> > changing a value of 'cache_disk_objs' in the m4 file to include mod_cache
> > symbols when compiling/linking mod_disk_cache (but as you can see above,
> > there appears to be no mention of mod_cache.* anything in the gcc or
> linker
> > calls for mod_disk_cache)
> >
> > patched lines from modules/cache/config.m4 is primarily adding cygwin to
> > the OS/2 rule:
> >
> > ------- relevant patched lines from modules/cache/config.m4 start -------
> > cache_disk_objs="mod_cache_disk.lo"
> > cache_socache_objs="mod_cache_socache.lo"
> >
> > case "$host" in
> >    *os2*|*cygwin*)
> >      # OS/2 DLLs must resolve all symbols at build time
> >      # and we need some from main cache module
> >      cache_disk_objs="$cache_disk_objs mod_cache.la"
> >      cache_socache_objs="$cache_socache_objs mod_cache.la"
> >      ;;
> > esac
> >
> > APACHE_MODULE(cache, dynamic file caching.  At least one storage
> management
> > module (e.g. mod_cache_disk) is also necessary., $cache_objs, , most)
> > APACHE_MODULE(cache_disk, disk caching module, $cache_disk_objs, , most,
> ,
> > cache)
> > APACHE_MODULE(cache_socache, shared object caching module,
> > $cache_socache_objs, , most)
> > ------- relevant patched lines from modules/cache/config.m4 end -------
> >
> > My C/make is rusty and I'm not sure the syntax to get it to properly pick
> > up the symbols.
> >
> > Can anyone help me figure out how to get this thing to compile? The patch
> > included similar includes in other module directories so I probably have
> to
> > apply similar fixes elsewhere.
>
> Just applying the patch to the .m4 file is probably not sufficient.
> You'll need to run autoreconf (to regenerate the configury), then run
> the ./configure script, for that change to actually appear in the
> generated Makefile.
>
>
>

-- 
Problem reports:      https://cygwin.com/problems.html
FAQ:                  https://cygwin.com/faq/
Documentation:        https://cygwin.com/docs.html
Unsubscribe info:     https://cygwin.com/ml/#unsubscribe-simple

Reply via email to