RE: FW: httpd.exp for Apache 2.0.43
Thanks Jeff, Thanks for you inputs. Regarding the function ap_custom_response() , for this we have added our own implementation that is specific to apache 2.0 on AIX. Regards, Rahul Kohli -Original Message- From: Jeff Trawick [mailto:[EMAIL PROTECTED] Sent: Tuesday, June 03, 2003 5:47 PM To: [EMAIL PROTECTED] Subject: Re: FW: httpd.exp for Apache 2.0.43 Rahul Kohli wrote: I was able to resolve the shmmat error by exporting the environment variable EXTSHM. Please suggest me how can I make my library compatible to later versions as well. Right now I have made a change to remove -G and -brtl option and using apr.exp , aprutil.exp.exp. The link line is mentioned below: /usr/vacpp/bin/makeC++SharedLib_r -p 0 -bnoipath ../../Rosette30/unix/lib/aix-xlC_r/libbtunicode.so -b M:SRE -berok -bnoentry -blibpath:/usr/lib/threads:/usr/ibmcxx/lib:/usr/lib:/lib -s -bI:/usr/IBMIHS/modules/http d.exp -bI:/usr/IBMIHS/lib/apr.exp -bI:/usr/IBMIHS/lib/aprutil.exp -bE:my_lib.exp But how can I make this work on 2.0.45 version and later. Kindly suggest. If you stick with the import file method (httpd.exp, apr.exp, aprutil.exp): if you build with Apache = 2.0.45 = no issue if you build with Apache = 2.0.42 (my recommendation, since API is unchanged since 2.0.41 and 2.0.42 was the first such GA release) = users need to create the symlinks libapr.so-libapr-0.so and libaprutil.so-libaprutil-0.so for 2.0.45 and 2.0.46, and we should consider creating the symlinks automatically for future 2.0 releases If you get run-time linking to work: = no issue But I understand that you don't have this method working yet :) The way I debug DSO loading issues on AIX is to look at the dump output from the DSO to see what symbols it is trying to resolve (and whether from main executable or runtime linking or some named library). The dump output you sent privately when you were building the module with run-time linking had a reference to what looks like a C++-language ap_custom_response(): ap_custom_response__12CExternalApiFP11request_reciPc Did you resolve that issue?
Re: FW: httpd.exp for Apache 2.0.43
Rahul Kohli wrote: Regarding the function ap_custom_response() , for this we have added our own implementation that is specific to apache 2.0 on AIX. Don't call it that! You shouldn't use the ap_ or apr_ or apu_ prefixes at all for your symbols, much less implement a function/method with the same name as a symbol exported by Apache or apr or apr-util.
FW: httpd.exp for Apache 2.0.43
Thanks Jeff. I am facing the same type of problem mentioned by you. Originally I was running my application on Apache 1.3.26 i was using httpd.exp. It was working fine. apachectl start started the server properly our library was loaded. Now we are switching to apache 2.0.43 and facing error while starting apachectl. The error is as below: Syntax error on line 147 of /usr/apache/conf/httpd.conf: Cannot load /home/agent5x/Installables/lib/my_lib.so into server: I am using the httpd.exp as I did in 1.3.26. With this appraoch my library is not even getting loaded. As per suggested by you in your reply it seems that the problem is with httpd.exp approach. You mentioned the runtime linking approach. Which runtime libraries i need to link my application with. It will be of great help to us. Kindly advise, Rahul Kohli -Original Message- From: Jeff Trawick [mailto:[EMAIL PROTECTED] Sent: Monday, June 02, 2003 4:17 PM To: [EMAIL PROTECTED] Subject: Re: httpd.exp for Apache 2.0.43 Rahul Kohli wrote: Hi , Where can i find httpd.exp for Apache 2.0.43 (AIX 4.3). Install Apache then look in modules/httpd.exp in the install path; there will also be apr.exp and aprutil.exp in the lib directory. Note that the usual way to build modules on AIX with Apache 2.0 is to use run-time linking instead of using something like httpd.exp. See what apxs does. But the exp files used to export symbols from httpd, libapr, and libaprutil are provided. Unfortunately, you'll run into a binary compatibility problem if you don't use run-time linking since libapr and libaprutil changed names with 2.0.45. Modules using the recommended build procedure weren't affected. From 2.0.43: $ cat lib/apr.exp #! libapr.so ... From 2.0.45: $ cat lib/apr.exp #! libapr-0.so ...
Re: FW: httpd.exp for Apache 2.0.43
Rahul Kohli wrote: Thanks Jeff. I am facing the same type of problem mentioned by you. Originally I was running my application on Apache 1.3.26 i was using httpd.exp. It was working fine. apachectl start started the server properly our library was loaded. Now we are switching to apache 2.0.43 and facing error while starting apachectl. The error is as below: Syntax error on line 147 of /usr/apache/conf/httpd.conf: Cannot load /home/agent5x/Installables/lib/my_lib.so into server: I am using the httpd.exp as I did in 1.3.26. With this appraoch my library is not even getting loaded. As per suggested by you in your reply it seems that the problem is with httpd.exp approach. You mentioned the runtime linking approach. Which runtime libraries i need to link my application with. It will be of great help to us. Kindly advise, Rahul Kohli apxs uses apr-config. Check out the LDFLAGS in apr-config, in particular the -brtl option. Your best bet is to use apxs to compile your modules. That way, you will be sure to pick up all the right compile and link options, macro definitions, etc. http://httpd.apache.org./docs-2.0/programs/apxs.html Bill
Re: FW: httpd.exp for Apache 2.0.43
Jeff Trawick wrote: Run-time linking on AIX isn't a set of libraries to link with; it is instead a particular mode of resolving symbols with shared libraries that doesn't use hard-coded paths such as those specified in httpd.exp, apr.exp, and aprutil.exp. Instead of telling the linker to look in httpd.exp/apr.exp/aprutil.exp to see how to find those routines, you add -Wl,-G to the linker options to tell it not to worry about where the routines come from but instead to search for them when the shared library is loaded. When I've ported mod_perl 2.0 build to AIX, I have resorted to just using -berok (which is one of the flags enabled by -G). -G itself didn't quite work, I don't remember why. However I was told that it depends on which compiler is used, I've heard that this postpone-symbol-resolving doesn't always work. __ Stas BekmanJAm_pH -- Just Another mod_perl Hacker http://stason.org/ mod_perl Guide --- http://perl.apache.org mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com http://modperlbook.org http://apache.org http://ticketmaster.com
Re: FW: httpd.exp for Apache 2.0.43
Stas Bekman wrote: When I've ported mod_perl 2.0 build to AIX, I have resorted to just using -berok (which is one of the flags enabled by -G). -G itself didn't quite work, I don't remember why. However I was told that it depends on which compiler is used, I've heard that this postpone-symbol-resolving doesn't always work. actually I should have said -Wl,-brtl, as that is what we use with apr (and any apr apps that pick up apr ldflags)... as you pointed out, -G is more than just rtl the only part that I've heard depends on the compiler is this: libtool doesn't enable run-time linking with gcc in cases where it would do so for the IBM compiler Apache handled this issue for apxs starting in 2.0.45 by doing something we should have done all along: pull in APR's ldflags when linking DSOs so that we no longer relied on libtool to enable run-time linking the only part I've heard about where run-time linking doesn't always work is when two pieces of code implement the same symbol, since there is a flat namespace... traditional AIX dynamic linking is two-level namespace, where for each symbol the binary indicates which library will resolve it if mod_perl is built with apxs or with apr-config ldflags, then it uses run-time linking... Jens-Uwe Mager had done a lot of work with mod_perl and Apache 1.3 on AIX and indicated that run-time linking was the way to go... that, and anecdotes from other folks with mod_perl on AIX, influenced the choice to use run-time linking by default with apr and Apache 2.0
Re: FW: httpd.exp for Apache 2.0.43
Jeff Trawick wrote: Stas Bekman wrote: When I've ported mod_perl 2.0 build to AIX, I have resorted to just using -berok (which is one of the flags enabled by -G). -G itself didn't quite work, I don't remember why. However I was told that it depends on which compiler is used, I've heard that this postpone-symbol-resolving doesn't always work. actually I should have said -Wl,-brtl, as that is what we use with apr (and any apr apps that pick up apr ldflags)... as you pointed out, -G is more than just rtl Yes, I forgot to mention -brtl. So I'm using -brtl, -berok the only part that I've heard depends on the compiler is this: libtool doesn't enable run-time linking with gcc in cases where it would do so for the IBM compiler Apache handled this issue for apxs starting in 2.0.45 by doing something we should have done all along: pull in APR's ldflags when linking DSOs so that we no longer relied on libtool to enable run-time linking Cool. We don't use libtool for building mod_perl. We get the mix of flags from perl and apr-config, apxs... the only part I've heard about where run-time linking doesn't always work is when two pieces of code implement the same symbol, since there is a flat namespace... traditional AIX dynamic linking is two-level namespace, where for each symbol the binary indicates which library will resolve it I wish it was also reporting this kind of problems. Normally the loader on AIX just silently bails out :( Luckily I don't use AIX for quite a few years already, it was always a pain to build anything at all. if mod_perl is built with apxs or with apr-config ldflags, then it uses run-time linking... Jens-Uwe Mager had done a lot of work with mod_perl and Apache 1.3 on AIX and indicated that run-time linking was the way to go... that, and anecdotes from other folks with mod_perl on AIX, influenced the choice to use run-time linking by default with apr and Apache 2.0 ;) __ Stas BekmanJAm_pH -- Just Another mod_perl Hacker http://stason.org/ mod_perl Guide --- http://perl.apache.org mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com http://modperlbook.org http://apache.org http://ticketmaster.com
Re: FW: httpd.exp for Apache 2.0.43
Stas Bekman wrote: Jeff Trawick wrote: Stas Bekman wrote: the only part I've heard about where run-time linking doesn't always work is when two pieces of code implement the same symbol, since there is a flat namespace... traditional AIX dynamic linking is two-level namespace, where for each symbol the binary indicates which library will resolve it I wish it was also reporting this kind of problems. Normally the loader on AIX just silently bails out :( Luckily I don't use AIX for quite a few years already, it was always a pain to build anything at all. I think you get to find out about your DSO picking up the wrong function of multiple with the same name by it behaving strangely :) As far as the usual missing symbol problem, where dlerror() (or whatever it is) doesn't provide info, try http://www.apache.org/~trawick/cantloaddso.pl
RE: FW: httpd.exp for Apache 2.0.43
Hi All, I am progressing with apxs approach. But can anyone tell me why the exp approach is failing on Apache 2.0.43. The same approach is working on Apache 1.3.26. For apxs approach there will be lots of changes in makefiles which our customer may not agree. Is there anything that I am missing in my current approach. Right now I am only importing symbols in httpd.exp. Do i need to import some other exp file also in addition to httpd.exp. Since the LoadModule directive is not loading the my library, my code has not yet executed. The problem is there with format of library only. Is there any was to detect whether my library is compatible with apache loading routines?? When i do apachectl start i get following error: Syntax error on line 147 of /usr/apache/conf/httpd.conf: Cannot load /home/agent5x/lib/my_lib.so into server: FYI: The same library built on solaris, hpux gets loaded properly works fine. In solaris hp we don't need to import symbols using -bI:httpd.exp option. Why is the problem only on aix??? I am using xlC_r compiler on aix. Link line command to build the library are as below: /usr/vacpp/bin/makeC++SharedLib_r -G -p 0 -bnoipath ../../Rosette30/unix/lib/aix-xlC_r/libbtunicode.so -bM:SRE -berok -bnoentry -blibpath:/usr/lib/threads:/usr/ibmcxx/lib:/usr/lib:/lib -s -bI:../../thi rdparty/apache/httpd/2.0.43/aix43/server/httpd.exp -bE:mylib.exp .. Regards, Rahul -Original Message- From: Jeff Trawick [mailto:[EMAIL PROTECTED] Sent: Tuesday, June 03, 2003 6:13 AM To: [EMAIL PROTECTED] Subject: Re: FW: httpd.exp for Apache 2.0.43 Stas Bekman wrote: Jeff Trawick wrote: Stas Bekman wrote: the only part I've heard about where run-time linking doesn't always work is when two pieces of code implement the same symbol, since there is a flat namespace... traditional AIX dynamic linking is two-level namespace, where for each symbol the binary indicates which library will resolve it I wish it was also reporting this kind of problems. Normally the loader on AIX just silently bails out :( Luckily I don't use AIX for quite a few years already, it was always a pain to build anything at all. I think you get to find out about your DSO picking up the wrong function of multiple with the same name by it behaving strangely :) As far as the usual missing symbol problem, where dlerror() (or whatever it is) doesn't provide info, try http://www.apache.org/~trawick/cantloaddso.pl
Re: FW: httpd.exp for Apache 2.0.43
Rahul Kohli wrote: Hi All, I am progressing with apxs approach. But can anyone tell me why the exp approach is failing on Apache 2.0.43. The same approach is working on Apache 1.3.26. For apxs approach there will be lots of changes in makefiles which our customer may not agree. Is there anything that I am missing in my current approach. Right now I am only importing symbols in httpd.exp. Do i need to import some other exp file also in addition to httpd.exp. Since the LoadModule directive is not loading the my library, my code has not yet executed. The problem is there with format of library only. Is there any was to detect whether my library is compatible with apache loading routines?? When i do apachectl start i get following error: Syntax error on line 147 of /usr/apache/conf/httpd.conf: Cannot load /home/agent5x/lib/my_lib.so into server: FYI: The same library built on solaris, hpux gets loaded properly works fine. In solaris hp we don't need to import symbols using -bI:httpd.exp option. Why is the problem only on aix??? I am using xlC_r compiler on aix. Link line command to build the library are as below: /usr/vacpp/bin/makeC++SharedLib_r -G -p 0 -bnoipath ../../Rosette30/unix/lib/aix-xlC_r/libbtunicode.so -bM:SRE -berok -bnoentry -blibpath:/usr/lib/threads:/usr/ibmcxx/lib:/usr/lib:/lib -s -bI:../../thi rdparty/apache/httpd/2.0.43/aix43/server/httpd.exp -bE:mylib.exp .. You use either -bE:...exp or -G, not both together. The first is used for resolution during the linking, the latter for loadtime. Also try dropping -G and add -brtl, read the ld manpage to what -G expands to http://publibn.boulder.ibm.com/doc_link/en_US/a_doc_lib/cmds/aixcmds3/ld.htm#SPTA3C4F276668STUE Regards, Rahul -Original Message- From: Jeff Trawick [mailto:[EMAIL PROTECTED] Sent: Tuesday, June 03, 2003 6:13 AM To: [EMAIL PROTECTED] Subject: Re: FW: httpd.exp for Apache 2.0.43 Stas Bekman wrote: Jeff Trawick wrote: Stas Bekman wrote: the only part I've heard about where run-time linking doesn't always work is when two pieces of code implement the same symbol, since there is a flat namespace... traditional AIX dynamic linking is two-level namespace, where for each symbol the binary indicates which library will resolve it I wish it was also reporting this kind of problems. Normally the loader on AIX just silently bails out :( Luckily I don't use AIX for quite a few years already, it was always a pain to build anything at all. I think you get to find out about your DSO picking up the wrong function of multiple with the same name by it behaving strangely :) As far as the usual missing symbol problem, where dlerror() (or whatever it is) doesn't provide info, try http://www.apache.org/~trawick/cantloaddso.pl -- __ Stas BekmanJAm_pH -- Just Another mod_perl Hacker http://stason.org/ mod_perl Guide --- http://perl.apache.org mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com http://modperlbook.org http://apache.org http://ticketmaster.com
RE: FW: httpd.exp for Apache 2.0.43
Stas, As per your suggestion I removed -bE , -G option and added -brtl instead but still the issue remains the same The new command is as mentioned below: /usr/vacpp/bin/makeC++SharedLib_r -p 0 -bnoipath ../../Rosette30/unix/lib/aix-xlC_r/libbtunicode.so -b M:SRE -brtl -berok -bnoentry -blibpath:/usr/lib/threads:/usr/ibmcxx/lib:/usr/lib:/lib -s -bI:apache/httpd/2.0.43/aix43/server/httpd.exp Thanks, Rahul Kohli -Original Message- From: Stas Bekman [mailto:[EMAIL PROTECTED] Sent: Tuesday, June 03, 2003 10:43 AM To: [EMAIL PROTECTED] Cc: [EMAIL PROTECTED] Subject: Re: FW: httpd.exp for Apache 2.0.43 Rahul Kohli wrote: Hi All, I am progressing with apxs approach. But can anyone tell me why the exp approach is failing on Apache 2.0.43. The same approach is working on Apache 1.3.26. For apxs approach there will be lots of changes in makefiles which our customer may not agree. Is there anything that I am missing in my current approach. Right now I am only importing symbols in httpd.exp. Do i need to import some other exp file also in addition to httpd.exp. Since the LoadModule directive is not loading the my library, my code has not yet executed. The problem is there with format of library only. Is there any was to detect whether my library is compatible with apache loading routines?? When i do apachectl start i get following error: Syntax error on line 147 of /usr/apache/conf/httpd.conf: Cannot load /home/agent5x/lib/my_lib.so into server: FYI: The same library built on solaris, hpux gets loaded properly works fine. In solaris hp we don't need to import symbols using -bI:httpd.exp option. Why is the problem only on aix??? I am using xlC_r compiler on aix. Link line command to build the library are as below: /usr/vacpp/bin/makeC++SharedLib_r -G -p 0 -bnoipath ../../Rosette30/unix/lib/aix-xlC_r/libbtunicode.so -bM:SRE -berok -bnoentry -blibpath:/usr/lib/threads:/usr/ibmcxx/lib:/usr/lib:/lib -s -bI:../../thi rdparty/apache/httpd/2.0.43/aix43/server/httpd.exp -bE:mylib.exp .. You use either -bE:...exp or -G, not both together. The first is used for resolution during the linking, the latter for loadtime. Also try dropping -G and add -brtl, read the ld manpage to what -G expands to http://publibn.boulder.ibm.com/doc_link/en_US/a_doc_lib/cmds/aixcmds3/ld.htm#SPTA3C4F276668STUE Regards, Rahul -Original Message- From: Jeff Trawick [mailto:[EMAIL PROTECTED] Sent: Tuesday, June 03, 2003 6:13 AM To: [EMAIL PROTECTED] Subject: Re: FW: httpd.exp for Apache 2.0.43 Stas Bekman wrote: Jeff Trawick wrote: Stas Bekman wrote: the only part I've heard about where run-time linking doesn't always work is when two pieces of code implement the same symbol, since there is a flat namespace... traditional AIX dynamic linking is two-level namespace, where for each symbol the binary indicates which library will resolve it I wish it was also reporting this kind of problems. Normally the loader on AIX just silently bails out :( Luckily I don't use AIX for quite a few years already, it was always a pain to build anything at all. I think you get to find out about your DSO picking up the wrong function of multiple with the same name by it behaving strangely :) As far as the usual missing symbol problem, where dlerror() (or whatever it is) doesn't provide info, try http://www.apache.org/~trawick/cantloaddso.pl -- __ Stas BekmanJAm_pH -- Just Another mod_perl Hacker http://stason.org/ mod_perl Guide --- http://perl.apache.org mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com http://modperlbook.org http://apache.org http://ticketmaster.com
RE: FW: httpd.exp for Apache 2.0.43
Stas, I tried without -bI option as well but even that didn't helped. Kindly suggest if I need to import symbols from apr.exp and aprutil.exp as well along with the httpd.exp. Regards, Rahul Kohli -Original Message- From: Stas Bekman [mailto:[EMAIL PROTECTED] Sent: Tuesday, June 03, 2003 12:14 PM To: [EMAIL PROTECTED] Cc: [EMAIL PROTECTED] Subject: Re: FW: httpd.exp for Apache 2.0.43 Rahul Kohli wrote: Stas, As per your suggestion I removed -bE , -G option and added -brtl instead but still the issue remains the same The new command is as mentioned below: /usr/vacpp/bin/makeC++SharedLib_r -p 0 -bnoipath ../../Rosette30/unix/lib/aix-xlC_r/libbtunicode.so -b M:SRE -brtl -berok -bnoentry -blibpath:/usr/lib/threads:/usr/ibmcxx/lib:/usr/lib:/lib -s -bI:apache/httpd/2.0.43/aix43/server/httpd.exp Ah, sorry, I forgot to mention to drop -bI as well. I don't have an access to the aix machine at this moment. but if you try to build mod_perl 2.0 you will see what flags it uses for linking. the build instructions are here: http://perl.apache.org/docs/2.0/user/install/install.html#Downloading_the_mod_perl_Source the linking happens for the first time in src/modules/perl, when it creates mod_perl.so. Hope that it works at all on your setup. __ Stas BekmanJAm_pH -- Just Another mod_perl Hacker http://stason.org/ mod_perl Guide --- http://perl.apache.org mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com http://modperlbook.org http://apache.org http://ticketmaster.com
RE: FW: httpd.exp for Apache 2.0.43
Hi , We are able to load the library by importing symbols from apr.exp and aprutil.exp and removing the -G option. But we are facing an error: shmmat failed. You may be trying to make a cache that is too large or be doing apachectl restart. Kindly suggest if we need to change some system parameter or some patch need to be applied to resolve this issue. Thanks, Rahul Kohli -Original Message- From: Rahul Kohli Sent: Tuesday, June 03, 2003 2:33 PM To: [EMAIL PROTECTED] Cc: [EMAIL PROTECTED]; [EMAIL PROTECTED] Subject: RE: FW: httpd.exp for Apache 2.0.43 Stas, I tried without -bI option as well but even that didn't helped. Kindly suggest if I need to import symbols from apr.exp and aprutil.exp as well along with the httpd.exp. Regards, Rahul Kohli -Original Message- From: Stas Bekman [mailto:[EMAIL PROTECTED] Sent: Tuesday, June 03, 2003 12:14 PM To: [EMAIL PROTECTED] Cc: [EMAIL PROTECTED] Subject: Re: FW: httpd.exp for Apache 2.0.43 Rahul Kohli wrote: Stas, As per your suggestion I removed -bE , -G option and added -brtl instead but still the issue remains the same The new command is as mentioned below: /usr/vacpp/bin/makeC++SharedLib_r -p 0 -bnoipath ../../Rosette30/unix/lib/aix-xlC_r/libbtunicode.so -b M:SRE -brtl -berok -bnoentry -blibpath:/usr/lib/threads:/usr/ibmcxx/lib:/usr/lib:/lib -s -bI:apache/httpd/2.0.43/aix43/server/httpd.exp Ah, sorry, I forgot to mention to drop -bI as well. I don't have an access to the aix machine at this moment. but if you try to build mod_perl 2.0 you will see what flags it uses for linking. the build instructions are here: http://perl.apache.org/docs/2.0/user/install/install.html#Downloading_the_mod_perl_Source the linking happens for the first time in src/modules/perl, when it creates mod_perl.so. Hope that it works at all on your setup. __ Stas BekmanJAm_pH -- Just Another mod_perl Hacker http://stason.org/ mod_perl Guide --- http://perl.apache.org mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com http://modperlbook.org http://apache.org http://ticketmaster.com
Re: FW: httpd.exp for Apache 2.0.43
Rahul Kohli wrote: We are able to load the library by importing symbols from apr.exp and aprutil.exp and removing the -G option. There's an issue with that for you to be aware of... Build with Apache 2.0.45, and apr.exp and aprutil.exp specify that the names of apr and aprutil are libapr.so and libaprutil.so. Build with Apache = 2.0.45 and those exp files specify that the names are libapr-0.so and libaprutil-0.so. The dependencies in your DSO will affect that and you'll hit a binary incompatibility, since Apache = 2.0.45 makes no provision for the names of apr and apr-util changing. But we are facing an error: shmmat failed. You may be trying to make a cache that is too large or be doing apachectl restart. Now I remember where I have heard of libtunicode before :) You'll need to contact the 3rd-party module vendor since that is not an Apache message, and we cannot suggest what sort of module configuration may be appropriate for your platform. There are some hints about external configuration at http://publibn.boulder.ibm.com/doc_link/en_US/a_doc_lib/libs/basetrf2/shmat.htm but surely the people who are familiar with that module can help.
RE: FW: httpd.exp for Apache 2.0.43
Jeff, I was able to resolve the shmmat error by exporting the environment variable EXTSHM. Please suggest me how can I make my library compatible to later versions as well. Right now I have made a change to remove -G and -brtl option and using apr.exp , aprutil.exp.exp. The link line is mentioned below: /usr/vacpp/bin/makeC++SharedLib_r -p 0 -bnoipath ../../Rosette30/unix/lib/aix-xlC_r/libbtunicode.so -b M:SRE -berok -bnoentry -blibpath:/usr/lib/threads:/usr/ibmcxx/lib:/usr/lib:/lib -s -bI:/usr/IBMIHS/modules/http d.exp -bI:/usr/IBMIHS/lib/apr.exp -bI:/usr/IBMIHS/lib/aprutil.exp -bE:my_lib.exp But how can I make this work on 2.0.45 version and later. Kindly suggest. Rahul Kohli -Original Message- From: Jeff Trawick [mailto:[EMAIL PROTECTED] Sent: Tuesday, June 03, 2003 4:28 PM To: [EMAIL PROTECTED] Subject: Re: FW: httpd.exp for Apache 2.0.43 Rahul Kohli wrote: We are able to load the library by importing symbols from apr.exp and aprutil.exp and removing the -G option. There's an issue with that for you to be aware of... Build with Apache 2.0.45, and apr.exp and aprutil.exp specify that the names of apr and aprutil are libapr.so and libaprutil.so. Build with Apache = 2.0.45 and those exp files specify that the names are libapr-0.so and libaprutil-0.so. The dependencies in your DSO will affect that and you'll hit a binary incompatibility, since Apache = 2.0.45 makes no provision for the names of apr and apr-util changing. But we are facing an error: shmmat failed. You may be trying to make a cache that is too large or be doing apachectl restart. Now I remember where I have heard of libtunicode before :) You'll need to contact the 3rd-party module vendor since that is not an Apache message, and we cannot suggest what sort of module configuration may be appropriate for your platform. There are some hints about external configuration at http://publibn.boulder.ibm.com/doc_link/en_US/a_doc_lib/libs/basetrf2/shmat.htm but surely the people who are familiar with that module can help.
Re: FW: httpd.exp for Apache 2.0.43
Rahul Kohli wrote: I was able to resolve the shmmat error by exporting the environment variable EXTSHM. Please suggest me how can I make my library compatible to later versions as well. Right now I have made a change to remove -G and -brtl option and using apr.exp , aprutil.exp.exp. The link line is mentioned below: /usr/vacpp/bin/makeC++SharedLib_r -p 0 -bnoipath ../../Rosette30/unix/lib/aix-xlC_r/libbtunicode.so -b M:SRE -berok -bnoentry -blibpath:/usr/lib/threads:/usr/ibmcxx/lib:/usr/lib:/lib -s -bI:/usr/IBMIHS/modules/http d.exp -bI:/usr/IBMIHS/lib/apr.exp -bI:/usr/IBMIHS/lib/aprutil.exp -bE:my_lib.exp But how can I make this work on 2.0.45 version and later. Kindly suggest. If you stick with the import file method (httpd.exp, apr.exp, aprutil.exp): if you build with Apache = 2.0.45 = no issue if you build with Apache = 2.0.42 (my recommendation, since API is unchanged since 2.0.41 and 2.0.42 was the first such GA release) = users need to create the symlinks libapr.so-libapr-0.so and libaprutil.so-libaprutil-0.so for 2.0.45 and 2.0.46, and we should consider creating the symlinks automatically for future 2.0 releases If you get run-time linking to work: = no issue But I understand that you don't have this method working yet :) The way I debug DSO loading issues on AIX is to look at the dump output from the DSO to see what symbols it is trying to resolve (and whether from main executable or runtime linking or some named library). The dump output you sent privately when you were building the module with run-time linking had a reference to what looks like a C++-language ap_custom_response(): ap_custom_response__12CExternalApiFP11request_reciPc Did you resolve that issue?
httpd.exp for Apache 2.0.43
Hi , Where can i find httpd.exp for Apache 2.0.43 (AIX 4.3). Thanks, Rahul Kohli
Re: httpd.exp for Apache 2.0.43
Rahul Kohli wrote: Hi , Where can i find httpd.exp for Apache 2.0.43 (AIX 4.3). Install Apache then look in modules/httpd.exp in the install path; there will also be apr.exp and aprutil.exp in the lib directory. Note that the usual way to build modules on AIX with Apache 2.0 is to use run-time linking instead of using something like httpd.exp. See what apxs does. But the exp files used to export symbols from httpd, libapr, and libaprutil are provided. Unfortunately, you'll run into a binary compatibility problem if you don't use run-time linking since libapr and libaprutil changed names with 2.0.45. Modules using the recommended build procedure weren't affected. From 2.0.43: $ cat lib/apr.exp #! libapr.so ... From 2.0.45: $ cat lib/apr.exp #! libapr-0.so ...