[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[freewnn:00049] Re: malloc define (Re: configure for HP-UX and OpenBSD)



SRA の矢吹と申します。

> 濱嶋@YDCです
> 
> > HP-UX 10.Xのマシンが手元にないのと、HP-UX 11.0ではコンパイル・エラーが発
> > 生するために、現時点ではHP-UX 9.0Xしかサポートしていません
> 
> HP-UX 11.0の開発用C compilerは型チェックが厳しくて、malloc()等がエラーに
> なってしまいます
> 実際にはWnn/include/wnn_malloc.hの
> 
> extern char *malloc0();
> #define malloc(s) malloc0(s)
> 
> がOSの定義している
> 
> extern void *malloc(size_t);
> 
> と違うと言って蹴られます(他にrealloc()とWnn/etc/msg.cのbsearch()も)
私も別のソフトウェアで遭遇しました。

> 一般的に"char *malloc(int)"と"void *malloc(size_t)"は何で区別するのでしょ
> うか?
> 
> # "__STDC__"が定義されているかどうかが無難かな
現在の configure で ANSI C 準拠のヘッダがあるか
どうかチェックしてるので(autoconf のマクロだと AC_HEADER_STDC)、
その結果定義される STDC_HEADERS で判定するというのはどうでしょうか?
STDC_HEADERS が 1 に定義されていれば、stdlib.h で宣言されているはずなので、
ソースコードでは malloc() の宣言は行なわないと。
--
(株)SRA 矢吹洋一