summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarmelo Amoroso <carmelo.amoroso@st.com>2008-09-25 06:38:21 +0000
committerCarmelo Amoroso <carmelo.amoroso@st.com>2008-09-25 06:38:21 +0000
commit9d7a9d2ef6298b0d3680dc86c76af79da04c2199 (patch)
tree5813cdfdf53668f143a96f7e7f224aa616c026a1
parent3898083f5b4276ed4a2c4803d633962b6a0f9325 (diff)
Add globally __stringify macro in libc-symbols.h.
Remove all other duplicated definitions. Signed-off-by: Carmelo Amoroso <carmelo.amoroso@st.com>
-rw-r--r--include/libc-symbols.h6
-rw-r--r--libpthread/linuxthreads.old/internals.h4
-rw-r--r--libpthread/linuxthreads/sysdeps/pthread/uClibc-glue.h4
-rw-r--r--test/unistd/tst-preadwrite.c11
4 files changed, 12 insertions, 13 deletions
diff --git a/include/libc-symbols.h b/include/libc-symbols.h
index e491aff5f..e5e3356fb 100644
--- a/include/libc-symbols.h
+++ b/include/libc-symbols.h
@@ -82,6 +82,12 @@
# define IS_IN_libc 1
#endif
+/* Indirect stringification. Doing two levels allows
+ * the parameter to be a macro itself.
+ */
+#define __stringify_1(x) #x
+#define __stringify(x) __stringify_1(x)
+
#ifdef __UCLIBC_HAVE_ASM_SET_DIRECTIVE__
# define HAVE_ASM_SET_DIRECTIVE
#else
diff --git a/libpthread/linuxthreads.old/internals.h b/libpthread/linuxthreads.old/internals.h
index 38290a5fe..0cb97357c 100644
--- a/libpthread/linuxthreads.old/internals.h
+++ b/libpthread/linuxthreads.old/internals.h
@@ -36,9 +36,7 @@
/* Use a funky version in a probably vein attempt at preventing gdb
* from dlopen()'ing glibc's libthread_db library... */
-#define STRINGIFY(s) STRINGIFY2 (s)
-#define STRINGIFY2(s) #s
-#define VERSION STRINGIFY(__UCLIBC_MAJOR__) "." STRINGIFY(__UCLIBC_MINOR__) "." STRINGIFY(__UCLIBC_SUBLEVEL__)
+#define VERSION __stringify(__UCLIBC_MAJOR__) "." __stringify(__UCLIBC_MINOR__) "." __stringify(__UCLIBC_SUBLEVEL__)
#ifndef THREAD_GETMEM
# define THREAD_GETMEM(descr, member) descr->member
diff --git a/libpthread/linuxthreads/sysdeps/pthread/uClibc-glue.h b/libpthread/linuxthreads/sysdeps/pthread/uClibc-glue.h
index 92619e5b4..e5c577ffb 100644
--- a/libpthread/linuxthreads/sysdeps/pthread/uClibc-glue.h
+++ b/libpthread/linuxthreads/sysdeps/pthread/uClibc-glue.h
@@ -42,8 +42,6 @@ extern int __cxa_atexit (void (*func) (void *), void *arg, void *d);
/* Use a funky version in a probably vein attempt at preventing gdb
* from dlopen()'ing glibc's libthread_db library... */
-#define STRINGIFY(s) STRINGIFY2 (s)
-#define STRINGIFY2(s) #s
-#define VERSION STRINGIFY(__UCLIBC_MAJOR__) "." STRINGIFY(__UCLIBC_MINOR__) "." STRINGIFY(__UCLIBC_SUBLEVEL__)
+#define VERSION __stringify(__UCLIBC_MAJOR__) "." __stringify(__UCLIBC_MINOR__) "." __stringify(__UCLIBC_SUBLEVEL__)
#endif
diff --git a/test/unistd/tst-preadwrite.c b/test/unistd/tst-preadwrite.c
index 281044858..9650562d8 100644
--- a/test/unistd/tst-preadwrite.c
+++ b/test/unistd/tst-preadwrite.c
@@ -30,9 +30,6 @@
# define PWRITE pwrite
#endif
-#define STRINGIFY(s) STRINGIFY2 (s)
-#define STRINGIFY2(s) #s
-
/* Prototype for our test function. */
extern void do_prepare (int argc, char *argv[]);
extern int do_test (int argc, char *argv[]);
@@ -56,7 +53,7 @@ do_prepare (int argc, char *argv[])
char name_len;
#define FNAME FNAME2(TRUNCATE)
-#define FNAME2(s) "/" STRINGIFY(s) "XXXXXX"
+#define FNAME2(s) "/" __stringify(s) "XXXXXX"
name_len = strlen (test_dir);
name = malloc (name_len + sizeof (FNAME));
@@ -88,15 +85,15 @@ do_test (int argc, char *argv[])
for (i = 100; i < 200; ++i)
buf[i] = i;
if (PWRITE (fd, buf + 100, 100, 100) != 100)
- error (EXIT_FAILURE, errno, "during %s", STRINGIFY (PWRITE));
+ error (EXIT_FAILURE, errno, "during %s", __stringify (PWRITE));
for (i = 450; i < 600; ++i)
buf[i] = i;
if (PWRITE (fd, buf + 450, 150, 450) != 150)
- error (EXIT_FAILURE, errno, "during %s", STRINGIFY (PWRITE));
+ error (EXIT_FAILURE, errno, "during %s", __stringify (PWRITE));
if (PREAD (fd, res, sizeof (buf) - 50, 50) != sizeof (buf) - 50)
- error (EXIT_FAILURE, errno, "during %s", STRINGIFY (PREAD));
+ error (EXIT_FAILURE, errno, "during %s", __stringify (PREAD));
close (fd);
unlink (name);