From 0c6e467aa6931ec6bd7720ecaea5e33aeca4d1be Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Sun, 28 Mar 2010 18:27:23 -0400 Subject: use __TINYC__ define to avoid tinyc compat fixes breaking FreeBSD To review, tcc does not really use environ, so you have to use clearenv there. But POSIX, in their wisdom, didn't standardise clearenv yet, so on FreeBSD, one still needs to manipulate environ on their own. (If you use tcc on FreeBSD, this may leave you unsatisfied.) --- IkiWiki/Wrapper.pm | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'IkiWiki/Wrapper.pm') diff --git a/IkiWiki/Wrapper.pm b/IkiWiki/Wrapper.pm index f175b4a0b..3f3e63ca6 100644 --- a/IkiWiki/Wrapper.pm +++ b/IkiWiki/Wrapper.pm @@ -101,6 +101,7 @@ EOF #include #include +extern char **environ; char *newenviron[$#envsave+6]; int i=0; @@ -121,12 +122,17 @@ $envsave newenviron[i++]="HOME=$ENV{HOME}"; newenviron[i++]="WRAPPED_OPTIONS=$configstring"; +#ifdef __TINYC__ if (clearenv() != 0) { perror("clearenv"); exit(1); } for (; i>0; i--) putenv(newenviron[i-1]); +#else + newenviron[i]=NULL; + environ=newenviron; +#endif if (setregid(getegid(), -1) != 0 && setregid(getegid(), -1) != 0) { -- cgit v1.2.3