Hello, I actually try to cross compile freeradius 2.0.9 for powerpc. Everything looks good during compilation, but we get "Segmentation Fault" on our host when executing "radiusd -X". Our setup is : - EGLIBC 2.9 - GCC 4.3.2 - Linux 2.6.31 Could you please help me to find a way to solve this problem. Here you can find strace and gdb log. Michel M. strace log : sendto(4, "\0\0\0\24\0\26\3\1L\321-\374\0\0\0\0\0\0\0\0", 20, 0, {sa_family=AF_NETLINK, pid=0, groups=00000000}, 12) = 20 recvmsg(4, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"\0\0\0000\0\24\0\2L\321-\374\0\0\7$\2\10\200\376\0\0\0\1\0\10\0\1\177\0\0\1"..., 4096}], msg_controllen=0, msg_flags=0}, 0) = 288 recvmsg(4, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"\0\0\0@\0\24\0\2L\321-\374\0\0\7$\n\200\200\376\0\0\0\1\0\24\0\1\0\0\0\0"..., 4096}], msg_controllen=0, msg_flags=0}, 0) = 128 recvmsg(4, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"\0\0\0\24\0\3\0\2L\321-\374\0\0\7$\0\0\0\0\0\0\0\1\0\24\0\1\0\0\0\0"..., 4096}], msg_controllen=0, msg_flags=0}, 0) = 20 close(4) = 0 fstat64(1, {st_mode=S_IFCHR|0600, st_rdev=makedev(4, 64), ...}) = 0 ioctl(1, TCGETS, {B115200 opost isig icanon echo ...}) = 0 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x48001000 open("/usr/local/lib/rlm_exec.la", O_RDONLY) = 4 fstat64(4, {st_mode=S_IFREG|0755, st_size=814, ...}) = 0 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x48002000 read(4, "# rlm_exec.la - a libtool librar"..., 4096) = 814 read(4, "", 4096) = 0 close(4) = 0 munmap(0x48002000, 4096) = 0 open("/usr/local/lib/libpthread.la", O_RDONLY) = -1 ENOENT (No such file or directory) open("/lib/libpthread.la", O_RDONLY) = -1 ENOENT (No such file or directory) open("/usr/lib/libpthread.la", O_RDONLY) = -1 ENOENT (No such file or directory) access("/usr/local/lib/libpthread.so", R_OK) = -1 ENOENT (No such file or directory) access("/lib/libpthread.so", R_OK) = -1 ENOENT (No such file or directory) access("/usr/lib/libpthread.so", R_OK) = 0 futex(0x1016e378, FUTEX_WAKE_PRIVATE, 2147483647) = 0 open("/usr/lib/libpthread.so", O_RDONLY) = 4 read(4, "/* GNU ld script\n Use the shar"..., 512) = 219 close(4) = 0 open("/usr/local/lib/libresolv.la", O_RDONLY) = -1 ENOENT (No such file or directory) open("/lib/libresolv.la", O_RDONLY) = -1 ENOENT (No such file or directory) open("/usr/lib/libresolv.la", O_RDONLY) = -1 ENOENT (No such file or directory) access("/usr/local/lib/libresolv.so", R_OK) = -1 ENOENT (No such file or directory) access("/lib/libresolv.so", R_OK) = -1 ENOENT (No such file or directory) access("/usr/lib/libresolv.so", R_OK) = 0 open("/usr/lib/libresolv.so", O_RDONLY) = 4 read(4, "\177ELF\1\2\1\0\0\0\0\0\0\0\0\0\0\3\0\24\0\0\0\1\0\0.X\0\0\0004"..., 512) = 512 fstat64(4, {st_mode=S_IFREG|0755, st_size=92607, ...}) = 0 mmap(0x6ffcb000, 150532, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 4, 0) = 0x6ffcb000 mprotect(0x6ffdd000, 61440, PROT_NONE) = 0 mmap(0x6ffec000, 8192, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 4, 0x11000) = 0x6ffec000 mmap(0x6ffee000, 7172, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x6ffee000 close(4) = 0 open("/etc/ld.so.cache", O_RDONLY) = 4 fstat64(4, {st_mode=S_IFREG|0644, st_size=4841, ...}) = 0 mmap(NULL, 4841, PROT_READ, MAP_PRIVATE, 4, 0) = 0x48002000 close(4) = 0 open("/lib/libc.so.6", O_RDONLY) = 4 read(4, "\177ELF\1\2\1\0\0\0\0\0\0\0\0\0\0\3\0\24\0\0\0\1\0\1\356T\0\0\0004"..., 512) = 512 fstat64(4, {st_mode=S_IFREG|0755, st_size=1733649, ...}) = 0 mmap(0x6fe4f000, 1487896, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 4, 0) = 0x6fe4f000 mprotect(0x6ffa4000, 61440, PROT_NONE) = 0 mmap(0x6ffb3000, 20480, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 4, 0x154000) = 0x6ffb3000 mmap(0x6ffb8000, 9240, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x6ffb8000 close(4) = 0 open("/lib/ld.so.1", O_RDONLY) = 4 read(4, "\177ELF\1\2\1\0\0\0\0\0\0\0\0\0\0\3\0\24\0\0\0\1\0\1_x\0\0\0004"..., 512) = 512 fstat64(4, {st_mode=S_IFREG|0755, st_size=143055, ...}) = 0 mmap(0x6fe10000, 192148, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 4, 0) = 0x6fe10000 mprotect(0x6fe2e000, 61440, PROT_NONE) = 0 mmap(0x6fe3d000, 8192, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 4, 0x1d000) = 0x6fe3d000 close(4) = 0 mprotect(0x6fe3d000, 4096, PROT_READ) = 0 mprotect(0x6ffb3000, 8192, PROT_READ) = 0 mprotect(0x6ffec000, 4096, PROT_READ) = 0 --- SIGSEGV (Segmentation fault) @ 0 (0) --- +++ killed by SIGSEGV +++ gbd-radiusd.log : * 1 process 1821 0x100da888 in add_to_global () Thread 1 (process 1821): #0 0x100da888 in add_to_global () No locals. #1 0x100db1e4 in dl_open_worker () No locals. #2 0x100d8fa0 in _dl_catch_error () No locals. #3 0x100da620 in _dl_open () No locals. #4 0x10096428 in dlopen_doit () No locals. #5 0x100d8fa0 in _dl_catch_error () No locals. #6 0x10096828 in _dlerror_run () No locals. #7 0x10096364 in __dlopen () No locals. #8 0x10074d34 in dlopen () No locals. #9 0x10074cdc in sys_dl_open (loader_data=<value optimized out>, filename=0x1027d5b8 "/usr/lib/libresolv.so") at ltdl.c:1115 module = <value optimized out> __FUNCTION__ = "sys_dl_open" #10 0x10071db8 in tryall_dlopen (handle=0xbff58570, filename=0x1027d5b8 "/usr/lib/libresolv.so", useloader=0x0) at ltdl.c:2487 cur = (lt_dlhandle) 0x1027d528 loader = (lt_dlloader *) 0x1027d1e8 saved_error = 0x101341fc "file not found" errors = <value optimized out> #11 0x10074b40 in find_handle_callback ( filename=0x1027d5b8 "/usr/lib/libresolv.so", data=0xbff58570, ignored=<value optimized out>) at ltdl.c:2844 notfound = 0 #12 0x10072b54 in foreach_dirinpath (search_path=<value optimized out>, base_name=0x1027d4d0 "libresolv.so", func=0x10074ae0 <find_handle_callback>, data1=0xbff58570, data2=0x0) at ltdl.c:2767 lendir = 9 dir_name = 0x1027d515 "/usr/lib" result = <value optimized out> filenamesize = 22 lenbase = 12 argz_len = 14 argz = 0x1027d510 "/lib" filename = 0x1027d5b8 "/usr/lib/libresolv.so" canonical = 0x1027d4f8 "/lib:/usr/lib" __PRETTY_FUNCTION__ = "foreach_dirinpath" __FUNCTION__ = "foreach_dirinpath" #13 0x10072d74 in find_handle (search_path=0x10134088 "/lib:/usr/lib", base_name=0x1027d4d0 "libresolv.so", handle=0xbff58570) at ltdl.c:2867 __FUNCTION__ = "find_handle" #14 0x10073d74 in try_dlopen (phandle=0xbff585d8, filename=0x1027d4b8 "libresolv.so") at ltdl.c:3438 saved_error = 0x101341fc "file not found" canonical = 0x1027d4d0 "libresolv.so" base_name = 0x1027d4d0 "libresolv.so" dir = 0x0 name = <value optimized out> errors = 0 newhandle = (lt_dlhandle) 0x1027d528 __PRETTY_FUNCTION__ = "try_dlopen" #15 0x10074a7c in lt_dlopenext (filename=<value optimized out>) at ltdl.c:3606 handle = (lt_dlhandle) 0x1027d528 tmp = 0x1027d4b8 "libresolv.so" len = 9 errors = <value optimized out> __FUNCTION__ = "lt_dlopenext" #16 0x100746e4 in try_dlopen (phandle=0xbff58678, filename=<value optimized out>) at ltdl.c:3011 file = <value optimized out> libdir = 0x1027cf58 "/usr/local/lib" deplibs = 0x1027cf10 " /usr/local/lib/libfreeradius-radius.la -lnsl -lresolv -lpthread" line = <value optimized out> line_len = <value optimized out> dlname = 0x0 old_name = 0x1027d3e0 "librlm_exec.a" installed = 1 saved_error = 0x0 canonical = 0x1027d3c0 "rlm_exec.la" base_name = <value optimized out> dir = 0x1027d5a0 "/usr/local/lib" name = 0x1027d3d0 "rlm_exec" errors = <value optimized out> newhandle = <value optimized out> __PRETTY_FUNCTION__ = "try_dlopen" #17 0x10074984 in lt_dlopenext (filename=<value optimized out>) at ltdl.c:3564 handle = (lt_dlhandle) 0x1027cf70 tmp = 0x1027d3b0 "rlm_exec.la" len = 8 errors = <value optimized out> __FUNCTION__ = "lt_dlopenext" #18 0x10012aac in find_module_instance (modules=<value optimized out>, instname=0x1019362c "exec", do_link=1) at modules.c:491 check_config_safe = <value optimized out> cs = (CONF_SECTION *) 0x10195bb0 name1 = <value optimized out> node = (module_instance_t *) 0x1027d290 myNode = { name = "exec\000\005¶`\020\031.\b\000\000\000\t¿õ\212@\020\000CÄ", '\0' <repeats 20 times>, "\020\022\006´\020\031/þ\000\000\000 \000\000\000\000\000\000\000\000¿õ\212@\000\000\000\000\000\000\000\000\020\026-ø¿õ\220Ø\020\026\000\000\020\026\000\000\020\026.\b\020\021þ\034\000\000\000\000\020\002Y¸\020\021\224\004\020\026\000\000\020\021\234h\020\026\000\000\020\032 ¿õ\212\200\020\026ã|\000\000\000\024\020\026-ø¿õ\212\220\020\026\000\000\020\026\000\000\020\026-ø¿õ\220Ø\020\026\000\000\020\026\000\000\020\0314\200¿õ\212p\000\000\000\000\020\021¶ä\020\031\017\210¿õ\212\220\020\005¶\020\002\000\000\000¿õ\212¨\020\031"..., entry = 0x10190f88, insthandle = 0x0, mutex = 0x0, cs = 0x10193480, dead = 270077832, mh = 0x1019362c} module_name = "rlm_exec\000õ\206À\020\tCd\000\000\000\000\020\031û\020¿õ\206à\020\t.à\020\026\000\000\020\026.\b\020\026\000\000\000\000\000ÿH\000\003s\020\031û\020¿õ\206ð\020\t;\204\000\000\000\000\020\031û\020¿õ\2070\020\tI°\020\026\000\000\020\026.\b¿õ\211@\000\000\000\000\020\031\017h¿õ\207X¿õ\207 \020\021\224\004¿õ\207X\020\031&\210¿õ\207@\020\005¶\020\002\000ã|¿õ\207X¿õ\207\200\020\021\224\004\020\031%Ð\020\026-ø¿õ\220Ø\020\026\000\000\020\026\000\000\020\026.\b\020\026\000\000¿õ\207Ø\020\031%Ð\020\026\000\000¿õ\211\030\020\031& \020\026;@\000\000\000\000"... __FUNCTION__ = "find_module_instance" #19 0x10012fec in setup_modules (reload=<value optimized out>, config=0x10190f88) at modules.c:1542 ci = (CONF_ITEM *) 0x10193608 name = 0x1019362c "exec" cs = (CONF_SECTION *) 0x10193540 modules = (CONF_SECTION *) 0x10193480 listener = <value optimized out> __FUNCTION__ = "setup_modules" #20 0x100106bc in read_mainconfig (reload=<value optimized out>) at mainconfig.c:959 p = 0x10190f68 "/usr/local/etc/raddb" cs = (CONF_SECTION *) 0x10190f88 statbuf = {st_dev = 2065, st_ino = 8163, st_mode = 16877, st_nlink = 7, st_uid = 0, st_gid = 0, st_rdev = 0, __pad2 = 0, st_size = 4096, st_blksize = 4096, st_blocks = 8, st_atim = { tv_sec = 1288775159, tv_nsec = 0}, st_mtim = {tv_sec = 1288780664, tv_nsec = 0}, st_ctim = {tv_sec = 1288780691, tv_nsec = 0}, __unused4 = 0, __unused5 = 0} cc = <value optimized out> buffer = "/usr/local/etc/raddb/radiusd.conf", '\0' <repeats 711 times>, "¿õ\217°", '\0' <repeats 12 times>, "¿õ\220ü\000\000\000!\000\000\000\000¿õ\220ø¿õ\220ð\020\006\226¤\020\006\235,\020\000\000\004", '\0' <repeats 80 times>, "¿õ\2200", '\0' <repeats 12 times>, "\020\026-\224\020\026éD¿õ\224\024\020\026öH¿õ\220 \020\ná\034", '\0' <repeats 32 times>, "\204\000\004h\020\026-ø¿õ\220°\020\026\000\000\020\t8è\000\000\000\000\020\026\000\000\000\000\000\000\020\026.°\020\021Ç\b\020\021Ë\214$\000\004l\020\026.°\020"... __FUNCTION__ = "read_mainconfig" #21 0x10015ac0 in main (argc=2, argv=0xbff59414) at radiusd.c:265 rcode = <value optimized out> argval = <value optimized out> spawn_flag = 0 dont_fork = 1 flag = 0 act = {__sigaction_handler = {sa_handler = 0, sa_sigaction = 0}, sa_mask = {__val = {0 <repeats 32 times>}}, sa_flags = 0, sa_restorer = 0}