Re: [PHP4BETA] cvs: /php4 Makefile.in configure.in.in
| From: | Gergely Madarasz | Date: | Thu, 01 Jan 1970 00:00:00 +0000 |
| Subject: | Re: [PHP4BETA] cvs: /php4 Makefile.in configure.in.in | ||
| References: | 1 | Groups: | php.version4 |
| Request: | Send a blank email to php-version4+get-4278@lists.php.net to get a copy of this message | ||
On Wed, 8 Sep 1999, Sascha Schumann wrote:
> > > - use the `global: *' approach for versioning all shared
> > > modules during the initial compile
> >
> > This wouldn't make it by itself, since external php4 symbols would not get
> > version info. Anyway, this is needed in the first case to, so internal
> > module symbols get versions... :)
>
> Either I'm tired (which I am) or that sounds confused (note
> that the "or" wasn't exclusive).
Ok, I'll go step by step now :)
There are two kinds of symbols in dl modules that need version info, so
they get linked properly.
1) the defined symbols, for the modules functions, etc
like this one:
00005f60 g DO .data 000000fc Base xml_functions
2) the external symbols which are defined in libphp4.so
like this one:
00000000 D *UND* 00000000 php_error
If I link xml.so with libphp4.so, then php_error gets a version, but
xml_functions does not:
00005fc0 g DO .data 000000fc Base xml_functions
00000000 DF *UND* 00000396 PHP4 php_error
If I link xml.so without libphp4.so but with the global: * version script
then the opposite happens:
00005fc0 g DO .data 000000fc PHP4 xml_functions
00000000 D *UND* 00000000 php_error
So xml.so needs to be both linked against libphp4.so and it also needs to
have a version script, so we see the following:
00006020 g DO .data 000000fc PHP4 xml_functions
00000000 DF *UND* 00000396 PHP4 php_error
Greg