立石です。

今日、glibc2.1に入れ換えて「glibc2の環境にするぞ!」
とはりきってrubyをまっさきにコンパイルし直すとstrdup
をプロトタイプ定義しているファイルでエラーとなりました。
原因は、glibc2.1のstring.hでは__OPTIMIZE__が定義される
とstrdupをマクロとして扱うからでした。
以下そのエラーを回避するためのパッチです。
ruby-1.2.5で作りましたが1.3でも大丈夫なようです。

			Takaaki Tateishi <ttate / jaist.ac.jp>


*** defines.h.orig	Mon Nov  9 18:11:48 1998
--- defines.h	Sun Apr 18 05:22:50 1999
***************
*** 53,56 ****
--- 53,61 ----
  #define RUBY_PLATFORM "unknown-unknown"
  #endif
  
+ #if defined __GNUC__ && __GNUC__ >= 2
+ # define _HAVE_STRING_ARCH_strdup
+ # define _HAVE_STRING_ARCH_strndup
+ #endif
+ 
  #endif