GNU bug report logs - #24248
[patch] avoid duplicate definition of global variable presume_output_tty

Previous Next

Package: diffutils;

Reported by: Hanno Böck <hanno <at> hboeck.de>

Date: Wed, 17 Aug 2016 01:19:02 UTC

Severity: normal

Tags: patch

Done: Jim Meyering <jim <at> meyering.net>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: help-debbugs <at> gnu.org (GNU bug Tracking System)
To: Jim Meyering <jim <at> meyering.net>
Cc: tracker <at> debbugs.gnu.org
Subject: bug#24248: closed ([patch] avoid duplicate definition of global
 variable presume_output_tty)
Date: Wed, 17 Aug 2016 05:10:02 +0000
[Message part 1 (text/plain, inline)]
Your message dated Tue, 16 Aug 2016 22:09:18 -0700
with message-id <CA+8g5KHSBPkYH+_j-i5qwgGkqnse4C0gUMeK-OUN6Ro93AoFKw <at> mail.gmail.com>
and subject line Re: [bug-diffutils] bug#24248: [patch] avoid duplicate definition of global variable presume_output_tty
has caused the debbugs.gnu.org bug report #24248,
regarding [patch] avoid duplicate definition of global variable presume_output_tty
to be marked as done.

(If you believe you have received this mail in error, please contact
help-debbugs <at> gnu.org.)


-- 
24248: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=24248
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: Hanno Böck <hanno <at> hboeck.de>
To: bug-diffutils <at> gnu.org
Subject: [patch] avoid duplicate definition of global variable
 presume_output_tty
Date: Wed, 17 Aug 2016 03:17:52 +0200
[Message part 3 (text/plain, inline)]
Hi,

The variable presume_output_tty is defined both in the diff.h header
and the file util.c (which includes diff.h).

The diff.h file makes sure that the variable is declared as external
except when it's included by the main program diff.c. But as it's also
declared in util.c we end up having two non-external declarations of it.

Traditionally gcc has allowed this behavior, which is probably the
reason it has not been spottet before, but it's not correct C. One can
get a more strict behavior here by passing -fno-common to the CFLAGS and
LDFLAGS and then linking will fail.

The solution is simple: Remove the superfluous declaration in util.c,
see attached patch. Please apply.

-- 
Hanno Böck
https://hboeck.de/

mail/jabber: hanno <at> hboeck.de
GPG: FE73757FA60E4E21B937579FA5880072BBB51E42
[diffutils-duplicate-definition-presume_output_tty.patch (text/x-patch, attachment)]
[Message part 5 (application/pgp-signature, inline)]
[Message part 6 (message/rfc822, inline)]
From: Jim Meyering <jim <at> meyering.net>
To: Hanno Böck <hanno <at> hboeck.de>
Cc: 24248-done <at> debbugs.gnu.org
Subject: Re: [bug-diffutils] bug#24248: [patch] avoid duplicate definition of
 global variable presume_output_tty
Date: Tue, 16 Aug 2016 22:09:18 -0700
[Message part 7 (text/plain, inline)]
On Tue, Aug 16, 2016 at 6:17 PM, Hanno Böck <hanno <at> hboeck.de> wrote:
> Hi,
>
> The variable presume_output_tty is defined both in the diff.h header
> and the file util.c (which includes diff.h).
>
> The diff.h file makes sure that the variable is declared as external
> except when it's included by the main program diff.c. But as it's also
> declared in util.c we end up having two non-external declarations of it.
>
> Traditionally gcc has allowed this behavior, which is probably the
> reason it has not been spottet before, but it's not correct C. One can
> get a more strict behavior here by passing -fno-common to the CFLAGS and
> LDFLAGS and then linking will fail.
>
> The solution is simple: Remove the superfluous declaration in util.c,
> see attached patch. Please apply.

Good catch. Thank you!
I will look into adding -fno-common when it is accepted.
Here's the patch I expect to push soon:
[duplicate-defn-of-presume_output_tty.diff (text/plain, attachment)]

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

Previous Next


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