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.)master
parent
7e9d1932a2
commit
0c6e467aa6
|
@ -101,6 +101,7 @@ EOF
|
|||
#include <string.h>
|
||||
#include <sys/file.h>
|
||||
|
||||
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) {
|
||||
|
|
|
@ -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 <stupid-standards.h> fixed with nasty ifdefs to handle tcc w/o
|
||||
> breaking everything else. ||done]] --[[Joey]]
|
||||
|
|
Loading…
Reference in New Issue