Subject: bug#43195: closed (Re: bug#43195: [PATCH] Remove definitions of UP, BC and PC which should be provided by terminfo)

From: [email-masked] (GNU bug Tracking System)
Date: Sat, 12 Sep 2020 07:50:02 +0000

Your bug report

#43195: [PATCH] Remove definitions of UP, BC and PC which should be provided by terminfo

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
43195: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=43195
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#43195: [PATCH] Remove definitions of UP, BC and PC which should be provided by terminfo
From: Eli Zaretskii <[email-masked]>
To: Fāng-ruì Sòng <[email-masked]>
Cc: [email-masked]
Date: Sat, 12 Sep 2020 10:49:05 +0300
List-Id: <debbugs-submit.debbugs.gnu.org>

> From: Fāng-ruì Sòng <[email-masked]>
> Date: Sat, 12 Sep 2020 00:33:27 -0700
> Cc: [email-masked]
> 
> > > I don't know whether it is worth mentioning that -fcommon/-fno-common does not
> > > cause a linker error when libtinfo.so is linked (a common/regular definition
> > > preempts a shared definition).
> > >
> > > -fno-common + libtinfo.a => multiple definition error
> >
> > OK, but the change works even in these other cases, right?
> 
> Yep! The new code should work in other cases, -fcommon/-fno-common x
> libtinfo.a/libtinfo.so

OK, so I'm closing the bug report.

Thanks.

Subject: [PATCH] Remove definitions of UP, BC and PC which should be provided by terminfo
From: Fangrui Song <[email-masked]>
To: [email-masked]
Cc: Fangrui Song <[email-masked]>
Date: Thu, 3 Sep 2020 17:57:48 -0700
List-Id: <debbugs-submit.debbugs.gnu.org>

Otherwise if terminfo.c is compiled with -fno-common (GCC 10 and clang
11 default) and the archive version of the terminfo library is linked,
there will be a multiple definition linker error.

* src/terminfo.c (UP, BC, PC): Delete.
---
 src/terminfo.c | 6 ------
 1 file changed, 6 deletions(-)

diff --git a/src/terminfo.c b/src/terminfo.c
index 51fd32e9e0..cc93d1012e 100644
--- a/src/terminfo.c
+++ b/src/terminfo.c
@@ -21,12 +21,6 @@
 
 #include "lisp.h"
 
-/* Define these variables that serve as global parameters to termcap,
-   so that we do not need to conditionalize the places in Emacs
-   that set them.  */
-
-char *UP, *BC, PC;
-
 /* Interface to curses/terminfo library.
    Turns out that all of the terminfo-level routines look
    like their termcap counterparts except for tparm, which replaces
-- 
2.28.0.526.ge36021eeef-goog