Changeset: dd46179053ad for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=dd46179053ad
Modified Files:
configure.ag
monetdb5/mal/mal_linker.c
Branch: Mar2018
Log Message:
Remove RTLD_DEEPBIND flag and use linker -Bsymbolic option instead.
The RTLD_DEEPBIND flag had the effect that the sanitizer would always
fail.
diffs (66 lines):
diff --git a/configure.ag b/configure.ag
--- a/configure.ag
+++ b/configure.ag
@@ -743,6 +743,30 @@ AS_VAR_IF([enable_sanitizer], [no], [],
AC_SUBST([CFLAGS])
AC_SUBST([X_CFLAGS])
+AC_MSG_CHECKING([for ld -Bsymbolic option])
+save_LDFLAGS="$LDFLAGS"
+LDFLAGS="$LDFLAGS -Wl,-Bsymbolic"
+AC_LINK_IFELSE([
+ AC_LANG_SOURCE([[
+ @%:@include <stdio.h>
+ @%:@include <stdlib.h>
+ @%:@include <string.h>
+
+ @%:@if -_LARGEFILE64_SOURCE - -1 == 1
+ @%:@include <stdio.h>
+ @%:@endif
+ int main(int argc, char **av) {
+ char buf[24];
+ double d = atof("4.2");
+ if (argc == 0 || strchr(av[0], av[0][0]) != NULL)
+ snprintf(buf, sizeof(buf), "%f", d);
+ return 0;
+ }
+ ]])],
+ [result=yes],
+ [LDFLAGS="$save_LDFLAGS"; result=no])
+AC_MSG_RESULT([$result])
+
# icc needs -fPIC (but the current autoconf still uses -KPIC)
AS_CASE([$GCC-$CC-$host_os],
[-*icc*-linux*|-*ecc*-linux*], [
diff --git a/monetdb5/mal/mal_linker.c b/monetdb5/mal/mal_linker.c
--- a/monetdb5/mal/mal_linker.c
+++ b/monetdb5/mal/mal_linker.c
@@ -34,10 +34,6 @@
#define MAXMODULES 128
-#ifndef RTLD_DEEPBIND
-#define RTLD_DEEPBIND 0
-#endif
-
typedef struct{
str modname;
str fullname;
@@ -107,7 +103,7 @@ getAddress(str fcnname)
*
* the first argument must be the same as the base name of the
* library that is created in src/tools */
- dl = mdlopen("libmonetdb5", RTLD_NOW | RTLD_GLOBAL | RTLD_DEEPBIND);
+ dl = mdlopen("libmonetdb5", RTLD_NOW | RTLD_GLOBAL);
if (dl == NULL)
return NULL;
@@ -147,7 +143,7 @@ getAddress(str fcnname)
str
loadLibrary(str filename, int flag)
{
- int mode = RTLD_NOW | RTLD_GLOBAL | RTLD_DEEPBIND;
+ int mode = RTLD_NOW | RTLD_GLOBAL;
char nme[FILENAME_MAX];
void *handle = NULL;
str s;
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list