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

[freewnn:00856] Re: -D_POSIX_SOURCE, etc.



青野です。こんばんは。
#簡単なフォローしかできません。

<867kljfnpc.wl@barleycoren.oikumene.gcd.org>の記事において
hiroo@oikumene.gcd.orgさんは書きました。

>> Linux と BeOS では CCOPTIONS に
>>   -D_POSIX_SOURCE -D_BSD_SOURCE
>> というのがあります。
>> どちらのマクロも FreeWnn の source 中には存在しないようですが、それぞ
>> れのシステムで compile 時に意味があるものなんでしょうか。

Imakeを使っていた時代から引きずっているこの定数ですが、
glibc-2.2.3のinfoによると、それなりに意味がありそうです。
少なくともはずした場合にコンパイルできるかどうかチェックす
る必要があるかと思います。Linux/BeOSな環境で
(--enable-debug付き推奨?)試してみてもらえる方いらっしゃい
ませんか?

#http://www.gnu.org/manual/glibc-2.2.3/html_node/libc_13.html 
#より抜粋。訳すだけの余裕がないのでした。

>> Macro: _POSIX_SOURCE
>> 
>>     If you define this macro, then the functionality from
>> the POSIX.1 standard (IEEE Standard 1003.1) is available,
>> as well as all of the ISO C facilities.
>> 
>>     The state of _POSIX_SOURCE is irrelevant if you define
>> the macro _POSIX_C_SOURCE to a positive integer.
>> 
>> Macro: _BSD_SOURCE
>> 
>>     If you define this macro, functionality derived from
>> 4.3 BSD Unix is included as well as the ISO C, POSIX.1,
>> and POSIX.2 material.
>> 
>>     Some of the features derived from 4.3 BSD Unix
>> conflict with the corresponding features specified by the
>> POSIX.1 standard. If this macro is defined, the 4.3 BSD
>> definitions take precedence over the POSIX definitions.
>> 
>>    Due to the nature of some of the conflicts between 4.3
>> BSD and POSIX.1, you need to use a special BSD
>> compatibility library when linking programs compiled for
>> BSD compatibility. This is because some functions must be
>> defined in two different ways, one of them in the normal C
>> library, and one of them in the compatibility library. If
>> your program defines _BSD_SOURCE, you must give the option
>> `-lbsd-compat' to the compiler or linker when linking the
>> program, to tell it to find functions in this special
>> compatibility library before looking for them in the
>> normal C library.
----
青野智樹	(aono@cc.osaka-kyoiku.ac.jp)
Personal opinion only...


http://www.freewnn.org/ FreeWnn Project