> > I will try to debug it. > With the first glance, it seems due to some difference of MIPS ELF format: 131 #ifdef HAVE_EXE_INTROSPECTION 132 static void 133 maybe_add_rpath_introspection_paths (void) 134 { 135 ElfW (Dyn) *dyn; 136 ElfW (Dyn) *rpath = NULL; 137 ElfW (Dyn) *runpath = NULL; 138 const char *strtab = NULL; 139 g_auto (GStrv) paths = NULL; 140 g_autofree char *exe_dir = NULL; 141 GStrv str; 142 143 for (dyn = _DYNAMIC; dyn->d_tag != DT_NULL; dyn++) 144 { 145 if (dyn->d_tag == DT_RPATH) 146 rpath = dyn; 147 else if (dyn->d_tag == DT_RUNPATH) 148 runpath = dyn; 149 else if (dyn->d_tag == DT_STRTAB) 150 strtab = (const char *) dyn->d_un.d_val; 151 } 152 153 if ((!rpath && !runpath) || !strtab) 154 return; 155 156 if (rpath) 157 paths = g_strsplit (strtab + rpath->d_un.d_val, ":", -1); 158 else 159 paths = g_strsplit (strtab + runpath->d_un.d_val, ":", -1); // <- segfault here due to 160 161 if (!paths) 162 return;
We are continuing to find the real problem. -- YunQiang Su