diff options
author | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2016-07-06 11:43:54 +0200 |
---|---|---|
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2016-07-06 11:48:56 +0200 |
commit | 92777f34df805c2069d14c28fe976256d31ed0ab (patch) | |
tree | 73003379a3b6c00e36264b0ed7c558ade9071085 /libio | |
parent | 8321286846970af562a2ff6b7272f1cd0860d6c1 (diff) | |
download | glibc-92777f34df805c2069d14c28fe976256d31ed0ab.zip glibc-92777f34df805c2069d14c28fe976256d31ed0ab.tar.gz glibc-92777f34df805c2069d14c28fe976256d31ed0ab.tar.bz2 |
hurd: Fix PTR_{,DE}MANGLE calls
* libio/iofopncook.c (_IO_cookie_read, _IO_cookie_write,
_IO_cookie_seek, _IO_cookie_close, _IO_old_cookie_seek)
[!PTR_DEMANGLE]: Do not call PTR_DEMANGLE.
(set_callbacks) [!PTR_MANGLE]: Do not call PTR_MANGLE.
* libio/vtables.c (_IO_vtable_check)
[!PTR_DEMANGLE]: Do not call PTR_DEMANGLE.
* libio/libioP.h (IO_set_accept_foreign_vtables)
[!PTR_MANGLE]: Do not call PTR_MANGLE.
Diffstat (limited to 'libio')
-rw-r--r-- | libio/iofopncook.c | 12 | ||||
-rw-r--r-- | libio/libioP.h | 2 | ||||
-rw-r--r-- | libio/vtables.c | 2 |
3 files changed, 16 insertions, 0 deletions
diff --git a/libio/iofopncook.c b/libio/iofopncook.c index ae5df17..0d05fe6 100644 --- a/libio/iofopncook.c +++ b/libio/iofopncook.c @@ -44,7 +44,9 @@ _IO_cookie_read (_IO_FILE *fp, void *buf, _IO_ssize_t size) { struct _IO_cookie_file *cfile = (struct _IO_cookie_file *) fp; cookie_read_function_t *read_cb = cfile->__io_functions.read; +#ifdef PTR_DEMANGLE PTR_DEMANGLE (read_cb); +#endif if (read_cb == NULL) return -1; @@ -57,7 +59,9 @@ _IO_cookie_write (_IO_FILE *fp, const void *buf, _IO_ssize_t size) { struct _IO_cookie_file *cfile = (struct _IO_cookie_file *) fp; cookie_write_function_t *write_cb = cfile->__io_functions.write; +#ifdef PTR_DEMANGLE PTR_DEMANGLE (write_cb); +#endif if (write_cb == NULL) { @@ -77,7 +81,9 @@ _IO_cookie_seek (_IO_FILE *fp, _IO_off64_t offset, int dir) { struct _IO_cookie_file *cfile = (struct _IO_cookie_file *) fp; cookie_seek_function_t *seek_cb = cfile->__io_functions.seek; +#ifdef PTR_DEMANGLE PTR_DEMANGLE (seek_cb); +#endif return ((seek_cb == NULL || (seek_cb (cfile->__cookie, &offset, dir) @@ -91,7 +97,9 @@ _IO_cookie_close (_IO_FILE *fp) { struct _IO_cookie_file *cfile = (struct _IO_cookie_file *) fp; cookie_close_function_t *close_cb = cfile->__io_functions.close; +#ifdef PTR_DEMANGLE PTR_DEMANGLE (close_cb); +#endif if (close_cb == NULL) return 0; @@ -140,10 +148,12 @@ static void set_callbacks (_IO_cookie_io_functions_t *target, _IO_cookie_io_functions_t source) { +#ifdef PTR_MANGLE PTR_MANGLE (source.read); PTR_MANGLE (source.write); PTR_MANGLE (source.seek); PTR_MANGLE (source.close); +#endif *target = source; } @@ -228,7 +238,9 @@ _IO_old_cookie_seek (_IO_FILE *fp, _IO_off64_t offset, int dir) struct _IO_cookie_file *cfile = (struct _IO_cookie_file *) fp; int (*seek_cb) (_IO_FILE *, _IO_off_t, int) = (int (*) (_IO_FILE *, _IO_off_t, int)) cfile->__io_functions.seek;; +#ifdef PTR_DEMANGLE PTR_DEMANGLE (seek_cb); +#endif if (seek_cb == NULL) return _IO_pos_BAD; diff --git a/libio/libioP.h b/libio/libioP.h index 54dc35c..3e12876 100644 --- a/libio/libioP.h +++ b/libio/libioP.h @@ -906,7 +906,9 @@ extern void (*IO_accept_foreign_vtables) (void) attribute_hidden; static inline void IO_set_accept_foreign_vtables (void (*flag) (void)) { +#ifdef PTR_MANGLE PTR_MANGLE (flag); +#endif atomic_store_relaxed (&IO_accept_foreign_vtables, flag); } diff --git a/libio/vtables.c b/libio/vtables.c index e364ea0..b361f44 100644 --- a/libio/vtables.c +++ b/libio/vtables.c @@ -41,7 +41,9 @@ _IO_vtable_check (void) #ifdef SHARED /* Honor the compatibility flag. */ void (*flag) (void) = atomic_load_relaxed (&IO_accept_foreign_vtables); +#ifdef PTR_DEMANGLE PTR_DEMANGLE (flag); +#endif if (flag == &_IO_vtable_check) return; |