delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2010/01/19/09:37:06

X-Recipient: archive-cygwin AT delorie DOT com
X-SWARE-Spam-Status: No, hits=-2.0 required=5.0 tests=BAYES_00,SARE_MSGID_LONG40,SPF_PASS
X-Spam-Check-By: sourceware.org
MIME-Version: 1.0
In-Reply-To: <d37e30051001190453qdb0764br75e5bba1a0fdfbfd@mail.gmail.com>
References: <d37e30051001190453qdb0764br75e5bba1a0fdfbfd AT mail DOT gmail DOT com>
Date: Tue, 19 Jan 2010 15:36:53 +0100
Message-ID: <6910a61001190636y6fd704f7p57af4260f2fd31fb@mail.gmail.com>
Subject: Re: Problem with compiling Perl Curses.pm
From: Reini Urban <rurban AT x-ray DOT at>
To: cygwin AT cygwin DOT com
Cc: jurgen DOT defurne AT gmail DOT com
X-IsSubscribed: yes
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Id: <cygwin.cygwin.com>
List-Unsubscribe: <mailto:cygwin-unsubscribe-archive-cygwin=delorie DOT com AT cygwin DOT com>
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com

2010/1/19 Jurgen Defurne:
> I am beginning to upgrade my environment to Cygwin 1.7. Since I have a
> whole lot of extra requirements, especially in the realm of Perl, I
> have a test case to check my software against.
>
> Well, the second package I want to add is Perl Curses.pm, which does
> not compile anymore. I get
>
> CursesVar.c: In function =E2=80=98XS_Curses_Vars_STORE=E2=80=99:
> CursesVar.c:190: error: lvalue required as left operand of assignment
> CursesVar.c:197: error: lvalue required as left operand of assignment
> CursesVar.c:204: error: lvalue required as left operand of assignment
> CursesVar.c:211: error: lvalue required as left operand of assignment
> CursesVar.c:218: error: lvalue required as left operand of assignment
> CursesVar.c:225: error: lvalue required as left operand of assignment
>
> When I expand CursesVar with inclusion of ncurses.h, I see something like=
 this :
>
> XS(XS_Curses_Vars_STORE)
> {
> =A0 =A0dXSARGS;
> =A0 =A0{
> =A0int num =3D (int)SvIV((SV*)SvRV(ST(0)));
>
> =A0switch (num) {
> =A0case 1:
>
> =A0 =A0 ncwrap_LINES() =3D (int)SvIV(ST(1));
>
>>>> Which indeed looks wrong, since the LHS of the assignment is a
>>>> function call.

I can reproduce it
First we got at CursesVar.c:190:
	    LINES =3D (int)SvIV(ST(1));

CPAN.pm: Going to build G/GI/GIRAFFED/Curses-1.27.tgz

CPAN: CPAN::Reporter loaded ok (v1.1708)
GEN    function:  not applicable
PANELS functions: not enabled
MENUS  functions: not enabled
FORMS  functions: not enabled

Making a guess for -I and -L/-l options...
Guesses:
  includes:    '-I/usr/include/ncurses'
  libs:        '-lncurses'
  Curses type: irrelevant

Then CursesVar.c is regenerated by gen\make.CursesVar.c
It looks like this generation got triggered somehow and gets it wrong.
Because the DLL exporting part of ncurses/ncurses_dll.h does:

/*
 * For reentrant code, we map the various global variables into SCREEN by
 * using functions to access them.
 */
#define NCURSES_PUBLIC_VAR(name) ncwrap_##name
#define NCURSES_WRAPPED_VAR(type,name) extern type
NCURSES_PUBLIC_VAR(name)(void)

> I do not know if I am even on the right forum to ask this, but since I
> encounter it using Cygwin, I decided to start here. Next stop would
> probably be a Perl newsgroup or mailing list.

The CPAN bugtracker for Curses would be best.
I will put my patches also there.

http://search.cpan.org/dist/Curses/
=3D> http://rt.cpan.org/Public/Dist/Display.html?Name=3DCurses

> When I compare the current environment with what we where using, then
> we skipped 6 years. We used to use Cygwin 1.3 and 1.5, but then we had
> to stop using that, because we used MontaVista as development
> environment, but we stopped using that a half year ago, and now I want
> to update our environment with the most recent version of cygwin (not
> the least because of screen, but also because of the better completion
> facilities).

--=20
Reini Urban
http://phpwiki.org/           http://murbreak.at/

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019