GNU bug report logs -
#24248
[patch] avoid duplicate definition of global variable presume_output_tty
Previous Next
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
[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)]
[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)]
[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.