From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on dcvr.yhbt.net X-Spam-Level: X-Spam-ASN: AS22989 209.51.188.0/24 X-Spam-Status: No, score=-3.9 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,HTML_MESSAGE, MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS, SPF_PASS shortcircuit=no autolearn=ham autolearn_force=no version=3.4.6 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dcvr.yhbt.net (Postfix) with ESMTPS id 410D71F63E for ; Mon, 30 Jan 2023 07:14:13 +0000 (UTC) Authentication-Results: dcvr.yhbt.net; dkim=pass (2048-bit key; unprotected) header.d=ibm.com header.i=@ibm.com header.a=rsa-sha256 header.s=pp1 header.b=Csym/phB; dkim-atps=neutral Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pMOMT-0000Gw-8R; Mon, 30 Jan 2023 02:13:54 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pMLUR-0006pq-FY for bug-gnulib@gnu.org; Sun, 29 Jan 2023 23:09:55 -0500 Received: from mx0b-001b2d01.pphosted.com ([148.163.158.5] helo=mx0a-001b2d01.pphosted.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pMLUM-0000Uz-Gc for bug-gnulib@gnu.org; Sun, 29 Jan 2023 23:09:53 -0500 Received: from pps.filterd (m0098416.ppops.net [127.0.0.1]) by mx0b-001b2d01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 30U2M8WU012519 for ; Mon, 30 Jan 2023 04:09:47 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=from : to : subject : date : message-id : content-type : mime-version; s=pp1; bh=pCZau+WS/4a3IFnudnLbw9bBQ6HLCn1q8kU7Z0e+ICc=; b=Csym/phBruQCWgrN05dsYeVGhYVL/GrzAc9ZbBxzX6svvgGDra/ZKAHufC86tVy20MZ/ qhOF+zTJAQ0BQ9YWgvOhOi1lPhBs+wu3hdHjaUDsEpDM5mrTi6Qu+uOW9vlUfYQn1f/P hlZGqYGwyU8iG6e0AM78TPguOvE0k9qMH644kso+IhZ64ApJ7kp6XBgvD8mcu/9jB93Z NnyQ3/hzMoxhvqGYzpVzs3BHoBiAXbkgDJUa6ZxwLNtMLQnuesB+T7y+IwlGYsDcxprj +g6uJKyywJ+Fg5tLkmrtcaIVAqQCjFCqcp6EmdL1943ej559OhrQwlNh3RsWhLL0o9Gc AQ== Received: from nam12-bn8-obe.outbound.protection.outlook.com (mail-bn8nam12lp2175.outbound.protection.outlook.com [104.47.55.175]) by mx0b-001b2d01.pphosted.com (PPS) with ESMTPS id 3nddv1cnpf-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Mon, 30 Jan 2023 04:09:47 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jFWS51yVVubeiSi3dLOkD9on0kddqUURH9oqlONHWGjnY7T/nc6RrCUVL+bPZ8IJWn/YQmgPxn6VbhnlWaLNkbS92Xbym1CzcOkywyWXRwhfBZvARChdixoOtfee0fAVbW+bhQmI1w5tQuDi/kAvDWlsNaRvXrQ0qV1UKbwlOifOFGkBPZoxrXJJvFD/93kboKvweVZr+yFwnArf7goaNrMFD1P7a2AoKReaZz5XcXs+4AmS7pJ13ajam8Dir2VUL8w4EvqXk3pZ4W7fKS4eI8gxjCsYh3ZKTdrCJDIM8Dy1d3eo10zgUELqUD6ENAXD9sXgW7wFUhbBjMljJfXUJA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=pCZau+WS/4a3IFnudnLbw9bBQ6HLCn1q8kU7Z0e+ICc=; b=J52VC8sJf6jfNnGixEWRCO7O4r86lYQf4e8iK6rrp18k1W4UAyh9GCIYZ7HUB9V3wy9fNQLl1UCeEN6dAZF071Un89pa6rRGiV4hXw/NvZfXLvGsuN7WVBhhRJ37IOiQ2+VtJ2wOXiMbV9W8/3GtMJJ324zZK3QbRefs5cSP6rByYic/vTyJPs7wb0Bam2hDEgzFUWaiHJA6e8Dz6HsW+KEvfV0XHzEuxKRBwcLBKQmZpgtbVd8F9jeYQBYyjOj3CPgkx1QlL0LMlILtFhtWF7Sb6FRqs3GEF4UngnmY2lh3ukQgoWMDE+9SbeYpaDMwIkTmEpz/vC2WZT/7qJfJ4A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=ca.ibm.com; dmarc=pass action=none header.from=ca.ibm.com; dkim=pass header.d=ca.ibm.com; arc=none Received: from BN7PR15MB2466.namprd15.prod.outlook.com (2603:10b6:406:8d::28) by LV2PR15MB5381.namprd15.prod.outlook.com (2603:10b6:408:17b::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6043.23; Mon, 30 Jan 2023 04:09:45 +0000 Received: from BN7PR15MB2466.namprd15.prod.outlook.com ([fe80::929b:620a:5d19:f7ba]) by BN7PR15MB2466.namprd15.prod.outlook.com ([fe80::929b:620a:5d19:f7ba%4]) with mapi id 15.20.6043.022; Mon, 30 Jan 2023 04:09:45 +0000 From: Igor Todorovski To: "bug-gnulib@gnu.org" , Mike Fulton Subject: Z/OS Enhancement to gnu lib Thread-Topic: Z/OS Enhancement to gnu lib Thread-Index: AQHZNGAHJU0lMeqgi0SQT1JweJxJhg== Date: Mon, 30 Jan 2023 04:09:45 +0000 Message-ID: Accept-Language: en-GB, en-US Content-Language: en-CA X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: BN7PR15MB2466:EE_|LV2PR15MB5381:EE_ x-ms-office365-filtering-correlation-id: c4225950-0fa0-4e29-0073-08db0277d230 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 6MxmlXzjjuY3OHdNWH0D+0ZXKBEbo6Qa7QgUaWgJfQbBxVgYomwfLp+lp3jIdk8B274iSr2fBSCcLiZx3XAIEq5uke/Rt1OnnQycWMnuHLaMvzdh+PibJVL9l6BKQZ0XDrtPNUvaVSeZU1HSDYqw3vYU5QQSI0MDJ0YaXFrCXDa5juMEnHelQO2JhPwnJb0T3NaX7rdxJK4NMEIRznJAyagRC905kyZrX68sdfDlkoXdnFNvLRqXwqRJTa6o83VOLUSP4lil4gLtODXtQ5gww7ZFsRbyZIZowz6wma4D+kxL3J31NfUeHYuz3NsdWyVToJmxxtXK2hOsZxj2nFCZbNJ/k2OsJhmAiRCY+3MmhTXmAR0hPHRiqunlQ6s1mdXguADR74u7OKhWrN2NTGD2VXPg/UgBQ9i/urha/kCC5HCOMmNOqmohrCrx+TfYGn6EPDAshTr2yoOGMIWlnA3+zW/1qz1o1vPEoeXse3NB4RNL03MBCzSOhsQqeolcdj1D+W+mBCOUXDtsJgf/YuAD3uK2sNo1zwmfJto3J4SpjqPYftFXI5wdjCD2YYTk8luQ7A+K4nhOBj1tm7uuLyMxcG5sJvRCU90EwUFQIQZzWkWHCm9zF8GzOmbemEfF91ZozUtmrHi/loLOIBKBbZfs3+Pl5nNyxI/dP3DRq2wQqMmNTHUYyDU290WFDvnr4C0/F1vKiWJEqMP+DEGpCxnt2A== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BN7PR15MB2466.namprd15.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230025)(376002)(346002)(366004)(136003)(396003)(39860400002)(451199018)(55016003)(83380400001)(122000001)(76116006)(110136005)(316002)(5660300002)(6636002)(38070700005)(38100700002)(33656002)(86362001)(91956017)(66446008)(186003)(9686003)(26005)(7696005)(478600001)(2906002)(8676002)(66556008)(52536014)(66946007)(8936002)(64756008)(66476007)(6506007)(41300700001)(71200400001)(9326002); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?Windows-1252?Q?35jt+BuU9XKGvAiwN7iGJLwqysnOV9d8uwZ8kaZY+JdEM8onYK79oigI?= =?Windows-1252?Q?bxUC7geWW8EjnSx4YEQR++8wOejgIt2upV6Cge45XKHIBNnQXK1NgyJ8?= =?Windows-1252?Q?Er0aBSB4pBM935o08AzeuHSvPx1ZItQlNfAt8X0fK2tS6/9kYqoq/n8n?= =?Windows-1252?Q?9ePJvtH4zGBZ9rpFIs8wt9cuiBcLEhmQUG/kV3EzxElVY7GwOusGQc8O?= =?Windows-1252?Q?ZQjw6hA4dQ0TEq/JChg3RlFKez7pcxeUY59fZNXmRtNJ9Smix5mPhSs0?= =?Windows-1252?Q?M/JPUBbHUOBUAMiepfqqWaOvmyUFlQ9GZv9Zu0T3yM7rnghfoT5S+LK7?= =?Windows-1252?Q?kaYHIiD91gVrukPLoKZ5981gEs6u4IdVbhdiAXXyR5oR7WVCsfJmeq3V?= =?Windows-1252?Q?qoVySIPIBjnFtkoeP5lu/0hW0m8WxIxBMqZ+u5OlSyFfXqVsJBYq9+NE?= =?Windows-1252?Q?2j3iUUZatuOJgYD1H9ZGo8ctKi1qsxUSIIXPJdO97tQquovIVKKVhCCV?= =?Windows-1252?Q?rLTPrL7WBc2R9VjgN1L6UGp2K/TyF8DXeBd8lVVmAc/OKrsNJZsrIKOv?= =?Windows-1252?Q?aKIXWQdtyy6lCtXAW1zjAEts9rY0VLAtGbES5X/inbLpZGcXx0S2+dlo?= =?Windows-1252?Q?YQqOhPjxieqzshSkrzd2dqhkABVWVzaricqW0Np2Xefb5EvuBQfKZ3Kh?= =?Windows-1252?Q?mpZvMcEKW1NQ7pQllWgHOFSeUnQzJUqrX8WtrU7/gWiYIzX67EQcJGZK?= =?Windows-1252?Q?w87cHT78MhlVXF8qG+U7+ASrij66y3MFjXUReFgQy0VF+lGgSzHQY7TB?= =?Windows-1252?Q?s0JFarlWc5JxISqeuf5NvKSaG8S5LreUgq78akNAd4Q2KMm5c2jGHj2b?= =?Windows-1252?Q?jgI7dORXP4dKHUjBO+YV/RH6EXhPR+8ib2XubwxBkWvrrClVkOjWzQlg?= =?Windows-1252?Q?5Eh63BcXM3KiOW5qAn4hnNeU5tyZtcH4f2xvmCChKMmrHPmkIhxcd26J?= =?Windows-1252?Q?zJFuegtlTNLd97XWEOJxca3eUhA5FUVIcj3FgmavQm35dhUwZIC6ZqnM?= =?Windows-1252?Q?J5HpnUCMIDJ7IIMWu9d3CJ3AdhG7/ERsMvCmrvrf2oX8sUeY21OmaPfp?= =?Windows-1252?Q?INeoQr51f/7XMjYpVlP21Y32LIrKpG/zlRmvFuFBkLwGkVxAYpWFPvN1?= =?Windows-1252?Q?rmnticZq4H89/qsNW+ovFSxob4bm4cqFh0zWw+16+BgXaqERSXXDOBXc?= =?Windows-1252?Q?rit6ja1Ry6MlN9d2SrYlku9c2R49X6dPSwEgmUqUgWm1sg59UYIvwxO9?= =?Windows-1252?Q?COFfSG6I1zvB9Vdxb4LvETdPLpdsq5ZSimD5QQAFTZUDwKIXqHR/eWiZ?= =?Windows-1252?Q?Hpt3j885Kpq+c+l6YahGiC1kd6VeMVs73iDRbyyS5GgBG0nYAdxEErpG?= =?Windows-1252?Q?rSwg4Jk1hF+t6BevLnmduumC623fyM4hHFDsrc7+t+e5Sl/vKY8KCtT8?= =?Windows-1252?Q?D8gMoQKZHpNmbGdon18KS8chCiqaPo+r+1YsN9nNvk2xKR/uRa9b3jiu?= =?Windows-1252?Q?GbFQ2dj5J/jW2kv8bGA1AdhSrQW+IUcZoILjHmHjRRMK4IaoK8nAPtHt?= =?Windows-1252?Q?9O8PZZeahfriX9fatvohU+CoP9KCqxe6i8Xvw4zPC1Z3V7BDyBPNT8LJ?= =?Windows-1252?Q?UYna/aSU9hShpsjRgnNfMJwA8FNy/Y3U22cyDVCbnJLPv1ds989UvQ?= =?Windows-1252?Q?=3D=3D?= Content-Type: multipart/alternative; boundary="_000_BN7PR15MB2466749C86F0FD8E23E7D0F0EDD39BN7PR15MB2466namp_" MIME-Version: 1.0 X-OriginatorOrg: ca.ibm.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BN7PR15MB2466.namprd15.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: c4225950-0fa0-4e29-0073-08db0277d230 X-MS-Exchange-CrossTenant-originalarrivaltime: 30 Jan 2023 04:09:45.3157 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: fcf67057-50c9-4ad4-98f3-ffca64add9e9 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: HzaeF3s27OJh3ZFs6KX9mnhdJRoaOZbudbPDw75DAQveNfCuQqnLewsk0YWiP6aWqhdlU3cMFiJJioNE7g64VA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV2PR15MB5381 X-Proofpoint-ORIG-GUID: 3SKJf_UpG4NXl4TDM7poCjBt9bzApjnG X-Proofpoint-GUID: 3SKJf_UpG4NXl4TDM7poCjBt9bzApjnG X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.930,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-30_01,2023-01-27_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 phishscore=0 lowpriorityscore=0 malwarescore=0 mlxlogscore=770 adultscore=0 clxscore=1011 priorityscore=1501 impostorscore=0 mlxscore=0 spamscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301300032 Received-SPF: pass client-ip=148.163.158.5; envelope-from=itodorov@ca.ibm.com; helo=mx0a-001b2d01.pphosted.com X-Spam_score_int: -19 X-Spam_score: -2.0 X-Spam_bar: -- X-Spam_report: (-2.0 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, HTML_MESSAGE=0.001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Mailman-Approved-At: Mon, 30 Jan 2023 02:13:51 -0500 X-BeenThere: bug-gnulib@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gnulib discussion list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnulib-bounces+normalperson=yhbt.net@gnu.org Sender: bug-gnulib-bounces+normalperson=yhbt.net@gnu.org --_000_BN7PR15MB2466749C86F0FD8E23E7D0F0EDD39BN7PR15MB2466namp_ Content-Type: text/plain; charset="Windows-1252" Content-Transfer-Encoding: quoted-printable Hi, I was wondering if the following changes I made to findutils (to get it to = function on z/OS) can be merged into gnulib. The first change (fdopendir.c) guards the close call. Otherwise we get a ba= d file descriptor on z/OS. I am not sure if this has any other consequences= , but so far I haven=92t seen any issues with findutils. The second change (openat-proc.c) adds a way to get the pathname when given= a file descriptor as an input. If you have any comments, please let me know: index c2b0e1e..82ae2e4 100644 --- a/gl/lib/fdopendir.c +++ b/gl/lib/fdopendir.c @@ -151,7 +151,9 @@ fdopendir_with_dup (int fd, int older_dupfd, struct sav= ed_cwd const *cwd) } else { +#ifndef __MVS__ close (fd); +#endif dir =3D fd_clone_opendir (dupfd, cwd); saved_errno =3D errno; if (! dir) diff --git a/gl/lib/openat-proc.c b/gl/lib/openat-proc.c index 3bacf7d..bb788fd 100644 --- a/gl/lib/openat-proc.c +++ b/gl/lib/openat-proc.c @@ -28,6 +28,7 @@ #include #include #include +#include #include #ifdef __KLIBC__ @@ -53,7 +54,27 @@ openat_proc_name (char buf[OPENAT_BUFFER_SIZE], int fd, = char const *file) return buf; } -#ifndef __KLIBC__ +#ifdef __MVS__ + { + char dir[_XOPEN_PATH_MAX]; + int rc =3D w_ioctl(fd, _IOCC_GPN, _XOPEN_PATH_MAX, dir); + if (rc =3D=3D 0) { + __e2a_l(dir, _XOPEN_PATH_MAX); + } + size_t bufsize; + dirlen =3D strlen (dir); + bufsize =3D dirlen + 1 + strlen (file) + 1; /* 1 for '/', 1 for null *= / + if (OPENAT_BUFFER_SIZE < bufsize) + { + result =3D malloc (bufsize); + if (! result) + return NULL; + } + + strcpy (result, dir); + result[dirlen++] =3D '/'; + } +#elif !defined( __KLIBC__) # define PROC_SELF_FD_FORMAT "/proc/self/fd/%d/" { enum { --_000_BN7PR15MB2466749C86F0FD8E23E7D0F0EDD39BN7PR15MB2466namp_ Content-Type: text/html; charset="Windows-1252" Content-Transfer-Encoding: quoted-printable

Hi,

 

I was wondering if the following changes I made to f= indutils (to get it to function on z/OS) can be merged into gnulib.

 

The first change (fdopendir.c) guards the close call. Otherwise we get = a bad file descriptor on z/OS. I am not sure if this has any other conseque= nces, but so far I haven=92t seen any issues with findutils.<= /p>

 

The second change (openat-proc.c) adds a way to get the pathname when give= n a file descriptor as an input.

 

If you have any comments, please let me know:


index c2b0e1e..82ae2e4 100644

--- a/gl/li= b/fdopendir.c

+++ b/gl/li= b/fdopendir.c

@@ -151,= 7 +151,9 @@ fdopendir_with_dup (int fd, int older_dupfd, struct saved_cwd c= onst *cwd)

  = ;       }

  = ;     else

  = ;       {

+#ifndef __= MVS__

  = ;         close (fd);

+#endif

  = ;         dir =3D fd_clone_opendir = (dupfd, cwd);

  = ;         saved_errno =3D errno;

  = ;         if (! dir)

diff --git = a/gl/lib/openat-proc.c b/gl/lib/openat-proc.c

index 3bacf= 7d..bb788fd 100644

--- a/gl/li= b/openat-proc.c

+++ b/gl/li= b/openat-proc.c

@@ -28,6= +28,7 @@

#include &l= t;stdio.h>

#include &l= t;stdlib.h>

#include &l= t;string.h>

+#include &= lt;termios.h>

#include &l= t;unistd.h>

=

 #ifde= f __KLIBC__

@@ -53,7= +54,27 @@ openat_proc_name (char buf[OPENAT_BUFFER_SIZE], int fd, char con= st *file)

  = ;     return buf;

  = ;   }

=

-#ifndef __= KLIBC__

+#ifdef __M= VS__

+  {

+ &nbs= p;  char dir[_XOPEN_PATH_MAX];

+ &nbs= p;  int rc =3D w_ioctl(fd, _IOCC_GPN, _XOPEN_PATH_MAX, dir);

+ &nbs= p;  if (rc =3D=3D 0) {

+ &nbs= p;    __e2a_l(dir, _XOPEN_PATH_MAX);

+ &nbs= p;  }

+ &nbs= p;  size_t bufsize;

+ &nbs= p;  dirlen =3D strlen (dir);

+ &nbs= p;  bufsize =3D dirlen + 1 + strlen (file) + 1; /* 1 for '/', 1 for nu= ll */

+ &nbs= p;  if (OPENAT_BUFFER_SIZE < bufsize)

+ &nbs= p;    {

+ &nbs= p;      result =3D malloc (bufsize);

+ &nbs= p;      if (! result)

+ &nbs= p;        return NULL;=

+ &nbs= p;    }

+

+ &nbs= p;  strcpy (result, dir);

+ &nbs= p;  result[dirlen++] =3D '/';

+  }

+#elif !def= ined( __KLIBC__)

# define PR= OC_SELF_FD_FORMAT "/proc/self/fd/%d/"

  = ; {

  = ;   enum {

 

--_000_BN7PR15MB2466749C86F0FD8E23E7D0F0EDD39BN7PR15MB2466namp_--