| … | |
… | |
| 89 | else |
89 | else |
| 90 | AC_MSG_RESULT([off_t]) |
90 | AC_MSG_RESULT([off_t]) |
| 91 | AC_DEFINE([TRUNCATE_T], [off_t], [truncate arg type]) |
91 | AC_DEFINE([TRUNCATE_T], [off_t], [truncate arg type]) |
| 92 | fi |
92 | fi |
| 93 | |
93 | |
| 94 | dnl Check if we have glibc or clone |
94 | dnl Check if libc provides RTLD_NEXT |
| 95 | AC_MSG_CHECKING([for glibc]) |
95 | AC_MSG_CHECKING([for RTLD_NEXT]) |
| 96 | AC_TRY_COMPILE([ |
96 | AC_TRY_COMPILE([ |
| 97 | #include <features.h> |
97 | #define _GNU_SOURCE |
|
|
98 | #include <dlfcn.h> |
| 98 | ], [ |
99 | ], [ |
| 99 | #if !defined(__GLIBC__) |
100 | #if !defined(RTLD_NEXT) |
| 100 | # error no glibc |
101 | # error no RTLD_NEXT |
| 101 | #endif |
102 | #endif |
| 102 | |
103 | |
|
|
104 | int |
| 103 | int main (void) |
105 | main (void) |
| 104 | { |
106 | { |
| 105 | return 0; |
107 | return 0; |
| 106 | } |
108 | } |
| 107 | ], |
109 | ], |
| 108 | [have_glibc="yes"], |
110 | [have_rtld_next="yes"], |
| 109 | [have_glibc="no"] |
111 | [have_rtld_next="no"] |
| 110 | ) |
112 | ) |
| 111 | if test x"$have_glibc" = xyes ; then |
113 | AC_MSG_RESULT([$have_rtld_next]) |
| 112 | AC_MSG_RESULT([yes]) |
|
|
| 113 | else |
|
|
| 114 | AC_MSG_RESULT([no]) |
|
|
| 115 | fi |
|
|
| 116 | AM_CONDITIONAL([HAVE_GLIBC], [test x"$have_glibc" = xyes]) |
114 | AM_CONDITIONAL([HAVE_RTLD_NEXT], [test x"$have_rtld_next" = xyes]) |
| 117 | |
115 | |
| 118 | dnl we need to handle symbols differently based upon their version, |
116 | dnl we need to handle symbols differently based upon their version, |
| 119 | dnl but we have to know which symbols the libc supports first |
117 | dnl but we have to know which symbols the libc supports first |
| 120 | AC_MSG_CHECKING([libc path]) |
118 | AC_MSG_CHECKING([libc path]) |
| 121 | echo "int main(void) { return 0; }" > libctest.c |
119 | echo "int main(void) { return 0; }" > libctest.c |