From 7e9d1932a2b90d5092315c18603cf495da28d6da Mon Sep 17 00:00:00 2001 From: "http://schors.livejournal.com/" Date: Sun, 28 Mar 2010 22:01:53 +0000 Subject: --- doc/bugs/clearenv_not_present_at_FreeBSD_.mdwn | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 doc/bugs/clearenv_not_present_at_FreeBSD_.mdwn (limited to 'doc/bugs/clearenv_not_present_at_FreeBSD_.mdwn') diff --git a/doc/bugs/clearenv_not_present_at_FreeBSD_.mdwn b/doc/bugs/clearenv_not_present_at_FreeBSD_.mdwn new file mode 100644 index 000000000..6ad7975eb --- /dev/null +++ b/doc/bugs/clearenv_not_present_at_FreeBSD_.mdwn @@ -0,0 +1,2 @@ +When build wrapper on FreeBSD system, is error occured with clearenv reference. clearenv() das not exists at FreeBSD system, use workaround environ[0]=NULL; +P.S. new git instalation, FreeBSD 7.x -- cgit v1.2.3 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 ++++++ doc/bugs/clearenv_not_present_at_FreeBSD_.mdwn | 3 +++ 2 files changed, 9 insertions(+) (limited to 'doc/bugs/clearenv_not_present_at_FreeBSD_.mdwn') 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) { diff --git a/doc/bugs/clearenv_not_present_at_FreeBSD_.mdwn b/doc/bugs/clearenv_not_present_at_FreeBSD_.mdwn index 6ad7975eb..c2355d6aa 100644 --- a/doc/bugs/clearenv_not_present_at_FreeBSD_.mdwn +++ b/doc/bugs/clearenv_not_present_at_FreeBSD_.mdwn @@ -1,2 +1,5 @@ When build wrapper on FreeBSD system, is error occured with clearenv reference. clearenv() das not exists at FreeBSD system, use workaround environ[0]=NULL; P.S. new git instalation, FreeBSD 7.x + +> #include fixed with nasty ifdefs to handle tcc w/o +> breaking everything else. ||done]] --[[Joey]] -- cgit v1.2.3 From 6d04e182c4f4f44da37725444a540851fd36ba13 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Sun, 28 Mar 2010 18:36:37 -0400 Subject: formatting --- doc/bugs/clearenv_not_present_at_FreeBSD_.mdwn | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'doc/bugs/clearenv_not_present_at_FreeBSD_.mdwn') diff --git a/doc/bugs/clearenv_not_present_at_FreeBSD_.mdwn b/doc/bugs/clearenv_not_present_at_FreeBSD_.mdwn index c2355d6aa..ac82541a3 100644 --- a/doc/bugs/clearenv_not_present_at_FreeBSD_.mdwn +++ b/doc/bugs/clearenv_not_present_at_FreeBSD_.mdwn @@ -1,5 +1,5 @@ When build wrapper on FreeBSD system, is error occured with clearenv reference. clearenv() das not exists at FreeBSD system, use workaround environ[0]=NULL; P.S. new git instalation, FreeBSD 7.x -> #include fixed with nasty ifdefs to handle tcc w/o +> `#include ` fixed with nasty ifdefs to handle tcc w/o > breaking everything else. ||done]] --[[Joey]] -- cgit v1.2.3 From 15164671ceeed70f25cbfe53d81143eb5b13c863 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Sun, 28 Mar 2010 18:37:00 -0400 Subject: formatting --- doc/bugs/clearenv_not_present_at_FreeBSD_.mdwn | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'doc/bugs/clearenv_not_present_at_FreeBSD_.mdwn') diff --git a/doc/bugs/clearenv_not_present_at_FreeBSD_.mdwn b/doc/bugs/clearenv_not_present_at_FreeBSD_.mdwn index ac82541a3..f38c86e03 100644 --- a/doc/bugs/clearenv_not_present_at_FreeBSD_.mdwn +++ b/doc/bugs/clearenv_not_present_at_FreeBSD_.mdwn @@ -2,4 +2,4 @@ When build wrapper on FreeBSD system, is error occured with clearenv reference. P.S. new git instalation, FreeBSD 7.x > `#include ` fixed with nasty ifdefs to handle tcc w/o -> breaking everything else. ||done]] --[[Joey]] +> breaking everything else. [[done]] --[[Joey]] -- cgit v1.2.3