aboutsummaryrefslogtreecommitdiff
path: root/misc/efgcvt.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.c
parente18a305777adf60c2378ac864a350319269a29fa (diff)
downloadglibc-dce425341171ec5784c87165e23883630971bd97.tar
glibc-dce425341171ec5784c87165e23883630971bd97.tar.gz
glibc-dce425341171ec5784c87165e23883630971bd97.tar.bz2
glibc-dce425341171ec5784c87165e23883630971bd97.zip
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.c')
-rw-r--r--misc/efgcvt.c25
1 files changed, 16 insertions, 9 deletions
diff --git a/misc/efgcvt.c b/misc/efgcvt.c
index 9021b03bca..ddf306941a 100644
--- a/misc/efgcvt.c
+++ b/misc/efgcvt.c
@@ -16,20 +16,27 @@
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
+#define ECVT ecvt
+#define FCVT fcvt
+#define GCVT gcvt
+#define __ECVT __ecvt
+#define __FCVT __fcvt
+#define __GCVT __gcvt
+#define __ECVT_R __ecvt_r
+#define __FCVT_R __fcvt_r
#include <efgcvt-dbl-macros.h>
#include <efgcvt-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); \
- strong_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); \
+ strong_alias (local, symbol)
# define cvt_symbol_1(lib, local, symbol, version) \
compat_symbol (lib, local, symbol, version)
#else
-# define cvt_symbol(symbol) \
- strong_alias (__APPEND (FUNC_PREFIX, symbol), APPEND (FUNC_PREFIX, symbol))
+# define cvt_symbol(local, symbol) \
+ strong_alias (local, symbol)
#endif
-cvt_symbol(fcvt);
-cvt_symbol(ecvt);
-cvt_symbol(gcvt);
+cvt_symbol (__fcvt, fcvt);
+cvt_symbol (__ecvt, ecvt);
+cvt_symbol (__gcvt, gcvt);