From: Junio C Hamano <gitster@pobox.com>
To: "Haritha via GitGitGadget" <gitgitgadget@gmail.com>
Cc: git@vger.kernel.org, Haritha <harithamma.d@ibm.com>
Subject: Re: [PATCH] This PR enables a successful git build on z/OS.
Date: Wed, 31 Jan 2024 09:12:37 -0800 [thread overview]
Message-ID: <xmqqr0hx77ga.fsf@gitster.g> (raw)
In-Reply-To: <pull.1663.git.git.1706710861778.gitgitgadget@gmail.com> (Haritha via GitGitGadget's message of "Wed, 31 Jan 2024 14:21:01 +0000")
"Haritha via GitGitGadget" <gitgitgadget@gmail.com> writes:
> Subject: Re: [PATCH] This PR enables a successful git build on z/OS.
Please think with longer term effects in mind when formulating the
title of the commit. What title will your next patch have if we
break the build for z/OS next time, after this fix goes in?
"enables a successful build again"? How would one tell which commit
changed what aspect of the build procedure to adjust to z/OS?
Perhaps
[PATCH] Makefile: adjust for z/OS that lack dynamic library support
or something would be specific enough.
> From: Haritha D <harithamma.d@ibm.com>
>
> Since the z/OS linker does not support searching dynamic libraries,
> and the current setting of CC_LD_DYNPATH results in a directory
> to be supplied to the link step with no option as the suffix,
> it causes a linker error because the z/OS LD linker
> does not accept directories as input.
Hmph, it is not quite clear to me where that "current setting of
CC_LD_DYNPATH" comes from and what exact value it is set to.
Here is my attempt (blind guesses are involved, so please correct
whatever errors you spot):
The autoconf generated configuration gives an empty string to
CC_LD_DYNPATH when it cannot find a way to use a shared library
and gives up with "linker does not support runtime path to
dynamic libraries" message. This leaves the directory path that
is usually appended to -Wl,-rpath, or -R, or whatever alone on
the command line of the linker, e.g. "-L/usr/lib /usr/lib", which
breaks the linker.
Work it around by setting CD_LD_DYNPATH to -L; we will end up
giving the same directory twice, e.g., "-L/usr/lib -L/usr/lib",
but it is only ugly without breaking anything.
While at it, define appropriate settings for z/OS (OS/390) in
the config.mak.uname file.
> Therefore, we workaround this by adding the -L option.
> And, Introduced z/OS (OS/390) as a platform in config.mak.uname
>
> Signed-off-by: Haritha D <harithamma.d@ibm.com>
> ---
> This PR enables a successful git build on z/OS.
>
> Since the z/OS linker does not support searching dynamic libraries, and
> the current setting of CC_LD_DYNPATH results in a directory to be
> supplied to the link step with no option as the suffix, it causes a
> linker error because the z/OS LD linker does not accept directories as
> input. Therefore, we workaround this by adding the -L option. And,
> Introduced z/OS (OS/390) as a platform in config.mak.uname
You do not have to write the same thing twice. The text under "---"
is meant for extra explanation that does not need to become part of
the final commit log message.
> diff --git a/config.mak.uname b/config.mak.uname
> index dacc95172dc..c8006f854e5 100644
> --- a/config.mak.uname
> +++ b/config.mak.uname
> @@ -638,6 +638,18 @@ ifeq ($(uname_S),NONSTOP_KERNEL)
> SANE_TOOL_PATH = /usr/coreutils/bin:/usr/local/bin
> SHELL_PATH = /usr/coreutils/bin/bash
> endif
> +ifeq ($(uname_S),OS/390)
> + NO_SYS_POLL_H = YesPlease
> + NO_STRCASESTR = YesPlease
> + NO_REGEX = YesPlease
> + NO_MMAP = YesPlease
> + NO_NSEC = YesPlease
> + NO_STRLCPY = YesPlease
> + NO_MEMMEM = YesPlease
> + NO_GECOS_IN_PWENT = YesPlease
> + HAVE_STRINGS_H = YesPlease
> + NEEDS_MODE_TRANSLATION = YesPlease
> +endif
I cannot tell if these are reasonable for z/OS myself and I'll take
your word for it ;-) After all you're the expert.
> diff --git a/configure.ac b/configure.ac
> index d1a96da14eb..64569a80d53 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -463,6 +463,9 @@ else
> CC_LD_DYNPATH=-Wl,+b,
> else
> CC_LD_DYNPATH=
> + if test "$(uname -s)" = "OS/390"; then
> + CC_LD_DYNPATH=-L
> + fi
> AC_MSG_WARN([linker does not support runtime path to dynamic libraries])
> fi
> fi
The use of "uname -s" looks totally out of place.
Wouldn't it be a better approach to set it in config.mak.uname for
OS/390 above and leave this part untouched, I wonder?
next prev parent reply other threads:[~2024-01-31 17:12 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-01-31 14:21 [PATCH] This PR enables a successful git build on z/OS Haritha via GitGitGadget
2024-01-31 16:12 ` Kristoffer Haugsbakk
2024-01-31 17:58 ` Junio C Hamano
2024-01-31 17:12 ` Junio C Hamano [this message]
2024-02-23 3:48 ` [PATCH v2 0/2] " Haritha via GitGitGadget
2024-02-23 3:48 ` [PATCH v2 1/2] build: support z/OS (OS/390) Haritha D via GitGitGadget
2024-02-23 3:48 ` [PATCH v2 2/2] an improvement: removed configure.ac changes Haritha D via GitGitGadget
2024-02-23 7:38 ` Junio C Hamano
2024-02-23 7:37 ` [PATCH v2 0/2] This PR enables a successful git build on z/OS Junio C Hamano
2024-02-25 6:10 ` [PATCH v3] build: support z/OS (OS/390) Haritha via GitGitGadget
2024-02-26 17:30 ` Junio C Hamano
2024-03-01 9:09 ` Haritha D
2024-03-01 14:39 ` Ghanshyam Thakkar
2024-03-01 18:15 ` Junio C Hamano
2024-03-01 18:25 ` rsbecker
2024-03-04 4:19 ` Haritha D
2024-03-06 5:44 ` [PATCH v4] " Haritha via GitGitGadget
2024-03-06 16:10 ` Junio C Hamano
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=xmqqr0hx77ga.fsf@gitster.g \
--to=gitster@pobox.com \
--cc=git@vger.kernel.org \
--cc=gitgitgadget@gmail.com \
--cc=harithamma.d@ibm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.