You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@apr.apache.org by Steve Comstock <st...@trainersfriend.com> on 2008/06/24 21:56:15 UTC

Trouble in river city.

So the configure seemed to go OK. Following the instructions,
I issue:

/usr/lpp/zApache/httpd-2.2.9 > make

and the result, after three hours:

Making all in srclib
Making all in apr
.
.
.
WARNING CCN3068 ./dso/unix/dso.c:139   Operation between types "void*" and "int" 
is not allowed.
WARNING CCN3068 ./dso/unix/dso.c:153   Operation between types "const char*" and 
"int" is not allowed.
WARNING CCN3196 ./dso/unix/dso.c:227   Initialization between types "void*" and 
"int" is not allowed.
WARNING CCN3068 ./dso/unix/dso.c:231   Operation between types "const char*" and 
"int" is not allowed.
FSUM3065 The COMPILE step ended with return code 4. 

.
.
.
ar: FSUM6180 file "passwd/apr_getpass.o": EDC5129I No such file or directory. 

ar: FSUM6180 file "strings/apr_cpystrn.o": EDC5129I No such file or directory. 

ar: FSUM6180 file "strings/apr_fnmatch.o": EDC5129I No such file or directory. 

ar: FSUM6180 file "strings/apr_snprintf.o": EDC5129I No such file or directory. 

ar: FSUM6180 file "strings/apr_strings.o": EDC5129I No such file or directory. 

ar: FSUM6180 file "strings/apr_strnatcmp.o": EDC5129I No such file or directory. 

ar: FSUM6180 file "strings/apr_strtok.o": EDC5129I No such file or directory. 

ar: FSUM6180 file "tables/apr_hash.o": EDC5129I No such file or directory. 

ar: FSUM6180 file "tables/apr_tables.o": EDC5129I No such file or directory. 

ar: FSUM6180 file "dso/unix/dso.o": EDC5129I No such file or directory. 

ar: FSUM6180 file "file_io/unix/buffer.o": EDC5129I No such file or directory. 

ar: FSUM6180 file "file_io/unix/copy.o": EDC5129I No such file or directory. 

ar: FSUM6180 file "file_io/unix/dir.o": EDC5129I No such file or directory. 

ar: FSUM6180 file "file_io/unix/fileacc.o": EDC5129I No such file or directory. 

ar: FSUM6180 file "file_io/unix/filedup.o": EDC5129I No such file or directory. 

ar: FSUM6180 file "file_io/unix/filepath.o": EDC5129I No such file or directory. 

ar: FSUM6180 file "file_io/unix/filepath_util.o": EDC5129I No such file or 
directory.
ar: FSUM6180 file "file_io/unix/filestat.o": EDC5129I No such file or directory. 

ar: FSUM6180 file "file_io/unix/flock.o": EDC5129I No such file or directory. 

ar: FSUM6180 file "file_io/unix/fullrw.o": EDC5129I No such file or directory. 

ar: FSUM6180 file "file_io/unix/mktemp.o": EDC5129I No such file or directory. 

ar: FSUM6180 file "file_io/unix/open.o": EDC5129I No such file or directory. 

ar: FSUM6180 file "file_io/unix/pipe.o": EDC5129I No such file or directory. 

ar: FSUM6180 file "file_io/unix/readwrite.o": EDC5129I No such file or 
directory.
ar: FSUM6180 file "file_io/unix/seek.o": EDC5129I No such file or directory. 

ar: FSUM6180 file "file_io/unix/tempdir.o": EDC5129I No such file or directory. 

ar: FSUM6180 file "locks/unix/global_mutex.o": EDC5129I No such file or 
directory.
ar: FSUM6180 file "locks/unix/proc_mutex.o": EDC5129I No such file or directory. 

ar: FSUM6180 file "locks/unix/thread_cond.o": EDC5129I No such file or 
directory.
ar: FSUM6180 file "locks/unix/thread_mutex.o": EDC5129I No such file or 
directory.
ar: FSUM6180 file "locks/unix/thread_rwlock.o": EDC5129I No such file or 
directory.
ar: FSUM6180 file "memory/unix/apr_pools.o": EDC5129I No such file or directory. 

ar: FSUM6180 file "misc/unix/charset.o": EDC5129I No such file or directory. 

ar: FSUM6180 file "misc/unix/env.o": EDC5129I No such file or directory. 

ar: FSUM6180 file "misc/unix/errorcodes.o": EDC5129I No such file or directory. 

ar: FSUM6180 file "misc/unix/getopt.o": EDC5129I No such file or directory. 

ar: FSUM6180 file "misc/unix/otherchild.o": EDC5129I No such file or directory. 

ar: FSUM6180 file "misc/unix/rand.o": EDC5129I No such file or directory. 

ar: FSUM6180 file "misc/unix/start.o": EDC5129I No such file or directory. 

ar: FSUM6180 file "misc/unix/version.o": EDC5129I No such file or directory. 

ar: FSUM6180 file "mmap/unix/common.o": EDC5129I No such file or directory. 

ar: FSUM6180 file "mmap/unix/mmap.o": EDC5129I No such file or directory. 

ar: FSUM6180 file "network_io/unix/inet_ntop.o": EDC5129I No such file or 
directory.
ar: FSUM6180 file "network_io/unix/inet_pton.o": EDC5129I No such file or 
directory.
ar: FSUM6180 file "network_io/unix/multicast.o": EDC5129I No such file or 
directory.
ar: FSUM6180 file "network_io/unix/sendrecv.o": EDC5129I No such file or 
directory.
ar: FSUM6180 file "network_io/unix/sockaddr.o": EDC5129I No such file or 
directory.
ar: FSUM6180 file "network_io/unix/sockets.o": EDC5129I No such file or 
directory.
ar: FSUM6180 file "network_io/unix/sockopt.o": EDC5129I No such file or 
directory.
ar: FSUM6180 file "poll/unix/epoll.o": EDC5129I No such file or directory. 

ar: FSUM6180 file "poll/unix/kqueue.o": EDC5129I No such file or directory. 

ar: FSUM6180 file "poll/unix/poll.o": EDC5129I No such file or directory. 

ar: FSUM6180 file "poll/unix/port.o": EDC5129I No such file or directory. 

ar: FSUM6180 file "poll/unix/select.o": EDC5129I No such file or directory. 

ar: FSUM6180 file "random/unix/apr_random.o": EDC5129I No such file or 
directory.
ar: FSUM6180 file "random/unix/sha2.o": EDC5129I No such file or directory. 

ar: FSUM6180 file "random/unix/sha2_glue.o": EDC5129I No such file or directory. 

ar: FSUM6180 file "shmem/unix/shm.o": EDC5129I No such file or directory. 

ar: FSUM6180 file "support/unix/waitio.o": EDC5129I No such file or directory. 

ar: FSUM6180 file "threadproc/unix/proc.o": EDC5129I No such file or directory. 

ar: FSUM6180 file "threadproc/unix/procsup.o": EDC5129I No such file or 
directory.
ar: FSUM6180 file "threadproc/unix/signals.o": EDC5129I No such file or 
directory.
ar: FSUM6180 file "threadproc/unix/thread.o": EDC5129I No such file or 
directory.
ar: FSUM6180 file "threadproc/unix/threadpriv.o": EDC5129I No such file or 
directory.
ar: FSUM6180 file "time/unix/time.o": EDC5129I No such file or directory. 

ar: FSUM6180 file "time/unix/timestr.o": EDC5129I No such file or directory. 

ar: FSUM6180 file "user/unix/groupinfo.o": EDC5129I No such file or directory. 

ar: FSUM6180 file "user/unix/userinfo.o": EDC5129I No such file or directory. 

ar: FSUM6180 file "atomic/unix/builtins.o": EDC5129I No such file or directory. 

ar: FSUM6180 file "atomic/unix/ia32.o": EDC5129I No such file or directory. 

ar: FSUM6180 file "atomic/unix/mutex.o": EDC5129I No such file or directory. 

ar: FSUM6180 file "atomic/unix/ppc.o": EDC5129I No such file or directory. 

ar: FSUM6180 file "atomic/unix/s390.o": EDC5129I No such file or directory. 

ar: FSUM6180 file "atomic/unix/solaris.o": EDC5129I No such file or directory. 

FSUM8226 make: Error code 1 

FSUM8226 make: Error code 1 

FSUM8226 make: Error code 1 

FSUM8226 make: Error code 1
-------------------------------------------

So two questions to the community:
1) What causes this?
2) How do I fix it?

------------------------------------------

I thought, "What the heck?" and went ahead and tried:

/usr/lpp/zApache/httpd-2.2.9 > make install

but after 15 minutes I get a stream of similar messages,
and there is no "conf" directory so I figure that's a
bad sign.



Kind regards,

-Steve Comstock
The Trainer's Friend, Inc.

303-393-8716
http://www.trainersfriend.com

   z/OS Application development made easier
     * Our classes include
        + How things work
        + Programming examples with realistic applications
        + Starter / skeleton code
        + Complete working programs
        + Useful utilities and subroutines
        + Tips and techniques

==> Check out the Trainer's Friend Store to purchase z/OS  <==
==> application developer toolkits. Sample code in four    <==
==> programming languages, JCL to Assemble or compile,     <==
==> bind and test.                                         <==
==>   http://www.trainersfriend.com/TTFStore/index.html    <==

Re: Trouble in river city.

Posted by Steve Comstock <st...@trainersfriend.com>.
William A. Rowe, Jr. wrote:
> Steve Comstock wrote:
>> William A. Rowe, Jr. wrote:
>> [snip]
>>
>>> Guessing there was no source of entropy.  C.f. apr ./configure;
>>>
>>>   --with-egd[=DIR]        use EGD-compatible socket
>>>   --with-devrandom[=DEV]  use /dev/random or compatible [searches by 
>>> default]
>>
>> I'm glad you suggested that. It gives me the opportunity to
>> ask a few questions:
>>
>> * I've heard of entropy in the physics sense; I've seen
>>   or two references to it in the software context; what
>>   does "entropy" mean in the software context?
> 
> randomness that is not predicted, e.g. other than a pseudorandom sequence,
> since these can be predicted.
> 
>> * What creates entropy? What is the significance of your
>>   suggested --with options?
> 
> In the pc sense, usually /dev/random or /dev/urandom, there are various
> prngd alternatives.  These work by deciding to watch sensors in the PC,
> e.g. you might take a measurement of the cpu's temperature measured in
> .001 degree (to .010), or the arrival timing of packets on the network,
> etc.  /dev/random does so for all bits of entropy, /dev/urandom does the
> best it can with true bits of entropy, and makes up the difference with
> pseduorandom data so that it won't block.
> 
> You must have one.  bin/htpasswd was considered insecure, so it was
> modified to grab a few mostly random bytes for seeding.  (httpd project's
> choice, not ours).

Ahhh! That's the clue that does the trick for me: a source
of seeds for a random number generator, that you need for
creating / processing passwords. Thanks!

z/OS has /dev/urandom, so I guess I'll use that.


> 
>> * What made you think, from my post, that there was no
>>   source of entropy? What was your clue?
> 
> Someone else reported similar a while ago, and this parked itself away
> in my brain for a month or two.
> 
> You mentioned apr_get_password - I had the same failure a couple of days
> ago on HP/UX 11.11 (a new box) and realized that we hadn't installed the
> HP/UX /dev/random, /dev/urandom drivers nor choose a source like prngd.
> Seeing as I'm done supporting 11.00, HP's driver made more sense.
> 
> http://h20293.www2.hp.com/portal/swdepot/displayProductInfo.do?productNumber=KRNG11I 

Makes sense to me. Thanks again.

Do I need to specify --with-devrandom=/dev/urandom just
for the apr configure, or do I need to specify it at
for apr-util also? Or, can I just do the httpd configure
and depend on that process carrying down? [I'd like to
just run httpd ./configure; doesn't that invoke the apr
and apr-util configure scripts on your behalf?




Kind regards,

-Steve Comstock
The Trainer's Friend, Inc.

303-393-8716
http://www.trainersfriend.com

   z/OS Application development made easier
     * Our classes include
        + How things work
        + Programming examples with realistic applications
        + Starter / skeleton code
        + Complete working programs
        + Useful utilities and subroutines
        + Tips and techniques

==> Check out the Trainer's Friend Store to purchase z/OS  <==
==> application developer toolkits. Sample code in four    <==
==> programming languages, JCL to Assemble or compile,     <==
==> bind and test.                                         <==
==>   http://www.trainersfriend.com/TTFStore/index.html    <==

Re: Trouble in river city.

Posted by "William A. Rowe, Jr." <wr...@rowe-clan.net>.
Steve Comstock wrote:
> William A. Rowe, Jr. wrote:
> [snip]
> 
>> Guessing there was no source of entropy.  C.f. apr ./configure;
>>
>>   --with-egd[=DIR]        use EGD-compatible socket
>>   --with-devrandom[=DEV]  use /dev/random or compatible [searches by 
>> default]
> 
> I'm glad you suggested that. It gives me the opportunity to
> ask a few questions:
> 
> * I've heard of entropy in the physics sense; I've seen
>   or two references to it in the software context; what
>   does "entropy" mean in the software context?

randomness that is not predicted, e.g. other than a pseudorandom sequence,
since these can be predicted.

> * What creates entropy? What is the significance of your
>   suggested --with options?

In the pc sense, usually /dev/random or /dev/urandom, there are various
prngd alternatives.  These work by deciding to watch sensors in the PC,
e.g. you might take a measurement of the cpu's temperature measured in
.001 degree (to .010), or the arrival timing of packets on the network,
etc.  /dev/random does so for all bits of entropy, /dev/urandom does the
best it can with true bits of entropy, and makes up the difference with
pseduorandom data so that it won't block.

You must have one.  bin/htpasswd was considered insecure, so it was
modified to grab a few mostly random bytes for seeding.  (httpd project's
choice, not ours).

> * What made you think, from my post, that there was no
>   source of entropy? What was your clue?

Someone else reported similar a while ago, and this parked itself away
in my brain for a month or two.

You mentioned apr_get_password - I had the same failure a couple of days
ago on HP/UX 11.11 (a new box) and realized that we hadn't installed the
HP/UX /dev/random, /dev/urandom drivers nor choose a source like prngd.
Seeing as I'm done supporting 11.00, HP's driver made more sense.

http://h20293.www2.hp.com/portal/swdepot/displayProductInfo.do?productNumber=KRNG11I

Re: Trouble in river city.

Posted by Steve Comstock <st...@trainersfriend.com>.
William A. Rowe, Jr. wrote:
[snip]

> Guessing there was no source of entropy.  C.f. apr ./configure;
> 
>   --with-egd[=DIR]        use EGD-compatible socket
>   --with-devrandom[=DEV]  use /dev/random or compatible [searches by 
> default]

I'm glad you suggested that. It gives me the opportunity to
ask a few questions:

* I've heard of entropy in the physics sense; I've seen
   or two references to it in the software context; what
   does "entropy" mean in the software context?

* What creates entropy? What is the significance of your
   suggested --with options?

* What made you think, from my post, that there was no
   source of entropy? What was your clue?



Kind regards,

-Steve Comstock
The Trainer's Friend, Inc.

303-393-8716
http://www.trainersfriend.com

   z/OS Application development made easier
     * Our classes include
        + How things work
        + Programming examples with realistic applications
        + Starter / skeleton code
        + Complete working programs
        + Useful utilities and subroutines
        + Tips and techniques

==> Check out the Trainer's Friend Store to purchase z/OS  <==
==> application developer toolkits. Sample code in four    <==
==> programming languages, JCL to Assemble or compile,     <==
==> bind and test.                                         <==
==>   http://www.trainersfriend.com/TTFStore/index.html    <==

Re: Trouble in river city.

Posted by "William A. Rowe, Jr." <wr...@rowe-clan.net>.
Steve Comstock wrote:
> Greg Ames wrote:
>> On Tue, Jun 24, 2008 at 3:56 PM, Steve Comstock
>> <st...@trainersfriend.com> wrote:
>>
>>> Making all in srclib
>>> Making all in apr
>>> ..
>>> WARNING CCN3068 ./dso/unix/dso.c:139   Operation between types 
>>> "void*" and
>>> "int" is not allowed.
>>> WARNING CCN3068 ./dso/unix/dso.c:153   Operation between types "const 
>>> char*"
>>> and "int" is not allowed.
>>> WARNING CCN3196 ./dso/unix/dso.c:227   Initialization between types 
>>> "void*"
>>> and "int" is not allowed.
>>> WARNING CCN3068 ./dso/unix/dso.c:231   Operation between types "const 
>>> char*"
>>> and "int" is not allowed.
>>> FSUM3065 The COMPILE step ended with return code 4.
>>> .
>>> .
>>> .
>>> ar: FSUM6180 file "passwd/apr_getpass.o": EDC5129I No such file or
>>> directory.
>>> ar: FSUM6180 file "strings/apr_cpystrn.o": EDC5129I No such file or
>>> directory.
>>> ar: FSUM6180 file "strings/apr_fnmatch.o": EDC5129I No such file or
>>> directory.
>>
>> I don't see any problems like this building the httpd-2.2.9 tarball on
>> Linux with no separate apr[-util] downloads so I have to believe the
>> apr[-util] that httpd-2.2.9 comes with is compatible.  
> 
> Greg,
> 
> Thanks for running the test.
> 
>> Where did you get your build tools, especially libtool?  
> 
> OK. I started from this page:
> 
>   http://people.apache.org/~trawick/apache-2-on-zos.html
> 
> which is, admittedly, a little long in the tooth, but the
> only page I could find about porting Apache to z/OS. Note,
> for example, the page title does not say z/OS but OS/390.
> 
> On that page is a list of tools to get:
> 
>   * IBM's C compiler; check
> 
>   * non-GNU libtool (don't know why he says non-GNU,
>     but there is a link there to:
>       http://apache.org/~trawick/libtool.tar.Z)
>     this is the version I installed
> 
>   * GNU autoconf and m4; he provides ftp links; I got
>     these, but it looks like this stuff now comes
>     bundled in the Apache tarball; not sure which one
>     I ended up using, but probably the version that
>     came with the Apache tarball
> 
>   * shell script to unpack tarball, xtar (which is just
>     a text file with around a dozen lines of code); check
> 
>   * the Apache tarball. he points to the 2.0 version, but
>     I wanted to try and work with the latest version; it
>     turns out the latest version comes in two flavors,
>     .gz and .bz2; I got the .gz version; this means I had
>     to go get gzip from the z/OS UNIX ported tools page,
>     which I did.
> 
> 
>> and what do you see if you do
>>
>> ls srclib/apr/passwd/
> 
>   -rw-r--r--   1 ADMINS   SYS1        6714 Jun 14 14:36 apr_getpass.c
> 
>>
>> i.e., was there a problem compiling apr_getpass.c ?
> 
> Not sure. The code is there, how do I tell if the
> compile was successful? [There are no other files
> in the directory.]  Of course, this is after I have
> installed the new apr and apr-util but before I run
> the five+ hour long configure for httpd-2.2.9

Guessing there was no source of entropy.  C.f. apr ./configure;

   --with-egd[=DIR]        use EGD-compatible socket
   --with-devrandom[=DEV]  use /dev/random or compatible [searches by default]



Re: Trouble in river city.

Posted by Greg Ames <gr...@gmail.com>.
On Wed, Jun 25, 2008 at 1:52 PM, Steve Comstock
<st...@trainersfriend.com> wrote:

>> and what do you see if you do
>>
>> ls srclib/apr/passwd/
>
>  -rw-r--r--   1 ADMINS   SYS1        6714 Jun 14 14:36 apr_getpass.c
>
that means that it didn't get compiled.  after make, mine looks like:

$ ls -l srclib/apr/passwd/
total 40
-rw-r--r--   1 USER193  WASUSER     6478 Oct 25  2006 apr_getpass.c
-rw-r--r--   1 USER193  WASUSER       10 Jun 29 12:04 apr_getpass.lo
-rw-r--r--   1 USER193  WASUSER     6000 Jun 29 12:04 apr_getpass.o

Greg

Re: Trouble in river city.

Posted by "William A. Rowe, Jr." <wr...@rowe-clan.net>.
Greg Ames wrote:
> 
>> Same goes for libtool.
> 
> GNU libtool for z/OS doesn't work well at all, at least not for
> building httpd-2.x.  Sure, the ideal solution would be to fix it.  But
> it is GPLed which means that for all practical purposes, I can't work
> on it.  Even if I could, it is pretty complex and has more
> functionality than we need/use for Apache httpd, and as far as I know,
> lacks knowledge of z/OS things like exports files and how shared
> objects work on this platform.  So it was simpler for us to create our
> own libtool tailored for httpd/apr.

Sorry to hear you are encumbered from working on it at all :(

Actually your comments on z/OS mirror many of the issues on AIX, which the
modern libtools support to one degree or another.  I'd think that anyone
looking to hack at the sources of libtool would want to watch AIX, Win32
and other more complicated schemas where the final bindings need to exist
and symbols need to resolve.  But it is danged complex.

On a similar topic, please look at the jlibtool.c sources which *are* AL2
licensed and embedded withing apr, can be optionally toggled using the
--enable-experimental-libtool - or disable it altogether using the
--without-libtool flag (which probably won't let you create shared libs,
but perhaps it could be hacked to do so).





libtool

Posted by Steve Comstock <st...@trainersfriend.com>.
Greg Ames wrote:
> On Sun, Jun 29, 2008 at 12:01 PM, Steve Comstock
> <st...@trainersfriend.com> wrote:
> 
>> Isn't the correct solution to fix autoconf so it's
>> aware of z/OS? It doesn't seem right to have multiple
>> versions of a single function, but rather to have
>> one function that supports multiple platforms.
> 
> GNU autoconf for z/OS works fine, it just creates additional
> complexity/challenges beyond the httpd 1.3 build system.
> 
>> Same goes for libtool.
> 
> GNU libtool for z/OS doesn't work well at all, at least not for
> building httpd-2.x.  Sure, the ideal solution would be to fix it.  But
> it is GPLed which means that for all practical purposes, I can't work
> on it.  Even if I could, it is pretty complex and has more
> functionality than we need/use for Apache httpd, and as far as I know,
> lacks knowledge of z/OS things like exports files and how shared
> objects work on this platform.  So it was simpler for us to create our
> own libtool tailored for httpd/apr.
> 
> Greg
> 

OK. But...

the Apache 2.0 on OS/390 page says to get the non-GNU libtool
(never says where to put it nor how to install it; but I can
make that up).

Later it says to run .buildconf

Never says to run or use libtool. Why get libtool?

For that matter, the page says to get autoconf and m4 and
never refers to them again. So why get them? Do I need
them? Do I use them? How or where?

----

Earlier you wrote:

./buildconf is where libtoolize is done which is necessary.  I don't
*think* you need the rest of buildconf, but we always run buildconf so
that might be the path of least resistance.

--

More mystery. "libtoolize"? What is libtoolized? Where is it used
afterwards?

-----------

So, I've got the non-GNU libtool, unwound it into
/usr/lpp/zApache, which creates /usr/lpp/zApache/libtool
which contains install instructions:

Installation of this libtool on OS/390:

1) unpack the tarball via pax since the contents are ASCII
2) make
3) export LIBTOOL_PREFIX=xxx     (e.g., /usr/local)
4) make install

what prefix should I use? /usr/lpp/zApache or
/usr/lpp/zApache/libtool?

to me, the instructions are ambiguous. I'm gonna'
guess /usr/lpp/zApache.

----------------

OK. Seems to have gone OK. Guess I'm ready to run buildconf

ARRRRRRRGGGGGG:

ADMINS:/Z19/usr/lpp/zApache/httpd-2.2.9: >./buildconf
found apr source: srclib/apr
found apr-util source: srclib/apr-util
rebuilding srclib/apr/configure
buildconf: checking installation...
buildconf: python not found.
            You need python installed
            to build APR from SVN.
./buildconf failed for apr


python? I need to install python? How come the docs don't
mention this?

Help again.


Kind regards,

-Steve Comstock
The Trainer's Friend, Inc.

303-393-8716
http://www.trainersfriend.com

   z/OS Application development made easier
     * Our classes include
        + How things work
        + Programming examples with realistic applications
        + Starter / skeleton code
        + Complete working programs
        + Useful utilities and subroutines
        + Tips and techniques

==> Check out the Trainer's Friend Store to purchase z/OS  <==
==> application developer toolkits. Sample code in four    <==
==> programming languages, JCL to Assemble or compile,     <==
==> bind and test.                                         <==
==>   http://www.trainersfriend.com/TTFStore/index.html    <==

Re: Trouble in river city.

Posted by Greg Ames <gr...@gmail.com>.
On Sun, Jun 29, 2008 at 12:39 PM, Steve Comstock
<st...@trainersfriend.com> wrote:

> Would it be best to configure and make apr and apr-util
> then use httpd configure with --with-apr=/usr/lpp/zApache ?

I almost always configure and make them together on z/OS.  I'm not
aware of any reason why building them separately won't work though.

Greg

Re: Trouble in river city.

Posted by Steve Comstock <st...@trainersfriend.com>.
Greg Ames wrote:
> On Sun, Jun 29, 2008 at 12:01 PM, Steve Comstock
> <st...@trainersfriend.com> wrote:
> 
>> Isn't the correct solution to fix autoconf so it's
>> aware of z/OS? It doesn't seem right to have multiple
>> versions of a single function, but rather to have
>> one function that supports multiple platforms.
> 
> GNU autoconf for z/OS works fine, it just creates additional
> complexity/challenges beyond the httpd 1.3 build system.
> 
>> Same goes for libtool.
> 
> GNU libtool for z/OS doesn't work well at all, at least not for
> building httpd-2.x.  Sure, the ideal solution would be to fix it.  But
> it is GPLed which means that for all practical purposes, I can't work
> on it.  Even if I could, it is pretty complex and has more
> functionality than we need/use for Apache httpd, and as far as I know,
> lacks knowledge of z/OS things like exports files and how shared
> objects work on this platform.  So it was simpler for us to create our
> own libtool tailored for httpd/apr.
> 
> Greg
> 

Ah. OK. Thanks for that. I'll play around with that for awhile.

Would it be best to configure and make apr and apr-util
then use httpd configure with --with-apr=/usr/lpp/zApache ?



Kind regards,

-Steve Comstock
The Trainer's Friend, Inc.

303-393-8716
http://www.trainersfriend.com

   z/OS Application development made easier
     * Our classes include
        + How things work
        + Programming examples with realistic applications
        + Starter / skeleton code
        + Complete working programs
        + Useful utilities and subroutines
        + Tips and techniques

==> Check out the Trainer's Friend Store to purchase z/OS  <==
==> application developer toolkits. Sample code in four    <==
==> programming languages, JCL to Assemble or compile,     <==
==> bind and test.                                         <==
==>   http://www.trainersfriend.com/TTFStore/index.html    <==

Re: Trouble in river city.

Posted by Greg Ames <gr...@gmail.com>.
On Sun, Jun 29, 2008 at 12:01 PM, Steve Comstock
<st...@trainersfriend.com> wrote:

> Isn't the correct solution to fix autoconf so it's
> aware of z/OS? It doesn't seem right to have multiple
> versions of a single function, but rather to have
> one function that supports multiple platforms.

GNU autoconf for z/OS works fine, it just creates additional
complexity/challenges beyond the httpd 1.3 build system.

> Same goes for libtool.

GNU libtool for z/OS doesn't work well at all, at least not for
building httpd-2.x.  Sure, the ideal solution would be to fix it.  But
it is GPLed which means that for all practical purposes, I can't work
on it.  Even if I could, it is pretty complex and has more
functionality than we need/use for Apache httpd, and as far as I know,
lacks knowledge of z/OS things like exports files and how shared
objects work on this platform.  So it was simpler for us to create our
own libtool tailored for httpd/apr.

Greg

Re: Trouble in river city.

Posted by Steve Comstock <st...@trainersfriend.com>.
Greg Ames wrote:
> On Wed, Jun 25, 2008 at 1:52 PM, Steve Comstock
> <st...@trainersfriend.com> wrote:
>> Greg Ames wrote:
> 
>>> Where did you get your build tools, especially libtool?
>> OK. I started from this page:
>>
>>  http://people.apache.org/~trawick/apache-2-on-zos.html
>>
>> which is, admittedly, a little long in the tooth, but the
>> only page I could find about porting Apache to z/OS. Note,
>> for example, the page title does not say z/OS but OS/390.
> 
> Good.  That page is dated for sure, but it is the best place for you
> to start.  We have had to do other build tweaks since that was written
> to get httpd 2.2.x to build on z/OS, but they are minor relative to
> what is takes for 2.0.x*.  I am currently in crunch mode with my day
> job, but once that eases up I hope to do some 2.2.x updates.
> 
> In the mean time, why don't you download the latest httpd 2.0.x
> tarball and see if you can build that starting with ./buildconf?  That
> should get you familiar with the process and check out the toolchain.
> Once we get you through a 2.0.x build, it won't be that bad to get
> 2.2.x built.
> 
> Greg
> 
> * 2.0.x - the big challenges here are autoconf and dealing with how
> shared objects work differently on z/OS than on many other Unices.

Isn't the correct solution to fix autoconf so it's
aware of z/OS? It doesn't seem right to have multiple
versions of a single function, but rather to have
one function that supports multiple platforms. Same
goes for libtool.


Kind regards,

-Steve Comstock
The Trainer's Friend, Inc.

303-393-8716
http://www.trainersfriend.com

   z/OS Application development made easier
     * Our classes include
        + How things work
        + Programming examples with realistic applications
        + Starter / skeleton code
        + Complete working programs
        + Useful utilities and subroutines
        + Tips and techniques

==> Check out the Trainer's Friend Store to purchase z/OS  <==
==> application developer toolkits. Sample code in four    <==
==> programming languages, JCL to Assemble or compile,     <==
==> bind and test.                                         <==
==>   http://www.trainersfriend.com/TTFStore/index.html    <==

Re: Trouble in river city.

Posted by Steve Comstock <st...@trainersfriend.com>.
Greg Ames wrote:
> On Fri, Jun 27, 2008 at 10:17 AM, Greg Ames <gr...@gmail.com> wrote:
> 
>> In the mean time, why don't you download the latest httpd 2.0.x
>> tarball and see if you can build that starting with ./buildconf?  That
>> should get you familiar with the process and check out the toolchain.
>> Once we get you through a 2.0.x build, it won't be that bad to get
>> 2.2.x built.
> 
> another hint: export _CC_CCMODE=1 prior to make, or to be on the safe
> side, prior to ./configure as well.  I don't know exactly what it
> does, but without it the link of the httpd object dies as if cc is
> interpreting flags as filenames:
> 
>  IEW2785S D21A AN ATTEMPT TO OBTAIN FILE STATISTICS FOR PATHNAME  ./-Wl,DLL
>           FAILED. 'HFS ISSUED RETURN CODE 00000081 AND REASON CODE 053B006C.
>  IEW2785S D21A AN ATTEMPT TO OBTAIN FILE STATISTICS FOR PATHNAME  ./-o  FAILED.
>           'HFS ISSUED RETURN CODE 00000081 AND REASON CODE 053B006C.
> 
> Greg

Good timing, thanks. I was jsut about to try my make.

A related point: I think you need to export _CXX_CXXSUFFIX=cpp also.

Kind regards,

-Steve Comstock
The Trainer's Friend, Inc.

303-393-8716
http://www.trainersfriend.com

   z/OS Application development made easier
     * Our classes include
        + How things work
        + Programming examples with realistic applications
        + Starter / skeleton code
        + Complete working programs
        + Useful utilities and subroutines
        + Tips and techniques

==> Check out the Trainer's Friend Store to purchase z/OS  <==
==> application developer toolkits. Sample code in four    <==
==> programming languages, JCL to Assemble or compile,     <==
==> bind and test.                                         <==
==>   http://www.trainersfriend.com/TTFStore/index.html    <==

Re: Trouble in river city.

Posted by Greg Ames <gr...@gmail.com>.
On Fri, Jun 27, 2008 at 10:17 AM, Greg Ames <gr...@gmail.com> wrote:

> In the mean time, why don't you download the latest httpd 2.0.x
> tarball and see if you can build that starting with ./buildconf?  That
> should get you familiar with the process and check out the toolchain.
> Once we get you through a 2.0.x build, it won't be that bad to get
> 2.2.x built.

another hint: export _CC_CCMODE=1 prior to make, or to be on the safe
side, prior to ./configure as well.  I don't know exactly what it
does, but without it the link of the httpd object dies as if cc is
interpreting flags as filenames:

 IEW2785S D21A AN ATTEMPT TO OBTAIN FILE STATISTICS FOR PATHNAME  ./-Wl,DLL
          FAILED. 'HFS ISSUED RETURN CODE 00000081 AND REASON CODE 053B006C.
 IEW2785S D21A AN ATTEMPT TO OBTAIN FILE STATISTICS FOR PATHNAME  ./-o  FAILED.
          'HFS ISSUED RETURN CODE 00000081 AND REASON CODE 053B006C.

Greg

Re: Trouble in river city.

Posted by Greg Ames <gr...@gmail.com>.
On Wed, Jun 25, 2008 at 1:52 PM, Steve Comstock
<st...@trainersfriend.com> wrote:
> Greg Ames wrote:

>> Where did you get your build tools, especially libtool?
>
> OK. I started from this page:
>
>  http://people.apache.org/~trawick/apache-2-on-zos.html
>
> which is, admittedly, a little long in the tooth, but the
> only page I could find about porting Apache to z/OS. Note,
> for example, the page title does not say z/OS but OS/390.

Good.  That page is dated for sure, but it is the best place for you
to start.  We have had to do other build tweaks since that was written
to get httpd 2.2.x to build on z/OS, but they are minor relative to
what is takes for 2.0.x*.  I am currently in crunch mode with my day
job, but once that eases up I hope to do some 2.2.x updates.

In the mean time, why don't you download the latest httpd 2.0.x
tarball and see if you can build that starting with ./buildconf?  That
should get you familiar with the process and check out the toolchain.
Once we get you through a 2.0.x build, it won't be that bad to get
2.2.x built.

Greg

* 2.0.x - the big challenges here are autoconf and dealing with how
shared objects work differently on z/OS than on many other Unices.

Re: Trouble in river city.

Posted by Steve Comstock <st...@trainersfriend.com>.
Greg Ames wrote:
> On Tue, Jun 24, 2008 at 3:56 PM, Steve Comstock
> <st...@trainersfriend.com> wrote:
> 
>> Making all in srclib
>> Making all in apr
>> ..
>> WARNING CCN3068 ./dso/unix/dso.c:139   Operation between types "void*" and
>> "int" is not allowed.
>> WARNING CCN3068 ./dso/unix/dso.c:153   Operation between types "const char*"
>> and "int" is not allowed.
>> WARNING CCN3196 ./dso/unix/dso.c:227   Initialization between types "void*"
>> and "int" is not allowed.
>> WARNING CCN3068 ./dso/unix/dso.c:231   Operation between types "const char*"
>> and "int" is not allowed.
>> FSUM3065 The COMPILE step ended with return code 4.
>> .
>> .
>> .
>> ar: FSUM6180 file "passwd/apr_getpass.o": EDC5129I No such file or
>> directory.
>> ar: FSUM6180 file "strings/apr_cpystrn.o": EDC5129I No such file or
>> directory.
>> ar: FSUM6180 file "strings/apr_fnmatch.o": EDC5129I No such file or
>> directory.
> 
> I don't see any problems like this building the httpd-2.2.9 tarball on
> Linux with no separate apr[-util] downloads so I have to believe the
> apr[-util] that httpd-2.2.9 comes with is compatible.  

Greg,

Thanks for running the test.

> Where did you get your build tools, especially libtool?  

OK. I started from this page:

   http://people.apache.org/~trawick/apache-2-on-zos.html

which is, admittedly, a little long in the tooth, but the
only page I could find about porting Apache to z/OS. Note,
for example, the page title does not say z/OS but OS/390.

On that page is a list of tools to get:

   * IBM's C compiler; check

   * non-GNU libtool (don't know why he says non-GNU,
     but there is a link there to:
       http://apache.org/~trawick/libtool.tar.Z)
     this is the version I installed

   * GNU autoconf and m4; he provides ftp links; I got
     these, but it looks like this stuff now comes
     bundled in the Apache tarball; not sure which one
     I ended up using, but probably the version that
     came with the Apache tarball

   * shell script to unpack tarball, xtar (which is just
     a text file with around a dozen lines of code); check

   * the Apache tarball. he points to the 2.0 version, but
     I wanted to try and work with the latest version; it
     turns out the latest version comes in two flavors,
     .gz and .bz2; I got the .gz version; this means I had
     to go get gzip from the z/OS UNIX ported tools page,
     which I did.


> and what do you see if you do
> 
> ls srclib/apr/passwd/

   -rw-r--r--   1 ADMINS   SYS1        6714 Jun 14 14:36 apr_getpass.c

> 
> i.e., was there a problem compiling apr_getpass.c ?

Not sure. The code is there, how do I tell if the
compile was successful? [There are no other files
in the directory.]  Of course, this is after I have
installed the new apr and apr-util but before I run
the five+ hour long configure for httpd-2.2.9



Kind regards,

-Steve Comstock
The Trainer's Friend, Inc.

303-393-8716
http://www.trainersfriend.com

   z/OS Application development made easier
     * Our classes include
        + How things work
        + Programming examples with realistic applications
        + Starter / skeleton code
        + Complete working programs
        + Useful utilities and subroutines
        + Tips and techniques

==> Check out the Trainer's Friend Store to purchase z/OS  <==
==> application developer toolkits. Sample code in four    <==
==> programming languages, JCL to Assemble or compile,     <==
==> bind and test.                                         <==
==>   http://www.trainersfriend.com/TTFStore/index.html    <==

Re: Trouble in river city.

Posted by Greg Ames <gr...@gmail.com>.
On Tue, Jun 24, 2008 at 3:56 PM, Steve Comstock
<st...@trainersfriend.com> wrote:

> Making all in srclib
> Making all in apr
> ..
> WARNING CCN3068 ./dso/unix/dso.c:139   Operation between types "void*" and
> "int" is not allowed.
> WARNING CCN3068 ./dso/unix/dso.c:153   Operation between types "const char*"
> and "int" is not allowed.
> WARNING CCN3196 ./dso/unix/dso.c:227   Initialization between types "void*"
> and "int" is not allowed.
> WARNING CCN3068 ./dso/unix/dso.c:231   Operation between types "const char*"
> and "int" is not allowed.
> FSUM3065 The COMPILE step ended with return code 4.
> .
> .
> .
> ar: FSUM6180 file "passwd/apr_getpass.o": EDC5129I No such file or
> directory.
> ar: FSUM6180 file "strings/apr_cpystrn.o": EDC5129I No such file or
> directory.
> ar: FSUM6180 file "strings/apr_fnmatch.o": EDC5129I No such file or
> directory.

I don't see any problems like this building the httpd-2.2.9 tarball on
Linux with no separate apr[-util] downloads so I have to believe the
apr[-util] that httpd-2.2.9 comes with is compatible.  Where did you
get your build tools, especially libtool?  and what do you see if you
do

ls srclib/apr/passwd/

i.e., was there a problem compiling apr_getpass.c ?

Greg

Re: Trouble in river city.

Posted by Steve Comstock <st...@trainersfriend.com>.
William A. Rowe, Jr. wrote:
> Steve Comstock wrote:
>>
>> So two questions to the community:
>> 1) What causes this?
> 
> missing prototypes
> 
>> 2) How do I fix it?
> 
> you can replace srclib/apr and srclib/apr-util with apr/apr-util 1.3.2
> packages.  Better yet, build and install apr/apr-util 1.3.2 first and
> then point ./configure of httpd at --with-apr=path --with-apr-util=path
> (those would be installed paths).  Or if the installed apr/apr-util are
> in the path, httpd can find them (from bin/apr-1-config bin/apu-1-config).
> 
> Bill

OK, I'll have a go at it. But how did the missing prototypes go
missing? And how come I have to install a new apr/apr-util when
I just downloaded the current version of Apache?



Kind regards,

-Steve Comstock
The Trainer's Friend, Inc.

303-393-8716
http://www.trainersfriend.com

   z/OS Application development made easier
     * Our classes include
        + How things work
        + Programming examples with realistic applications
        + Starter / skeleton code
        + Complete working programs
        + Useful utilities and subroutines
        + Tips and techniques

==> Check out the Trainer's Friend Store to purchase z/OS  <==
==> application developer toolkits. Sample code in four    <==
==> programming languages, JCL to Assemble or compile,     <==
==> bind and test.                                         <==
==>   http://www.trainersfriend.com/TTFStore/index.html    <==

Re: Trouble in river city.

Posted by "William A. Rowe, Jr." <wr...@rowe-clan.net>.
Steve Comstock wrote:
> 
> So two questions to the community:
> 1) What causes this?

missing prototypes

> 2) How do I fix it?

you can replace srclib/apr and srclib/apr-util with apr/apr-util 1.3.2
packages.  Better yet, build and install apr/apr-util 1.3.2 first and
then point ./configure of httpd at --with-apr=path --with-apr-util=path
(those would be installed paths).  Or if the installed apr/apr-util are
in the path, httpd can find them (from bin/apr-1-config bin/apu-1-config).

Bill