Solairs10上でGNU Screenをコンパイル
で、↓これは何のためだったかというと、これ。
- UNIXしま専科: GNU screen make時にsolaris10上でエラー
どっちかっつうと、misc.c
の619行目
setenv(var, value);
を編集しちゃうよりは、この部分をくくってる条件マクロの方を編集するべきではないかと。
diff -ur screen-4.0.3.org/misc.c screen-4.0.3/misc.c --- screen-4.0.3.org/misc.c 2003-12-05 22:45:41.000000000 +0900 +++ screen-4.0.3/misc.c 2008-07-21 17:55:44.950202000 +0900 @@ -613,7 +613,7 @@ */ # endif /* NEEDSETENV */ #else /* USESETENV */ -# if defined(linux) || defined(__convex__) || (BSD >= 199103) +# if defined(linux) || defined(__convex__) || (BSD >= 199103) || defined(__sun__) setenv(var, value, 1); # else setenv(var, value);
補足すると、Solarisにsetenv(3C)
が備わったのはSolaris10以降なので、SunOSバージョン識別は結局不要で、条件分岐としてはこれでよかった。
Solaris9以前ではputenv(3C)
が使われるのでこれまで問題にならなかったわけだ。