This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

ldbl_hidden_weak??


For the not-installing-libio patches I have determined that I need to
add a macro ldbl_hidden_weak, but I can't figure out how to do that.
This is as far as I've gotten:

diff --git a/libio/iovsprintf.c b/libio/iovsprintf.c
index 63290fb365..871d8db072 100644
--- a/libio/iovsprintf.c
+++ b/libio/iovsprintf.c
@@ -47,4 +47,4 @@ ldbl_hidden_def (__IO_vsprintf, _IO_vsprintf)

 ldbl_strong_alias (__IO_vsprintf, _IO_vsprintf)
 ldbl_weak_alias (__IO_vsprintf, vsprintf)
-libc_hidden_weak (vsprintf)
+ldbl_hidden_weak (__IO_vsprintf, vsprintf)
diff --git a/sysdeps/generic/math_ldbl_opt.h b/sysdeps/generic/math_ldbl_opt.h
index 8a5d8ba107..a4b3806a10 100644
--- a/sysdeps/generic/math_ldbl_opt.h
+++ b/sysdeps/generic/math_ldbl_opt.h
@@ -9,6 +9,7 @@
 #define LONG_DOUBLE_COMPAT(lib, introduced) 0
 #define long_double_symbol(lib, local, symbol)
 #define ldbl_hidden_def(local, name) libc_hidden_def (name)
+#define ldbl_hidden_weak(local, name) libc_hidden_weak (name)
 #define ldbl_strong_alias(name, aliasname) strong_alias (name, aliasname)
 #define ldbl_weak_alias(name, aliasname) weak_alias (name, aliasname)
 #define __ldbl_is_dbl 0
diff --git a/sysdeps/ieee754/ldbl-opt/math_ldbl_opt.h
b/sysdeps/ieee754/ldbl-opt/math_ldbl_opt.h
index af861c11ea..88bf5e49a9 100644
--- a/sysdeps/ieee754/ldbl-opt/math_ldbl_opt.h
+++ b/sysdeps/ieee754/ldbl-opt/math_ldbl_opt.h
@@ -12,6 +12,7 @@
   long_double_symbol_1 (lib, local, symbol, LONG_DOUBLE_COMPAT_VERSION)
 #ifdef SHARED
 # define ldbl_hidden_def(local, name) libc_hidden_ver (local, name)
+# define ldbl_hidden_weak(local, name) /* ??? */
 # define ldbl_strong_alias(name, aliasname) \
   strong_alias (name, __GL_##name##_##aliasname) \
   long_double_symbol (libc, __GL_##name##_##aliasname, aliasname);
@@ -22,6 +23,7 @@
   versioned_symbol (lib, local, symbol, version)
 #else
 # define ldbl_hidden_def(local, name) libc_hidden_def (name)
+# define ldbl_hidden_weak(local, name) libc_hidden_weak (name)
 # define ldbl_strong_alias(name, aliasname) strong_alias (name, aliasname)
 # define ldbl_weak_alias(name, aliasname) weak_alias (name, aliasname)
 # ifndef __ASSEMBLER__

The problem is what to put where it says /* ??? */.  It can't be
libc_hidden_weak (name), that gives me

iovsprintf.c:50:93: error: ‘__EI_vsprintf’ aliased to undefined symbol
‘__GI_vsprintf’
 ldbl_hidden_weak (__IO_vsprintf, vsprintf)

but the logic in both math_ldbl_opt.h and libc-symbols.h is so
convoluted and undocumented that I can't figure out what it _should_
be.

zw


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]