bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Relocation patch for cygwin


From: Charles Wilson
Subject: Re: Relocation patch for cygwin
Date: Mon, 28 Feb 2011 21:32:17 -0500
User-agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.8.1.23) Gecko/20090812 Thunderbird/2.0.0.23 Mnenhy/0.7.6.666

On 2/28/2011 5:23 PM, Bruno Haible wrote:
> Thanks for the reminder. Three weeks ago, I concentrated on discussing the
> support of UCS-4 characters (still working on that). I've added minor tweaks
> (especially so as to avoid mixing the Win32 and the Cygwin approach), and
> committed this:

Thanks...

> +#if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
>  # define WIN32_NATIVE
>  #endif

> -#if defined _WIN32 || defined __WIN32__ || defined __CYGWIN__ || defined 
> __EMX__ || defined __DJGPP__
> -  /* Win32, Cygwin, OS/2, DOS */
> +#if ((defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__) || 
> defined __EMX__ || defined __DJGPP__
> +  /* Win32, OS/2, DOS */

I'm confused. You told Jan, in a different thread, to be /sure/ to use
WIN32_NATIVE throughout his new code, defined as above.  Yet here, you
repeat the same sequence of conditionals rather than using WIN32_NATIVE.
Why?

> +# ifdef __CYGWIN__
> +  /* The executable is accessible as /proc/<pid>/exe, at least in
> +     Cygwin >= 1.5.  */
> +  {
> +    char *link;
> +
> +    link = xreadlink ("/proc/self/exe");
> +    if (link != NULL)
> +      return link;
> +    if (executable_fd < 0)
> +      executable_fd = open ("/proc/self/exe", O_EXEC, 0);
> +  }
> +# endif

The comment doesn't match the code.  You talk about /proc/<pid>/exe, but
use /proc/self/exe...


> -#if defined _WIN32 || defined __WIN32__ || defined __CYGWIN__ || defined 
> __EMX__ || defined __DJGPP__
> -  /* Win32, Cygwin, OS/2, DOS */
> +#if ((defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__) || 
> defined __EMX__ || defined __DJGPP__
> +  /* Win32, OS/2, DOS */

Same as above (although in this case, relocatable.c, you did not add a
new stanza to define WIN32_NATIVE, so obv. you'd have to DO that before
you could use it).

> +#if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
> +/* Native Win32 only.
> +   On Cygwin, it is better to use the Cygwin provided /proc interface, than
> +   to use native Win32 API and cygwin_conv_to_posix_path, because it supports
> +   longer file names
> +   (see <http://cygwin.com/ml/cygwin/2011-01/msg00410.html>).  */

Ditto...

> -#if !(defined _WIN32 || defined __WIN32__ || defined __CYGWIN__)
> +#if !((defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__)
>    static bool tried_find_shared_library_fullname;
>    if (!tried_find_shared_library_fullname)

And ditto...

--
Chuck



reply via email to

[Prev in Thread] Current Thread [Next in Thread]