mirror of
git://sourceware.org/git/glibc.git
synced 2025-03-19 13:40:59 +08:00
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.
This commit is contained in:
parent
8321286846
commit
92777f34df
@ -1,3 +1,12 @@
|
||||
2016-07-06 Samuel Thibault <samuel.thibault@ens-lyon.org>
|
||||
|
||||
* 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/libioP.h (IO_set_accept_foreign_vtables)
|
||||
[!PTR_MANGLE]: Do not call PTR_MANGLE.
|
||||
|
||||
2016-07-05 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
[BZ #20314]
|
||||
|
@ -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;
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
|
@ -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;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user