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: References: 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 To: cygwin AT cygwin DOT com Cc: jurgen DOT defurne AT gmail DOT com Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: quoted-printable X-IsSubscribed: yes Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , 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