Apache does not load with mod_fcgid Reproducible: Always Steps to Reproduce: 1. emerge mod_fcgid 2. Add APACHE2_OPTS="$APACHE2_OPTS -D FCGID" to /etc/conf.d/apache2 3. /etc/init.d/apache2 restart Actual Results: root@linwood apache2 # /etc/init.d/apache2 restart * Apache2 has detected a syntax error in your configuration files: Syntax error on line 3 of /etc/apache2/modules.d/20_mod_fcgid.conf: Cannot load /usr/lib/apache2/modules/mod_fcgid.so into server: /usr/lib/apache2/modules/mod_fcgid.so: undefined symbol: apr_shm_remove root@linwood apache2 # emerge --info Portage 2.1.2.2 (default-linux/x86/2006.1/desktop, gcc-4.1.2, glibc-2.5.90.20070214-r0, 2.6.20-no2 i686) ================================================================= System uname: 2.6.20-no2 i686 AMD Athlon(TM) XP 3200+ Gentoo Base System release 1.12.9 Timestamp of tree: Fri, 09 Mar 2007 14:50:01 +0000 ccache version 2.4 [enabled] dev-java/java-config: 1.3.7, 2.0.31-r4 dev-lang/python: 2.4.4 dev-python/pycrypto: 2.0.1-r5 dev-util/ccache: 2.4-r6 sys-apps/sandbox: 1.2.18.1 sys-devel/autoconf: 2.13, 2.61 sys-devel/automake: 1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10 sys-devel/binutils: 2.17.50.0.6 sys-devel/gcc-config: 1.3.15 sys-devel/libtool: 1.5.22 virtual/os-headers: 2.6.20-r1 ACCEPT_KEYWORDS="x86 ~x86" AUTOCLEAN="yes" CBUILD="i686-pc-linux-gnu" CFLAGS="-O2 -march=athlon-xp -pipe -fomit-frame-pointer" CHOST="i686-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/share/X11/xkb /usr/share/config" CONFIG_PROTECT_MASK="/etc/env.d /etc/env.d/java/ /etc/gconf /etc/java-config/vms/ /etc/php/apache1-php4/ext-active/ /etc/php/apache1-php5/ext-active/ /etc/php/apache2-php4/ext-active/ /etc/php/apache2-php5/ext-active/ /etc/php/cgi-php4/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/cli-php4/ext-active/ /etc/php/cli-php5/ext-active/ /etc/revdep-rebuild /etc/terminfo" CXXFLAGS="-O2 -march=athlon-xp -pipe -fomit-frame-pointer" DISTDIR="/usr/portage/distfiles" FEATURES="autoconfig ccache distlocks fixpackages metadata-transfer parallel-fetch sandbox sfperms strict" GENTOO_MIRRORS="ftp://ftp.sh.cvut.cz/MIRRORS/gentoo/gentoo ftp://ftp.fi.muni.cz/pub/linux/gentoo ftp://ftp.tu-clausthal.de/pub/linux/gentoo/ ftp://trumpetti.atm.tut.fi/gentoo/ ftp://gd.tuwien.ac.at/opsys/linux/gentoo/ rsync://ftp-stud.fht-esslingen.de/gentoo/ http://gentoo.supp.name/ ftp://ftp.du.se/pub/os/gentoo" LC_ALL="cs_CZ.UTF-8" LDFLAGS="-Wl,-O1 -Wl,--as-needed -Wl,--sort-common -Wl,--hash-style=both" LINGUAS="cs en" MAKEOPTS="-j1" PKGDIR="/usr/portage/packages" PORTAGE_RSYNC_EXTRA_OPTS="--timeout=600" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --delete-after --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --filter=H_**/files/digest-*" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/portage/local/layman/zugaina /usr/portage/local/layman/xwing /usr/portage/local/layman/sunrise /usr/portage/local/layman/kpex-media /usr/portage/local/layman/php-testing /usr/portage/local/layman/berkano /usr/portage/local/layman/toolchain_overlay /usr/portage/local/layman/custom-kernels /usr/portage/local/radek" SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage" USE="3dnow 3dnowext X a52 aac aalib alsa bash-completion berkdb bitmap-fonts bluetooth bzip2 cairo cdparanoia cdr cli cracklib crypt cups curl curlwrappers dbus dri dvd dvdr dvdread emboss encode exif fam ffmpeg firefox flac foomaticdb fortran ftp gdbm gif gpm hal hashstyle iconv imap isdnlog jpeg jpeg2k kde kdeenablefinal kdehiddenvisibility kdenewldflags libg++ mad mailwrapper midi mikmod mmx mmxext mp3 mpeg ncurses nls nptl nptlonly offensive ogg opengl pam pcre perl pic png ppds pppd python qt3 qt4 quicktime readline reflection samba sasl sdl session spell spl sse ssl svg svga tcpd theora tidy tiff truetype truetype-fonts type1-fonts unicode usb vorbis win32codecs x86 xine xml xml2 xorg xosd xv xvid zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1 emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mulaw multi null plug rate route share shm softvol" ELIBC="glibc" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="cs en" USERLAND="GNU" VIDEO_CARDS="fglrx radeon vesa" Unset: CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LANG
Recompile it without -Wl,--as-needed and try again...
I commented out LDFLAGS in my make.conf end remerged mod_fcgid but the problem persists.
Sorry for double-posting but I think it is important to mention that this problem occurs with =mod_fcgid-2.1 only. Version 2.0 loads without any problems.
Same as http://forums.gentoo.org/viewtopic-t-545807-start-0.html I noticed the same problem on amd64/x86/sparc. Didn't bother to try on other arches. FYI, mod_fcgid-2.1 added a call to apr_shm_remove which is only available in apr-1
(In reply to comment #4) > Same as http://forums.gentoo.org/viewtopic-t-545807-start-0.html > > I noticed the same problem on amd64/x86/sparc. > Didn't bother to try on other arches. > > FYI, mod_fcgid-2.1 added a call to apr_shm_remove which is only available in > apr-1 OK, this is fixed now .. thanks a lot for the hint.
Changing the dependency does not change anything. Sorry if my comment was more misleading than helpful. It should still depend on apr-0. I thought it should/could somehow use apr-1 but I can't find out how it'd work. apache-2.0 depends on apr-0 and is linked against it (ldd says so). Is it possible to load a module that would need apr-1? No idea. Anyway, apr-0 is used when emerging it and apache still displays the same error. Looking deeper into this, I noticed the latest change to arch/unix/fcgid_proctbl_unix.c is missing from the tarball. If you look at http://mod-fcgid.cvs.sourceforge.net/mod-fcgid/mod_fcgid/arch/unix/fcgid_proctbl_unix.c?r1=1.7&r2=1.8&sortby=date you notice they copied the whole apr_shm_remove from apr-1 into fcgid_proctbl_unix.c The tarball contains the previous revision. Adding the missing patch solves the problem.
Created attachment 113273 [details, diff] ./files/apr_shm_remove.patch src_unpack() { unpack ${A} cd "${S}" epatch "${FILESDIR}/apr_shm_remove.patch" } added to ebuild and eutils added to inherit Hth
(In reply to comment #6) > Changing the dependency does not change anything. > Sorry if my comment was more misleading than helpful. > It should still depend on apr-0. > I thought it should/could somehow use apr-1 but I can't find out how it'd work. > apache-2.0 depends on apr-0 and is linked against it (ldd says so). Is it > possible to load a module that would need apr-1? No idea. > > Anyway, apr-0 is used when emerging it and apache still displays the same > error. > > Looking deeper into this, I noticed the latest change to > arch/unix/fcgid_proctbl_unix.c is missing from the tarball. > If you look at > http://mod-fcgid.cvs.sourceforge.net/mod-fcgid/mod_fcgid/arch/unix/fcgid_proctbl_unix.c?r1=1.7&r2=1.8&sortby=date > you notice they copied the whole apr_shm_remove from apr-1 into > fcgid_proctbl_unix.c > The tarball contains the previous revision. > > Adding the missing patch solves the problem. Well, I guess I'm the one to be sorry. I haven't looked at it as deeply as I should have :) It's fixed now (hopefully) for your pleasure.