From d2441011e8245be254358a8f146094633bf80332 Mon Sep 17 00:00:00 2001 From: sam Date: Sat, 1 Dec 2007 11:52:42 +0000 Subject: [PATCH] 2007-12-01 Kostik Belousov gcc/ada/ PR ada/33722 * env.c (__gnat_setenv): FreeBSD 7 has a POSIX conformant putenv() and its argument must not be free()ed. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@130555 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ada/ChangeLog | 6 ++++++ gcc/ada/env.c | 6 +++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index aff56402a55..b9a6caaafb9 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,9 @@ +2007-12-01 Kostik Belousov + + PR ada/33722 + * env.c (__gnat_setenv): FreeBSD 7 has a POSIX conformant putenv() + and its argument must not be free()ed. + 2007-11-29 Eric Botcazou * decl.c (make_packable_type): Retrieve the real name of the type. diff --git a/gcc/ada/env.c b/gcc/ada/env.c index 808f10ba282..4d361096872 100644 --- a/gcc/ada/env.c +++ b/gcc/ada/env.c @@ -177,9 +177,9 @@ __gnat_setenv (char *name, char *value) sprintf (expression, "%s=%s", name, value); putenv (expression); -#if defined (__FreeBSD__) || defined (__APPLE__) || defined (__MINGW32__) \ - ||(defined (__vxworks) && ! defined (__RTP__)) - /* On some systems like FreeBSD, MacOS X and Windows, putenv is making +#if (defined (__FreeBSD__) && (__FreeBSD__ < 7)) || defined (__APPLE__) \ + || defined (__MINGW32__) ||(defined (__vxworks) && ! defined (__RTP__)) + /* On some systems like pre-7 FreeBSD, MacOS X and Windows, putenv is making a copy of the expression string so we can free it after the call to putenv */ free (expression); -- 2.11.0