GNU bug report logs - #24300
intprops.h GL_INT_OP_WRAPV_LONGISH one too many ")"

Previous Next

Package: diffutils;

Reported by: "John E. Malmberg" <wb8tyw <at> qsl.net>

Date: Wed, 24 Aug 2016 15:35:01 UTC

Severity: normal

Done: Paul Eggert <eggert <at> cs.ucla.edu>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 24300 in the body.
You can then email your comments to 24300 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-diffutils <at> gnu.org:
bug#24300; Package diffutils. (Wed, 24 Aug 2016 15:35:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to "John E. Malmberg" <wb8tyw <at> qsl.net>:
New bug report received and forwarded. Copy sent to bug-diffutils <at> gnu.org. (Wed, 24 Aug 2016 15:35:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: "John E. Malmberg" <wb8tyw <at> qsl.net>
To: bug-diffutils <at> gnu.org
Subject: intprops.h GL_INT_OP_WRAPV_LONGISH one too many ")"
Date: Wed, 24 Aug 2016 08:30:24 -0500
Greetings,

While building diffutils 3.5 on OpenVMS/IA64 8.4, I discovered:

 I1        5525 #  define _GL_INT_OP_WRAPV_LONGISH(a, b, r, op, overflow) \
 I1        5526     _GL_INT_OP_CALC (a, b, r, op, overflow, unsigned 
long int, \
 I1        5527                      long int, LONG_MIN, LONG_MAX))


This was tripped because the VMS limits.h file does not define LLONG_MIN 
and LLONG_MAX.


I am currently working around this issue by adding:

#define LLONG_MAX __INT64_MAX
#define LLONG_MIN __INT64_MIN

To a pre-include header file on the modules, which works for the OpenVMS 
Alpha and IA64 builds.

Regards,
-John




Reply sent to Paul Eggert <eggert <at> cs.ucla.edu>:
You have taken responsibility. (Thu, 25 Aug 2016 03:54:02 GMT) Full text and rfc822 format available.

Notification sent to "John E. Malmberg" <wb8tyw <at> qsl.net>:
bug acknowledged by developer. (Thu, 25 Aug 2016 03:54:02 GMT) Full text and rfc822 format available.

Message #10 received at 24300-done <at> debbugs.gnu.org (full text, mbox):

From: Paul Eggert <eggert <at> cs.ucla.edu>
To: "John E. Malmberg" <wb8tyw <at> qsl.net>, 24300-done <at> debbugs.gnu.org
Subject: Re: [bug-diffutils] bug#24300: intprops.h GL_INT_OP_WRAPV_LONGISH one
 too many ")"
Date: Wed, 24 Aug 2016 20:53:28 -0700
[Message part 1 (text/plain, inline)]
John E. Malmberg wrote:
> I am currently working around this issue by adding:
>
> #define LLONG_MAX __INT64_MAX
> #define LLONG_MIN __INT64_MIN

Thanks, I installed into Gnulib the attached patch, which should be equivalent.
[0001-intprops-port-to-OpenVMS.patch (text/x-diff, attachment)]

Information forwarded to bug-diffutils <at> gnu.org:
bug#24300; Package diffutils. (Thu, 25 Aug 2016 05:09:01 GMT) Full text and rfc822 format available.

Message #13 received at 24300 <at> debbugs.gnu.org (full text, mbox):

From: "John E. Malmberg" <wb8tyw <at> qsl.net>
To: 24300 <at> debbugs.gnu.org
Subject: intprops.h - _GL_INT_OPT_WRAPV_LONGISH (xxx))
Date: Thu, 25 Aug 2016 00:08:46 -0500
The macro _GL_INT_OPT_WRAPV_LONGISH has one more right parenthesis on it 
than left parenthesis.

This causes compiles to fail on platforms with out a long long type.

I do not see that fixed in the patch for this bug.

Regards,
-John





Information forwarded to bug-diffutils <at> gnu.org:
bug#24300; Package diffutils. (Thu, 25 Aug 2016 05:30:03 GMT) Full text and rfc822 format available.

Message #16 received at 24300 <at> debbugs.gnu.org (full text, mbox):

From: Paul Eggert <eggert <at> cs.ucla.edu>
To: "John E. Malmberg" <wb8tyw <at> qsl.net>, 24300 <at> debbugs.gnu.org
Subject: Re: [bug-diffutils] bug#24300: intprops.h - _GL_INT_OPT_WRAPV_LONGISH
 (xxx))
Date: Wed, 24 Aug 2016 22:29:37 -0700
[Message part 1 (text/plain, inline)]
John E. Malmberg wrote:
> The macro _GL_INT_OPT_WRAPV_LONGISH has one more right parenthesis on it than
> left parenthesis.

Ah, sorry, that wasn't obvious in the original bug report. I installed the 
attached further patch. Apparently this part of the code has never been 
exercised on any platform before (which means you get to be the brave adventurer 
:-). It's not often we run into a platform lacking decent 'long long' support 
these days.
[0001-intprops-fix-paren-typo-on-old-platforms.patch (text/x-diff, attachment)]

Information forwarded to bug-diffutils <at> gnu.org:
bug#24300; Package diffutils. (Thu, 25 Aug 2016 13:07:01 GMT) Full text and rfc822 format available.

Message #19 received at 24300 <at> debbugs.gnu.org (full text, mbox):

From: "John E. Malmberg" <wb8tyw <at> qsl.net>
To: 24300 <at> debbugs.gnu.org
Subject: intprops.h - _GL_INT_OPT_WRAPV_LONGISH (xxx))
Date: Thu, 25 Aug 2016 08:06:48 -0500
> Apparently this part of the code has never been exercised on any
> platform before (which means you get to be the brave adventurer .
> It's not often we run into a platform lacking decent 'long long'
> support these days.

FYI: The port I am working on is in a Mecurial repository at:
https://sourceforge.net/p/gnv/diff_utils/ci/default/tree/

It is not related to the Steven Schweda port.

It is organized with the unmodified upstream code in one directory tree 
branch and the OpenVMS specific files in another directory tree.

The OpenVMS build procedure overlays the the two directory.  In theory, 
I can change the overlay setup to build against a checkout of a beta 
release or even master.  (OpenVMS can not yet run autotools)

This will end up as part of the updated GNV project
https://sourceforge.net/projects/gnv/

Building diffutils on OpenVMS for use with GNV was done with the
following minimum software versions

 * HP C 7.x
 * GNV AR_TOOLS 3.0.2
 * GNV Bash 4.3.42
 * GNV Coreutils 8.24
 * GNV Grep 4.1.3
 * GNV LD_TOOLS 3.0.4
 * GNV MAKE 3.78.1  - Special Fork, GNU make will not work for this.
 * GNV SED V4.2.2
 ZIP 3.0 available by foreign command.

PASS: basic
PASS: bignum
PASS: binary
brief-vs-stat-zero-kernel-lies: skipped test: no /proc/cmdline file
SKIP: brief-vs-stat-zero-kernel-lies
PASS: colliding-file-names
diff3: set-up failure:
ERROR: diff3
PASS: excess-slash
SKIP: help-version
PASS: function-line-vs-leading-space
PASS: ignore-matching-lines
PASS: label-vs-func
FAIL: new-file
PASS: no-dereference
FAIL: no-newline-at-eof
PASS: stdin
PASS: strcoll-0-names
FAIL: filename-quoting
FAIL: colors
============================================================================
Testsuite summary for GNU diffutils 3.5
============================================================================
# TOTAL: 18
# PASS:  11
# SKIP:  2
# XFAIL: 0
# FAIL:  4
# XPASS: 0
# ERROR: 1

I am still investigating the diff3 test failure, and need to implement a 
replacement popen() routine on VMS before I can release a fully 
functional binary kit.

The launched editor portion will not be implemented as none of the 
native interactive OpenVMS editors will run with stdin/stdout not being 
a terminal device.

The rest of the failures/skips appear to be from differences in how 
OpenVMS works from what the shell scripts expect.

No /proc, No /dev except for /dev/null, no mkfifo, etc.

Regards,
-John





bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Fri, 23 Sep 2016 11:24:03 GMT) Full text and rfc822 format available.

This bug report was last modified 8 years and 266 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.