Hi,

Here is some more info about what seems to be a broken shared lib.


On Mon, May 21, 2001 at 22:08 +0300, Alexander Bokovoy wrote:
> > Configuration:
> >  - i386, kernel 2.4.0test8 (or 2.4.1)
> >  - debian/woody with the php4 and php4 modules from debian/sid
> >  - php4 4.0.5-2 (+ devel)
> >  - apache 1.3.19-1 (+ devel)
> >  - mysql-server, mysql-client, libmysqlclient10 3.23.38-1 (+ devel)
> >  - midgard built from cvs with the help of Alan Knowles'
> >    midgard_installer_woody.sh script. (patched to use the php4 extension
> >    from midgard's cvs)
<snip>
> > strangely, libmidgard seems to be version 5.0.0 when compiled from cvs
> > version, while out of the tarball 1.4.1-5, it is version 3.1.0
> > Is it normal?
> > The version I use is the one from the cvs (5.0.0).
> Did you recompile all components (lib, mod_midgard, midgard-php)?

Yes, and recompiled them again to make sure.


> > yep, libmidgard is in search path (/usr/lib), and I ran ldconfig.
> > as apache's user www-data (I guess that's what you mean by runtime
> > environment):
> > >>>
> > www-data@lara:~$ ldd  /usr/lib/apache/1.3/mod_midgard.so
> >         libcrypt.so.1 => /lib/libcrypt.so.1 (0x4000c000)
> >         libglib-1.2.so.0 => /usr/lib/libglib-1.2.so.0 (0x4003a000)
> >         libmidgard.so.5 => /usr/lib/libmidgard.so.5 (0x4005d000)
            ^^^^^^^^^^^^^^^
> >         libc.so.6 => /lib/libc.so.6 (0x40070000)
> >         libm.so.6 => /lib/libm.so.6 (0x40182000)
> >         libdb.so.2 => /lib/libdb.so.2 (0x401a5000)
> >         libdb2.so.2 => /lib/libdb2.so.2 (0x401b3000)
> >         libxmlparse.so.1 => /usr/lib/libxmlparse.so.1 (0x401f4000)
> >         libxmltok.so.1 => /usr/lib/libxmltok.so.1 (0x401fc000)
> >         libmysqlclient.so.10 => /usr/lib/libmysqlclient.so.10 (0x40210000)
> >         libz.so.1 => /usr/lib/libz.so.1 (0x40244000)
> >         /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x2aaaa000)
> >         libnsl.so.1 => /lib/libnsl.so.1 (0x40253000)
> > 
> > www-data@lara:~$ ldd /usr/lib/libmidgard.so
<snip>
> Looks like error here -- I can't see libmidgard.so.5 here.

sorry, I also did ldd onlibmidgard which was of less use, but the lib is
seen in mod_midgard

By the way, ldd on midgard.so does this:
>>>
# ldd  /usr/lib/php4/extensions/no-debug-non-zts-20001222/midgard.so
        libmidgard.so.5 => /usr/lib/libmidgard.so.5 (0x4005a000)
        libc.so.6 => /lib/libc.so.6 (0x4006d000)
        libxmlparse.so.1 => /usr/lib/libxmlparse.so.1 (0x4017f000)
        libxmltok.so.1 => /usr/lib/libxmltok.so.1 (0x40187000)
        libmysqlclient.so.10 => /usr/lib/libmysqlclient.so.10 (0x4019b000)
        libm.so.6 => /lib/libm.so.6 (0x401d0000)
        libz.so.1 => /usr/lib/libz.so.1 (0x401f2000)
        libcrypt.so.1 => /lib/libcrypt.so.1 (0x40201000)
        libglib-1.2.so.0 => /usr/lib/libglib-1.2.so.0 (0x4022f000)
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x2aaaa000)
        libnsl.so.1 => /lib/libnsl.so.1 (0x40252000)
>>>


Here is an abstract of the nm output
>>>
# nm  /usr/lib/php4/extensions/no-debug-non-zts-20001222/midgard.so
<snip>
00019490 T mgd_topic_call_function_handler
00019618 T mgd_topic_get_property_handler
00019660 T mgd_topic_set_property_handler
         U mgd_tree
         U mgd_ungrouped_record
         U mgd_ungrouped_select
         U mgd_update
         U mgd_update_repligard
         U mgd_user
         U mgd_vcreate
         U mgd_version
         U mgd_vupdate
         U mgd_walk_table_tree
00054e34 B mgdchar
0003d054 T mgderror
0004fe30 D mgdin
00054e40 B mgdleng
0003d0d0 T mgdlex
00054e38 B mgdlval
00054e3c B mgdnerrs
0004fe34 D mgdout
0003c1c0 T mgdparse
0003e8b8 T mgdrestart
00054e44 B mgdtext
         U midgard_user_call_func
         U mktime@@GLIBC_2.0
00054e04 b object.11
0004d860 d p.3
00054e30 b par_stack
         U pclose@@GLIBC_2.1
0002fdc0 t person_sort
         U php_body_write
0003eeb0 T php_eval_midgard
         U php_file_le_fopen
         U php_get_highlight_struct
0000f488 T php_if_mgd_approve_article
00010c58 T php_if_mgd_copy_article
<snip>
>>>

I can provide the full output out (or in) the list (it is 713 lines, or
22779 bytes long), but there are definitely lots of undefined symbols in
there!
# nm  /usr/lib/php4/extensions/no-debug-non-zts-20001222/midgard.so  |cut -b 
10-10|grep U|wc
    175     175     350


I removed the config.cache from the php4 sub-directory

./configure outputs this
>>>
obelix:/usr/src/midgard/midgard/php4# ./configure
creating cache ./config.cache
checking for gcc... gcc
checking whether the C compiler (gcc  ) works... yes
checking whether the C compiler (gcc  ) is a cross-compiler... no
checking whether we are using GNU C... yes
checking whether gcc accepts -g... yes
checking whether gcc and cc understand -c and -o together... yes
checking for PHP prefix... /usr
checking for PHP includes... -I/usr/include/php4 -I/usr/include/php4/main
-I/usr/include/php4/Zend -I/usr/include/php4/TSRM
checking for PHP extension directory...
/usr/lib/php4/extensions/no-debug-non-zts-20001222
checking for bison... bison -y
checking how to run the C preprocessor... gcc -E
checking for flex... flex
checking for yywrap in -lfl... yes
checking lex output file root... lex.yy
checking whether yytext is a pointer... yes
checking for flex... (cached) flex
checking for midgard support... yes, shared
checking for apxs... /usr/bin/apxs
checking for glib-config... /usr/bin/glib-config
checking for midgard experimental functions support... no
checking host system type... i686-pc-linux-gnu
checking build system type... i686-pc-linux-gnu
checking for ranlib... ranlib
checking for ld used by GCC... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for BSD-compatible nm... /usr/bin/nm -B
checking whether ln -s works... yes
updating cache ./config.cache
loading cache ./config.cache within ltconfig
checking for object suffix... o
checking for executable suffix... no
checking for gcc option to produce PIC... -fPIC
checking if gcc PIC flag -fPIC works... yes
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.lo... yes
checking if gcc supports -fno-rtti -fno-exceptions ... yes
checking if gcc static flag -static works... -static
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking whether the linker (/usr/bin/ld) supports shared libraries... yes
checking command to parse /usr/bin/nm -B output... ok
checking how to hardcode library paths into programs... immediate
checking for /usr/bin/ld option to reload object files... -r
checking dynamic linker characteristics... Linux ld.so
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... no
checking for objdir... .libs
creating libtool
updating cache ./config.cache
loading cache ./config.cache
checking for working mkdir -p... yes
creating config_vars.mk
creating Makefile
updating cache ./config.cache
creating ./config.status
creating config.h
config.h is unchanged
>>>


Then a make does this
>>>
obelix:/usr/src/midgard/midgard/php4# make > /dev/null
conflicts:  6 shift/reduce
/usr/share/bison/bison.simple: In function `mgdparse':
/usr/share/bison/bison.simple:358: warning: implicit declaration of
function `mgderror'
/usr/share/bison/bison.simple:432: warning: implicit declaration of
function `mgdlex'
preparser-parser.y: At top level:
preparser-parser.y:219: warning: type mismatch with previous implicit
declaration
/usr/share/bison/bison.simple:643: warning: previous implicit declaration
of `mgderror'
preparser-parser.y:219: warning: `mgderror' was previously implicitly
declared to return `int'
lex.yy.c:1742: warning: `yyunput' defined but not used
lex.yy.c:2165: warning: `yy_top_state' defined but not used
>>>

The size of php4's midgard.so module is 2.090.176

Anything unusual mentionned here?


Best regards,


Bernard


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to