Ticket #38830

_POSIX_SOURCE 宣言により mkstemp が隠される

Open Date: 2018-12-31 19:03 Last Update: 2019-07-24 07:09

Reporter:
Owner:
(None)
Type:
Status:
Closed
Component:
(None)
MileStone:
(None)
Priority:
5 - Medium
Severity:
5 - Medium
Resolution:
Fixed
File:
None

Details

skf_finfo.c の先頭で、_POSIX_SOURCE マクロが定義されていますが、これはかなり古いマクロなので、 たとえば glibc で見ても _POSIX_C_SOURCE=1 相当になるようで、mkstemp は見えなくなります。 glibc の場合、 次に定義されている これも古い _BSD_SOURCE マクロによって見えるようになるかもしれませんが、 他のlibc ではそうでもありません。たとえば NetBSD-8 では見えませんが _NETBSD_SOURCE では見えるようになります。

X/Open 的には mkstemp は Issue 4 Version 2 で拡張として追加されて、Issue 5 で base に入ったので、 defined(_XOPEN_SOURCE) && defined(_XOPEN_SOURCE_EXTENDED) || (_XOPEN_SOURCE >= 500) の必要があります。

skf_finfo.c の履歴上、二つのマクロがどういう必要性で入ったのかがわからないのですが、 ご考慮していただければ幸いです。

Ticket History (3/4 Histories)

2018-12-31 19:03 Updated by: obache
  • New Ticket "_POSIX_SOURCE 宣言により mkstemp が隠される" created
2019-02-05 22:59 Updated by: efialtes
Comment

一応

(1) POSIX_SOURCE は削除 (元々 LFS 関連で遙か昔に入ったような気がする)。

(2) POSIX_C_SOURCE を追加して、200112L を定義する。

(3) _XOPEN_SOURCE, _X_OPEN_SOURCE_EXTENDED は定義だけする。_XOPEN_SOURCE に値は設定しない (XOPEN SOURCE 関連は追っていないので影響が読めない)

で修正します。他もあるので、修正自体は少し待ってください。

2019-04-06 22:51 Updated by: efialtes
  • Resolution Update from None to Fixed
2019-07-24 07:09 Updated by: efialtes
  • Status Update from Open to Closed

Attachment File List

No attachments

Edit

You are not logged in. I you are not logged in, your comment will be treated as an anonymous post. » Login