[Armadillo:08506] Re: Windows 上でのタイムスタンプについて

Yasuhisa Nakamura email@hidden
2013年 1月 2日 (水) 11:14:12 JST


中村です。

settimeofday()に関する情報提供です。

RTCなしのArmadillo-420用に[Armadillo:01366]
http://lists.atmark-techno.com/pipermail/armadillo/2006-November/001365.html
で紹介されているのと同じsettimeofday()する小さなプログラムつくり、
ATDE3の環境でコンパイルしてみたところ、
  warning: null argument where non-null required (argument 1)
という警告が出てしまいました。
(2回settimeofday()しているので2行出ます)

確か、Armadillo-220用にATDE2でやっていたころはこれはなかったと思います。

調べてみると、sys/time.hの
  extern int settimeofday (const struct timeval *__tv,
                           const struct timezone *__tz)
     __THROW __nonnull ((1));

にあるnullチェックがこの警告を出しているようです。

settimeofday()の第1引数にNULLは許されるはずなので(実際、
NULLにして動いてますし・・・)、ググってみたところ、
こんな記事がみつかりました。

以下、
http://sourceware-org.1504.n7.nabble.com/PATCH-settimeofday-with-NULL-tv-td215278.html
からまるごと引用

settimeofday (NULL, tz) is used by systemd (and perhaps other code) to
change the kernel timezone.  Unfortunately, glibc marks the first
argument as must-be-nonnull.  This causes static analyzers to issue
incorrect diagnostics for such uses of settimeofday.

This patch removes the __nonnull attribute and the bogus diagnostics no
longer are issued.

diff --git a/ChangeLog b/ChangeLog
index 638934b..624078b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2012-12-03  Jeff Law  <[hidden email]>
+
+ * time/sys/time.h (settimeofday): Do not mark TV argument
+ as __nonnull.
+
 2012-12-01  Mike Frysinger  <[hidden email]>

  * libio/fileops.c (_IO_new_file_close_it): Do not always flush
diff --git a/time/sys/time.h b/time/sys/time.h
index 0f5ef5c..f763d96 100644
--- a/time/sys/time.h
+++ b/time/sys/time.h
@@ -77,7 +77,7 @@ extern int gettimeofday (struct timeval *__restrict __tv,
    This call is restricted to the super-user.  */
 extern int settimeofday (const struct timeval *__tv,
  const struct timezone *__tz)
-     __THROW __nonnull ((1));
+     __THROW;

 /* Adjust the current time of day by the amount in DELTA.
    If OLDDELTA is not NULL, it is filled in with the amount

-- 
なかむら

2012年 12月 22日(土)08:43 に  [Armadillo:08493]で、風間 さんは書きました:
> 風間です。
> 過去ML検索してみます、
> ありがとうござました。
>
>> -----Original Message-----
>> Subject: [Armadillo:08492] Re: Windows 上でのタイムスタンプについて
>>
>> 風間さん、
>> 中村です。
>>
>> この問題は、過去に何度もMLにでてきてますね。
>> 私自身、MLの情報を参考にして、Armadillo-2x0や
>> Armadillo-4x0で、これを回避してます。
>>
>> 今ちょっと手が離せなくてこれ以上の説明ができないのですが、
>> MLの過去の投稿を探してみてください。
>> "VFAT 9時間"や"VFAT UTC"などで探すとみつかると思います。
>>
>> --
>> なかむら




armadillo メーリングリストの案内