all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* Re: /srv/bzr/emacs/trunk r109685: Rely on <unistd.h> to declare 'environ'
       [not found] <mailman.445588.1345421843.854.emacs-diffs@gnu.org>
@ 2012-08-20  2:54 ` Eli Zaretskii
  2012-08-20  4:05   ` Paul Eggert
  0 siblings, 1 reply; 3+ messages in thread
From: Eli Zaretskii @ 2012-08-20  2:54 UTC (permalink / raw)
  To: Paul Eggert; +Cc: emacs-devel

These parts of your changes seem to be wrong, or at least
under-documented in ChangeLog: the Windows build does not use
lib/unistd.h.  Why did you make them?

  === modified file 'src/callproc.c'
  --- a/src/callproc.c	2012-08-04 14:17:10 +0000
  +++ b/src/callproc.c	2012-08-19 21:00:09 +0000
  @@ -65,10 +65,6 @@
   #include "nsterm.h"
   #endif

  -#ifndef USE_CRT_DLL
  -extern char **environ;
  -#endif
  -
   #ifdef HAVE_SETPGID
   #if !defined (USG)
   #undef setpgrp

  === modified file 'src/editfns.c'
  --- a/src/editfns.c	2012-08-18 06:06:39 +0000
  +++ b/src/editfns.c	2012-08-19 21:00:09 +0000
  @@ -58,10 +58,6 @@
   #include "window.h"
   #include "blockinput.h"

  -#ifndef USE_CRT_DLL
  -extern char **environ;
  -#endif
  -
   #define TM_YEAR_BASE 1900

   #ifdef WINDOWSNT

  === modified file 'src/emacs.c'
  --- a/src/emacs.c	2012-08-05 21:44:21 +0000
  +++ b/src/emacs.c	2012-08-19 21:00:09 +0000
  @@ -642,10 +642,6 @@
   static void
   malloc_initialize_hook (void)
   {
  -#ifndef USE_CRT_DLL
  -  extern char **environ;
  -#endif
  -
     if (initialized)
       {
	 if (!malloc_using_checking)

  === modified file 'src/process.c'
  --- a/src/process.c	2012-08-18 06:06:39 +0000
  +++ b/src/process.c	2012-08-19 21:00:09 +0000
  @@ -1623,9 +1623,6 @@
     /* Use volatile to protect variables from being clobbered by longjmp.  */
     volatile int forkin, forkout;
     volatile int pty_flag = 0;
  -#ifndef USE_CRT_DLL
  -  extern char **environ;
  -#endif

     inchannel = outchannel = -1;




^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: /srv/bzr/emacs/trunk r109685: Rely on <unistd.h> to declare 'environ'
  2012-08-20  2:54 ` /srv/bzr/emacs/trunk r109685: Rely on <unistd.h> to declare 'environ' Eli Zaretskii
@ 2012-08-20  4:05   ` Paul Eggert
  2012-08-20 16:49     ` Eli Zaretskii
  0 siblings, 1 reply; 3+ messages in thread
From: Paul Eggert @ 2012-08-20  4:05 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: emacs-devel

On 08/19/2012 07:54 PM, Eli Zaretskii wrote:
> These parts of your changes seem to be wrong, or at least
> under-documented in ChangeLog: the Windows build does not use
> lib/unistd.h.

On Windows, as I understand it, the system declares
'environ', so gnulib doesn't need to do anything special.

I'm getting this info from gnulib's unistd.h file.
It says that on Windows 'environ' is declared by
stdlib.h.  But Emacs's config.h includes stdlib.h, so
'environ' is always visible.

I tried to clarify this by editing the ChangeLog in
trunk bzr 109688.

If my understanding is wrong, my apologies, but the
point is that the main code should be able to assume that
"#include <config.h>" followed by "#include <unistd.h>"
declares 'environ', and if my analysis is incorrect and
that's not the case then I suggest adding
'extern char **environ;' to nt/inc/unistd.h.




^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: /srv/bzr/emacs/trunk r109685: Rely on <unistd.h> to declare 'environ'
  2012-08-20  4:05   ` Paul Eggert
@ 2012-08-20 16:49     ` Eli Zaretskii
  0 siblings, 0 replies; 3+ messages in thread
From: Eli Zaretskii @ 2012-08-20 16:49 UTC (permalink / raw)
  To: Paul Eggert; +Cc: emacs-devel

> Date: Sun, 19 Aug 2012 21:05:47 -0700
> From: Paul Eggert <eggert@cs.ucla.edu>
> CC: emacs-devel@gnu.org
> 
> On 08/19/2012 07:54 PM, Eli Zaretskii wrote:
> > These parts of your changes seem to be wrong, or at least
> > under-documented in ChangeLog: the Windows build does not use
> > lib/unistd.h.
> 
> On Windows, as I understand it, the system declares
> 'environ', so gnulib doesn't need to do anything special.
> 
> I'm getting this info from gnulib's unistd.h file.
> It says that on Windows 'environ' is declared by
> stdlib.h.  But Emacs's config.h includes stdlib.h, so
> 'environ' is always visible.
> 
> I tried to clarify this by editing the ChangeLog in
> trunk bzr 109688.

Thanks.

> If my understanding is wrong, my apologies, but the
> point is that the main code should be able to assume that
> "#include <config.h>" followed by "#include <unistd.h>"
> declares 'environ', and if my analysis is incorrect and
> that's not the case then I suggest adding
> 'extern char **environ;' to nt/inc/unistd.h.

No, your analysis is valid.  I added some additional clarifications in
ChangeLog and conf_post.h.



^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2012-08-20 16:49 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <mailman.445588.1345421843.854.emacs-diffs@gnu.org>
2012-08-20  2:54 ` /srv/bzr/emacs/trunk r109685: Rely on <unistd.h> to declare 'environ' Eli Zaretskii
2012-08-20  4:05   ` Paul Eggert
2012-08-20 16:49     ` Eli Zaretskii

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.