aboutsummaryrefslogtreecommitdiff
path: root/misc/efgcvt_r.c
diff options
context:
space:
mode:
authorGabriel F. T. Gomes <gabrielftg@linux.ibm.com>2019-11-26 14:48:49 -0300
committerGabriel F. T. Gomes <gabrielftg@linux.ibm.com>2019-12-23 16:32:07 -0300
commitdce425341171ec5784c87165e23883630971bd97 (patch)
tree455190e456492ae6d1afa0632157fec330df903b /misc/efgcvt_r.c
parente18a305777adf60c2378ac864a350319269a29fa (diff)
downloadglibc-dce425341171ec5784c87165e23883630971bd97.zip
glibc-dce425341171ec5784c87165e23883630971bd97.tar.gz
glibc-dce425341171ec5784c87165e23883630971bd97.tar.bz2
Refactor *cvt functions implementation (2/2)
This patch refactors the *cvt functions implementation in a way that makes it easier to re-use them for implementing the IEEE long double on powerpc64le. By removing the macros that generate the function names (APPEND combined with FUNC_PREFIX), the new code makes it easier to define new function names, such as __qecvtieee128. Tested that installed stripped binaries for all build-many-glibcs targets remain identical before and after this patch. Also tested for powerpc64le and x86_64. Reviewed-by: Paul E. Murphy <murphyp@linux.ibm.com>
Diffstat (limited to 'misc/efgcvt_r.c')
-rw-r--r--misc/efgcvt_r.c19
1 files changed, 10 insertions, 9 deletions
diff --git a/misc/efgcvt_r.c b/misc/efgcvt_r.c
index ad78f15..5dabcad 100644
--- a/misc/efgcvt_r.c
+++ b/misc/efgcvt_r.c
@@ -16,23 +16,24 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
+#define ECVT_R ecvt_r
+#define FCVT_R fcvt_r
+#define __ECVT_R __ecvt_r
+#define __FCVT_R __fcvt_r
#include <efgcvt-dbl-macros.h>
#include <efgcvt_r-template.c>
#if LONG_DOUBLE_COMPAT (libc, GLIBC_2_0)
-# define cvt_symbol(symbol) \
- cvt_symbol_1 (libc, __APPEND (FUNC_PREFIX, symbol), \
- APPEND (q, symbol), GLIBC_2_0); \
- weak_alias (__APPEND (FUNC_PREFIX, symbol), APPEND (FUNC_PREFIX, symbol))
+# define cvt_symbol(local, symbol) \
+ cvt_symbol_1 (libc, local, APPEND (q, symbol), GLIBC_2_0); \
+ weak_alias (local, symbol)
# define cvt_symbol_1(lib, local, symbol, version) \
libc_hidden_def (local) \
compat_symbol (lib, local, symbol, version)
#else
-# define cvt_symbol(symbol) \
- cvt_symbol_1 (__APPEND (FUNC_PREFIX, symbol), APPEND (FUNC_PREFIX, symbol))
-# define cvt_symbol_1(local, symbol) \
+# define cvt_symbol(local, symbol) \
libc_hidden_def (local) \
weak_alias (local, symbol)
#endif
-cvt_symbol(fcvt_r);
-cvt_symbol(ecvt_r);
+cvt_symbol (__fcvt_r, fcvt_r);
+cvt_symbol (__ecvt_r, ecvt_r);