[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: IBM z/OS compatibility issues
From: |
Bruno Haible |
Subject: |
Re: IBM z/OS compatibility issues |
Date: |
Fri, 13 Dec 2019 13:58:01 +0100 |
User-agent: |
KMail/5.1.3 (Linux/4.4.0-166-generic; KDE/5.18.0; x86_64; ; ) |
Hi Daniel,
> > Do you have a set of configure settings that you would recommend on z/OS?
> > So that we can add this info to the Gnow-How wiki [1]...
>
> There are quite a few, unfortunately. Before getting into them, however,
> there is something I am not clear on:
>
> How should platform-specific compiler flags, feature-test macros, etc.
> be split up among the following?
>
> 1. Flags set in Autoconf (common system/compiler checks)
>
> 2. Flags set in Automake ("compile" script)
>
> 3. Flags set in Gnulib's AC_USE_SYSTEM_EXTENSIONS()
>
> 4. Flags set in other Gnulib modules
>
> 5. Flags set by the user in the environment or configure command line
> (obtained from online documentation, discussions, etc.)
>
> z/OS has a number of idiosyncrasies that are not shared even by the
> other strange Unix platforms, and putting a lot of weight in bucket #5
> seems to me like it will make the system needlessly tricky to navigate
> for GNU users unfamiliar with it.
>
> Here are examples of what I currently think should go in each bucket:
>
> 1. -qhaltonmsg=CCN3296, so that missing header files are treated as
> errors, not warnings (thus allowing header checks to return
> meaningful results);
>
> 2. The -qnosearch/-qsearch logic previously described for xlc-wrap,
> so that it is possible for a project to replace an existing
> system header;
>
> 3 or 4. Feature-test macros needed to obtain a recognizable
> pthreads API;
>
> 5. CC=xlc (there are a few usable XLC compiler frontends, and the user
> might prefer one or another for whatever reason)
You're asking good questions. However, I would like to suggest to
start simple and get the more complex things done afterwards. By that, I mean:
- Put the xlc-wrap logic into the 'compile' script. We should not have
two different compile scripts, one for MSVC and one for z/OS. A single
script should do it.
- Other than that, use documentation. I have added the most important
information (from this mail thread) in
<https://gitlab.com/ghwiki/gnow-how/-/wikis/Platforms/Configuration>
and would like to invite you to create a new wiki page
<https://gitlab.com/ghwiki/gnow-how/-/wikis/Platforms/Configuration/zOS>.
Reason:
- There are few people trying to build GNU software for z/OS; therefore
communication among you and them should be fairly simple.
- Autoconf and Automake releases are not frequent these days; therefore
you would have to wait a long time until modified macros AC_PROG_CC
etc. become universally available.
- What you have written about this environment so far indicates that there
are a lot of complexities; therefore it is likely that you will have to
tweak your recommendations regarding compiler options and environment
variables. (Just like I tweaked the recommended options for building
on HP-UX today. And HP-UX is _way_ simpler than z/OS!)
Bruno
- Re: IBM z/OS compatibility issues,
Bruno Haible <=