diff options
Diffstat (limited to 'chromium/content/zygote/zygote_main_linux.cc')
-rw-r--r-- | chromium/content/zygote/zygote_main_linux.cc | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/chromium/content/zygote/zygote_main_linux.cc b/chromium/content/zygote/zygote_main_linux.cc index 2e5cc7e98d5..8e91c2f17e5 100644 --- a/chromium/content/zygote/zygote_main_linux.cc +++ b/chromium/content/zygote/zygote_main_linux.cc @@ -181,6 +181,8 @@ static void InitLibcLocaltimeFunctions() { // references to localtime() will resolve to this function. Notice that we need // to set visibility attribute to "default" to export the symbol, as it is set // to "hidden" by default in chrome per build/common.gypi. +__attribute__ ((__visibility__("default"))) +struct tm* localtime_override(const time_t* timep) __asm__ ("localtime"); __attribute__ ((__visibility__("default"))) struct tm* localtime_override(const time_t* timep) { @@ -197,6 +199,10 @@ struct tm* localtime_override(const time_t* timep) { } } +// Use same trick to override localtime64(), localtime_r() and localtime64_r(). +__attribute__ ((__visibility__("default"))) +struct tm* localtime64_override(const time_t* timep) __asm__ ("localtime64"); + __attribute__ ((__visibility__("default"))) struct tm* localtime64_override(const time_t* timep) { if (g_am_zygote_or_renderer) { @@ -213,6 +219,10 @@ struct tm* localtime64_override(const time_t* timep) { } __attribute__ ((__visibility__("default"))) +struct tm* localtime_r_override(const time_t* timep, + struct tm* result) __asm__ ("localtime_r"); + +__attribute__ ((__visibility__("default"))) struct tm* localtime_r_override(const time_t* timep, struct tm* result) { if (g_am_zygote_or_renderer) { ProxyLocaltimeCallToBrowser(*timep, result, NULL, 0); @@ -225,6 +235,10 @@ struct tm* localtime_r_override(const time_t* timep, struct tm* result) { } __attribute__ ((__visibility__("default"))) +struct tm* localtime64_r_override(const time_t* timep, + struct tm* result) __asm__ ("localtime64_r"); + +__attribute__ ((__visibility__("default"))) struct tm* localtime64_r_override(const time_t* timep, struct tm* result) { if (g_am_zygote_or_renderer) { ProxyLocaltimeCallToBrowser(*timep, result, NULL, 0); |