delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2003/05/03/16:07:01

Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sources.redhat.com/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sources.redhat.com/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
X-Authentication-Warning: slinky.cs.nyu.edu: pechtcha owned process doing -bs
Date: Sat, 3 May 2003 16:06:37 -0400 (EDT)
From: Igor Pechtchanski <pechtcha AT cs DOT nyu DOT edu>
Reply-To: cygwin AT cygwin DOT com
To: Francis Litterio <franl AT world DOT std DOT com>
cc: cygwin AT cygwin DOT com
Subject: Re: How do I build the non-X version of rxvt.exe?
In-Reply-To: <u1xzf98kr.fsf@world.std.com>
Message-ID: <Pine.GSO.4.44.0305031602070.25128-100000@slinky.cs.nyu.edu>
Importance: Normal
MIME-Version: 1.0

On Sat, 3 May 2003, Francis Litterio wrote:

> Igor Pechtchanski wrote:
>
> > Short answer: unset your DISPLAY.
> >
> > Long answer: rxvt is compiled with support for both X11 and W11 (which is
> > rxvt's emulation of X on native Windows).  At runtime, it checks whether X
> > is running, and if it isn't (DISPLAY is unset), rxvt loads and uses the
> > W11 library.
>
> Igor,
>
> Thanks, but that did not solve the problem.  I found the code that makes
> that decision in function XOpenDisplay() in rxvt/W11/wrap/wrap.c:
>
> Display * XOpenDisplay(const char *name) {
>     ATOM class;
>     char *env_var=NULL;
>     if (_libname==NULL)
>     {
>         env_var = getenv("W11_LIBRARY");
>         if (env_var!=NULL) _libname = strdup(env_var);
>         else if (name==NULL || !strcmp(name,":0")) {
>             _libname="libW11";
>             class = _register_window_class();
>             _set_atom(class);
>             func_W11AddEventHandler=(proto_W11AddEventHandler *)_loadfunc("W11AddEventHandler");
>         }
>         else _libname="libX11";
>     }
>     ...
> }
>
> But that function does not seem to be linked into the executable:
>
>         bash$ strings -a src/rxvt.exe | grep W11_LIBRARY
>         bash$
>
> wrap.c is compiled and built into W11/lib/libX11.a, but for some reason
> that library isn't linked into the executable, so the above
> implementation of XOpenDisplay() isn't being used.  Here are some
> relevant excerpts from the build:
>
>         gcc -O -c wrap.c -I.. -mwin32
>         windres -i rxvt.rc -o rxvt_res.o
>         ar r ../lib/libX11.a wrap.o rxvt_res.o
>         ...
>         /bin/sh ../libtool --mode=link gcc -g -O2   rxvt.o librxvt.la  -L/usr/X11R6/lib -Wl,-rpath -Wl,/usr/X11R6/lib  -lX11   -o rxvt
>         gcc -g -O2 rxvt.o -Wl,-rpath -Wl,/usr/X11R6/lib -o rxvt  ./.libs/librxvt.a -L/usr/X11R6/lib -lX11
>
> Here's the exact sequence of commands I'm using:
>
>         bzcat rxvt-2.7.10-3-src.tar.bz2 | tar xvf -
>         cd rxvt
>         ./configure --prefix=/usr/local
>         make
>         unset DISPLAY
>         env | grep DISPLAY      # To verify previous command.
>         src/rxvt.exe
>
> Then there's a pause for six or seven seconds, and I see:
>
>         rxvt: can't open display :0
>
> Am I configuring the source incorrectly?  Any help is appreciated.
> --
> Francis Litterio

Francis,

IIRC, the W11 library is built as a DLL (libW11.dll), so you won't find
the string W11_LIBRARY in rxvt.exe.  For rxvt to find the DLL, it has to
either be in your path, or in the same directory as rxvt.exe.  It's quite
possible that if rxvt doesn't find this DLL it reverts to X11 code.

Try copying libW11.dll from wherever it's built to src/ and running
rxvt.exe again with DISPLAY unset.

After "make install" both rxvt.exe and libW11.dll go into $prefix/bin, so
this is not a problem.
	Igor
-- 
				http://cs.nyu.edu/~pechtcha/
      |\      _,,,---,,_		pechtcha AT cs DOT nyu DOT edu
ZZZzz /,`.-'`'    -.  ;-;;,_		igor AT watson DOT ibm DOT com
     |,4-  ) )-,_. ,\ (  `'-'		Igor Pechtchanski
    '---''(_/--'  `-'\_) fL	a.k.a JaguaR-R-R-r-r-r-.-.-.  Meow!

Knowledge is an unending adventure at the edge of uncertainty.
  -- Leto II


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

- Raw text -


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