1*6777b538SAndroid Build Coastguard Worker // Copyright 2012 The Chromium Authors 2*6777b538SAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be 3*6777b538SAndroid Build Coastguard Worker // found in the LICENSE file. 4*6777b538SAndroid Build Coastguard Worker 5*6777b538SAndroid Build Coastguard Worker #include "base/os_compat_nacl.h" 6*6777b538SAndroid Build Coastguard Worker 7*6777b538SAndroid Build Coastguard Worker #include <stdlib.h> 8*6777b538SAndroid Build Coastguard Worker #include <time.h> 9*6777b538SAndroid Build Coastguard Worker 10*6777b538SAndroid Build Coastguard Worker #if !defined (__GLIBC__) 11*6777b538SAndroid Build Coastguard Worker 12*6777b538SAndroid Build Coastguard Worker extern "C" { 13*6777b538SAndroid Build Coastguard Worker // Native Client has no timegm(). timegm(struct tm * tm)14*6777b538SAndroid Build Coastguard Workertime_t timegm(struct tm* tm) { 15*6777b538SAndroid Build Coastguard Worker time_t ret; 16*6777b538SAndroid Build Coastguard Worker char* tz; 17*6777b538SAndroid Build Coastguard Worker tz = getenv("TZ"); 18*6777b538SAndroid Build Coastguard Worker setenv("TZ", "", 1); 19*6777b538SAndroid Build Coastguard Worker tzset(); 20*6777b538SAndroid Build Coastguard Worker ret = mktime(tm); 21*6777b538SAndroid Build Coastguard Worker if (tz) 22*6777b538SAndroid Build Coastguard Worker setenv("TZ", tz, 1); 23*6777b538SAndroid Build Coastguard Worker else 24*6777b538SAndroid Build Coastguard Worker unsetenv("TZ"); 25*6777b538SAndroid Build Coastguard Worker tzset(); 26*6777b538SAndroid Build Coastguard Worker return ret; 27*6777b538SAndroid Build Coastguard Worker } 28*6777b538SAndroid Build Coastguard Worker } // extern "C" 29*6777b538SAndroid Build Coastguard Worker 30*6777b538SAndroid Build Coastguard Worker #endif // !defined (__GLIBC__) 31