@@ -132,6 +132,76 @@ extern const short *_toupper_tab_;
132132extern const short *_tolower_tab_;
133133#endif
134134
135+ #if SANITIZER_MUSL && \
136+ (defined (__i386__) || defined (__arm__) || SANITIZER_MIPS32 || SANITIZER_PPC32)
137+ // musl 1.2.0 on existing 32-bit architectures uses new symbol names for the
138+ // time-related functions that take 64-bit time_t values. See
139+ // https://musl.libc.org/time64.html
140+ #define adjtime __adjtime64
141+ #define adjtimex __adjtimex_time64
142+ #define aio_suspend __aio_suspend_time64
143+ #define clock_adjtime __clock_adjtime64
144+ #define clock_getres __clock_getres_time64
145+ #define clock_gettime __clock_gettime64
146+ #define clock_nanosleep __clock_nanosleep_time64
147+ #define clock_settime __clock_settime64
148+ #define cnd_timedwait __cnd_timedwait_time64
149+ #define ctime __ctime64
150+ #define ctime_r __ctime64_r
151+ #define difftime __difftime64
152+ #define dlsym __dlsym_time64
153+ #define fstatat __fstatat_time64
154+ #define fstat __fstat_time64
155+ #define ftime __ftime64
156+ #define futimens __futimens_time64
157+ #define futimesat __futimesat_time64
158+ #define futimes __futimes_time64
159+ #define getitimer __getitimer_time64
160+ #define getrusage __getrusage_time64
161+ #define gettimeofday __gettimeofday_time64
162+ #define gmtime __gmtime64
163+ #define gmtime_r __gmtime64_r
164+ #define localtime __localtime64
165+ #define localtime_r __localtime64_r
166+ #define lstat __lstat_time64
167+ #define lutimes __lutimes_time64
168+ #define mktime __mktime64
169+ #define mq_timedreceive __mq_timedreceive_time64
170+ #define mq_timedsend __mq_timedsend_time64
171+ #define mtx_timedlock __mtx_timedlock_time64
172+ #define nanosleep __nanosleep_time64
173+ #define ppoll __ppoll_time64
174+ #define pselect __pselect_time64
175+ #define pthread_cond_timedwait __pthread_cond_timedwait_time64
176+ #define pthread_mutex_timedlock __pthread_mutex_timedlock_time64
177+ #define pthread_rwlock_timedrdlock __pthread_rwlock_timedrdlock_time64
178+ #define pthread_rwlock_timedwrlock __pthread_rwlock_timedwrlock_time64
179+ #define pthread_timedjoin_np __pthread_timedjoin_np_time64
180+ #define recvmmsg __recvmmsg_time64
181+ #define sched_rr_get_interval __sched_rr_get_interval_time64
182+ #define select __select_time64
183+ #define semtimedop __semtimedop_time64
184+ #define sem_timedwait __sem_timedwait_time64
185+ #define setitimer __setitimer_time64
186+ #define settimeofday __settimeofday_time64
187+ #define sigtimedwait __sigtimedwait_time64
188+ #define stat __stat_time64
189+ #define stime __stime64
190+ #define thrd_sleep __thrd_sleep_time64
191+ #define timegm __timegm_time64
192+ #define timerfd_gettime __timerfd_gettime64
193+ #define timerfd_settime __timerfd_settime64
194+ #define timer_gettime __timer_gettime64
195+ #define timer_settime __timer_settime64
196+ #define timespec_get __timespec_get_time64
197+ #define time __time64
198+ #define utimensat __utimensat_time64
199+ #define utimes __utimes_time64
200+ #define utime __utime64
201+ #define wait3 __wait3_time64
202+ #define wait4 __wait4_time64
203+ #endif
204+
135205// Platform-specific options.
136206#if SANITIZER_MAC
137207#define PLATFORM_HAS_DIFFERENT_MEMCPY_AND_MEMMOVE 0
0 commit comments