disable LAZY bind for dlmopen for a while since deadlock of elf-loader during IFUNC symbol relocation
authorHajime Tazaki <tazaki@sfc.wide.ad.jp>
Fri, 25 Jul 2014 19:28:21 +0900
changeset 6281dbf1c14ee16
parent 627 dcb0c5cb4d9f
child 629 f78efdb85c23
disable LAZY bind for dlmopen for a while since deadlock of elf-loader during IFUNC symbol relocation

This problem happens on Ubuntu 14.04 (64bits) and Fedora 19 later (64bits)
utils/dce-runner.c
     1.1 --- a/utils/dce-runner.c	Fri Jul 18 08:39:45 2014 +0900
     1.2 +++ b/utils/dce-runner.c	Fri Jul 25 19:28:21 2014 +0900
     1.3 @@ -43,7 +43,7 @@
     1.4  
     1.5  int main (int argc, char *argv[])
     1.6  {
     1.7 -  void *h = dlmopen (LM_ID_NEWLM, argv[1], RTLD_LAZY | RTLD_GLOBAL | __RTLD_OPENEXEC);
     1.8 +  void *h = dlmopen (LM_ID_NEWLM, argv[1], RTLD_NOW | RTLD_GLOBAL | __RTLD_OPENEXEC);
     1.9    if (h == 0)
    1.10      {
    1.11        fprintf (stderr, "unable to open %s %s\n", argv[1], dlerror ());