buytenh/ivykis

tests segfaults on openSUSE Factory ppc64

Closed this issue · 9 comments

k0da commented

full build log https://build.opensuse.org/package/rawlog?arch=ppc64&package=ivykis&project=openSUSE%3AFactory%3APowerPC&repository=standard

make[2]: Entering directory `/home/abuild/rpmbuild/BUILD/ivykis-0.39/test'
/bin/sh: line 5: 57597 Segmentation fault (core dumped) ${dir}$tst
FAIL: avl
/bin/sh: line 5: 57615 Segmentation fault (core dumped) ${dir}$tst
FAIL: iv_event_raw_test
PASS: struct_sizes
/bin/sh: line 5: 57649 Segmentation fault (core dumped) ${dir}$tst
FAIL: timer
/bin/sh: line 5: 57667 Segmentation fault (core dumped) ${dir}$tst
FAIL: timer_fairness
/bin/sh: line 5: 57685 Segmentation fault (core dumped) ${dir}$tst
FAIL: timer_order
/bin/sh: line 5: 57703 Segmentation fault (core dumped) ${dir}$tst
FAIL: timer_past
/bin/sh: line 5: 57721 Segmentation fault (core dumped) ${dir}$tst

FAIL: iv_signal_test

7 of 8 tests failed

Please report to libivykis-discuss@lists.sourceforge.net

Is it possible to get shell access on an openSUSE ppc64 box? My only
ppc testing so far has been on AIX, I've been promised a ppc/Linux shell
account for some time now, but that never happened.

Also, note that 0.39 is not a long term supported version. Debian and
Fedora carry either 0.30 or 0.36 at this moment, both of which have
-stable branches that continue to receive bug fixes. The next -stable
branch will probably be around 0.42 or so.

k0da commented

I don't have ppc64 machine publically available :(
I think this should happen for Fedora as well, they just don't run tests during the build.

If you will guide me, I could provide additional debug information (I have access to the ppc machine)

On Mon, Mar 18, 2013 at 05:51:29AM -0700, Dinar Valeev wrote:

I don't have ppc64 machine publically available :(
I think this should happen for Fedora as well, they just don't run
tests during the build.

ivykis 0.30 doesn't have a testsuite, so builds of 0.30 don't run
the tests as part of the build. (0.36 has a testsuite.)

If you will guide me, I could provide additional debug information
(I have access to the ppc machine)

At least a backtrace would be useful. :)

k0da commented

(gdb) run
Starting program: /home/abuild/rpmbuild/BUILD/ivykis-0.39/test/.libs/avl
warning: Could not load shared library symbols for linux-vdso64.so.1.
Do you need "set solib-search-path" or "set sysroot"?
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".

Program received signal SIGSEGV, Segmentation fault.
._dl_runtime_resolve () at ../sysdeps/powerpc/powerpc64/dl-trampoline.S:76
76 ld r0,0(r3)
(gdb) bt
#0 ._dl_runtime_resolve () at ../sysdeps/powerpc/powerpc64/dl-trampoline.S:76
#1 0x00000fffb7f81100 in pthr_atfork (prepare=@0xfffb7f986e0: 0xfffb7f817f0 <iv_signal_prepare>, parent=@0xfffb7f986f8: 0xfffb7f81860 <iv_signal_parent>,
child=@0xfffb7f98710: 0xfffb7f818d0 <iv_signal_child>) at pthr.h:55
#2 0x00000fffb7f81990 in iv_signal_init () at iv_signal.c:92
#3 0x00000fffb7fd4618 in call_init (env=0xffffffff8a8, argv=0xffffffff898, argc=, l=) at dl-init.c:84
#4 call_init (l=, argc=, argv=0xffffffff898, env=0xffffffff8a8) at dl-init.c:34
#5 0x00000fffb7fd473c in _dl_init (main_map=0xfffb7ffc4f0, argc=, argv=0xffffffff898, env=0xffffffff8a8) at dl-init.c:133
#6 0x00000fffb7fc3f1c in ._dl_start_user () from /lib64/ld64.so.1
(gdb) bt full
#0 ._dl_runtime_resolve () at ../sysdeps/powerpc/powerpc64/dl-trampoline.S:76
No locals.
#1 0x00000fffb7f81100 in pthr_atfork (prepare=@0xfffb7f986e0: 0xfffb7f817f0 <iv_signal_prepare>, parent=@0xfffb7f986f8: 0xfffb7f81860 <iv_signal_parent>,
child=@0xfffb7f98710: 0xfffb7f818d0 <iv_signal_child>) at pthr.h:55
No locals.
#2 0x00000fffb7f81990 in iv_signal_init () at iv_signal.c:92
No locals.
#3 0x00000fffb7fd4618 in call_init (env=0xffffffff8a8, argv=0xffffffff898, argc=, l=) at dl-init.c:84
j =
jm =
addrs =
init_array =
#4 call_init (l=, argc=, argv=0xffffffff898, env=0xffffffff8a8) at dl-init.c:34
No locals.
#5 0x00000fffb7fd473c in _dl_init (main_map=0xfffb7ffc4f0, argc=, argv=0xffffffff898, env=0xffffffff8a8) at dl-init.c:133
preinit_array =
preinit_array_size = 0x0
i =
#6 0x00000fffb7fc3f1c in ._dl_start_user () from /lib64/ld64.so.1
_dl_rtld_libname2 = {name = 0x0, next = 0x0, dont_free = 0}
audit_list = 0x0
any_debug = 0
load_time = 147266
_dl_rtld_libname = {name = 0x10000200 "/lib64/ld64.so.1", next = 0xfffb7ffc3d0 <newname.10332>, dont_free = 0}
version_info = 0
relocate_time = 42485
preloadlist = 0x0
tls_init_tp_called = true
start_time = 245407786025836
library_path = 0xffffffffd0e "../src/.libs/"
_rtld_local_ro = {_dl_debug_mask = 0, _dl_osversion = 198144, _dl_platform = 0xffffffffbc9 "power7", _dl_platformlen = 6, _dl_pagesize = 65536, _dl_inhibit_cache = 0, _dl_initial_searchlist = {
r_list = 0xfffb7ffea18, r_nlist = 5}, _dl_clktck = 100, _dl_verbose = 0, _dl_debug_fd = 2, _dl_lazy = 1, _dl_bind_not = 0, _dl_dynamic_weak = 0, _dl_fpu_control = 0,
_dl_correct_cache_id = 1283, _dl_hwcap = 3691013570, _dl_hwcap_mask = 268436480, _dl_auxv = 0xffffffffa18, _dl_powerpc_cap_flags = {"vsx\000\000\000\000\000\000", "arch_2_06", "power6x\000\000",
"dfp\000\000\000\000\000\000", "pa6t\000\000\000\000\000", "arch_2_05", "ic_snoop\000", "smt\000\000\000\000\000\000", "booke\000\000\000\000", "cellbe\000\000\000", "power5+\000\000",
"power5\000\000\000", "power4\000\000\000", "notb\000\000\000\000\000", "efpdouble", "efpsingle", "spe\000\000\000\000\000\000", "ucache\000\000\000", "4xxmac\000\000\000",
"mmu\000\000\000\000\000\000", "fpu\000\000\000\000\000\000", "altivec\000\000", "ppc601\000\000\000", "ppc64\000\000\000\000", "ppc32\000\000\000\000"}, _dl_powerpc_platforms = {
"power4\000\000\000\000\000", "ppc970\000\000\000\000\000", "power5\000\000\000\000\000", "power5+\000\000\000\000", "power6\000\000\000\000\000", "ppc-cell-be", "power6x\000\000\000\000",
"power7\000\000\000\000\000", "ppca2\000\000\000\000\000\000"}, _dl_inhibit_rpath = 0x0, _dl_origin_path = 0x0, _dl_use_load_bias = 18446744073709551615, _dl_profile = 0x0,
_dl_profile_output = 0xfffb7fe2a80 "/var/tmp", _dl_trace_prelink = 0x0, _dl_trace_prelink_map = 0x0, _dl_init_all_dirs = 0xfffb7ffd9f0, _dl_hp_timing_overhead = 3,
_dl_sysinfo_dso = 0xfffb7fa0000, _dl_sysinfo_map = 0xfffb7ffca80, _dl_debug_printf = @0xfffb7ffa690: 0xfffb7fd58e0 <_dl_debug_printf>,
_dl_catch_error = @0xfffb7ffa5a0: 0xfffb7fd42f0 <_dl_catch_error>, _dl_signal_error = @0xfffb7ffa570: 0xfffb7fd3fc0 <_dl_signal_error>, _dl_mcount = @0xfffb7ffa768: 0xfffb7fd6dd0 <_dl_mcount>,
_dl_lookup_symbol_x = @0xfffb7ffa3d8: 0xfffb7fcd5d0 <_dl_lookup_symbol_x>, _dl_check_caller = @0xfffb7ffa960: 0xfffb7fd92d0 <_dl_check_caller>,
_dl_open = @0xfffb7ffa990: 0xfffb7fd9830 <_dl_open>, _dl_close = @0xfffb7ffaa20: 0xfffb7fdbd60 <_dl_close>, _dl_tls_get_addr_soft = @0xfffb7ffa8e8: 0xfffb7fd8c50 <_dl_tls_get_addr_soft>,
_dl_discover_osversion = @0xfffb7ffaaf8: 0xfffb7fdd360 <_dl_discover_osversion>, _dl_audit = 0x0, _dl_naudit = 0, _dl_pointer_guard = 1}
_dl_skip_args = 0
__pointer_chk_guard_local = 6884314826817413557
__thread_register = 0xfffb7d37710
_rtld_global_ro = {_dl_debug_mask = 0, _dl_osversion = 198144, _dl_platform = 0xffffffffbc9 "power7", _dl_platformlen = 6, _dl_pagesize = 65536, _dl_inhibit_cache = 0, _dl_initial_searchlist = {
r_list = 0xfffb7ffea18, r_nlist = 5}, _dl_clktck = 100, _dl_verbose = 0, _dl_debug_fd = 2, _dl_lazy = 1, _dl_bind_not = 0, _dl_dynamic_weak = 0, _dl_fpu_control = 0,
_dl_correct_cache_id = 1283, _dl_hwcap = 3691013570, _dl_hwcap_mask = 268436480, _dl_auxv = 0xffffffffa18, _dl_powerpc_cap_flags = {"vsx\000\000\000\000\000\000", "arch_2_06", "power6x\000\000",
"dfp\000\000\000\000\000\000", "pa6t\000\000\000\000\000", "arch_2_05", "ic_snoop\000", "smt\000\000\000\000\000\000", "booke\000\000\000\000", "cellbe\000\000\000", "power5+\000\000",
"power5\000\000\000", "power4\000\000\000", "notb\000\000\000\000\000", "efpdouble", "efpsingle", "spe\000\000\000\000\000\000", "ucache\000\000\000", "4xxmac\000\000\000",
"mmu\000\000\000\000\000\000", "fpu\000\000\000\000\000\000", "altivec\000\000", "ppc601\000\000\000", "ppc64\000\000\000\000", "ppc32\000\000\000\000"}, _dl_powerpc_platforms = {
"power4\000\000\000\000\000", "ppc970\000\000\000\000\000", "power5\000\000\000\000\000", "power5+\000\000\000\000", "power6\000\000\000\000\000", "ppc-cell-be", "power6x\000\000\000\000",
"power7\000\000\000\000\000", "ppca2\000\000\000\000\000\000"}, _dl_inhibit_rpath = 0x0, _dl_origin_path = 0x0, _dl_use_load_bias = 18446744073709551615, _dl_profile = 0x0,
_dl_profile_output = 0xfffb7fe2a80 "/var/tmp", _dl_trace_prelink = 0x0, _dl_trace_prelink_map = 0x0, _dl_init_all_dirs = 0xfffb7ffd9f0, _dl_hp_timing_overhead = 3,
_dl_sysinfo_dso = 0xfffb7fa0000, _dl_sysinfo_map = 0xfffb7ffca80, _dl_debug_printf = @0xfffb7ffa690: 0xfffb7fd58e0 <_dl_debug_printf>,
---Type to continue, or q to quit---
_dl_catch_error = @0xfffb7ffa5a0: 0xfffb7fd42f0 <_dl_catch_error>, _dl_signal_error = @0xfffb7ffa570: 0xfffb7fd3fc0 <_dl_signal_error>, _dl_mcount = @0xfffb7ffa768: 0xfffb7fd6dd0 <_dl_mcount>,
_dl_lookup_symbol_x = @0xfffb7ffa3d8: 0xfffb7fcd5d0 <_dl_lookup_symbol_x>, _dl_check_caller = @0xfffb7ffa960: 0xfffb7fd92d0 <_dl_check_caller>,
_dl_open = @0xfffb7ffa990: 0xfffb7fd9830 <_dl_open>, _dl_close = @0xfffb7ffaa20: 0xfffb7fdbd60 <_dl_close>, _dl_tls_get_addr_soft = @0xfffb7ffa8e8: 0xfffb7fd8c50 <_dl_tls_get_addr_soft>,
_dl_discover_osversion = @0xfffb7ffaaf8: 0xfffb7fdd360 <_dl_discover_osversion>, _dl_audit = 0x0, _dl_naudit = 0, _dl_pointer_guard = 1}
_dl_argv = 0xffffffff898
_rtld_local = {_dl_ns = {{_ns_loaded = 0xfffb7ffc4f0, _ns_nloaded = 6, _ns_main_searchlist = 0xfffb7ffc7c0, _ns_global_scope_alloc = 0, _ns_unique_sym_table = {lock = {mutex = {__data = {
__lock = 0, __count = 0, __owner = 0, __nusers = 0, __kind = 1, __spins = 0, __list = {__prev = 0x0, __next = 0x0}},
__size = '\000' <repeats 19 times>, "\001", '\000' <repeats 19 times>, __align = 0}}, entries = 0x0, size = 0, n_elements = 0, free = 0x0}, _ns_debug = {r_version = 0, r_map = 0x0,
r_brk = 0, r_state = RT_CONSISTENT, r_ldbase = 0}}, {_ns_loaded = 0x0, _ns_nloaded = 0, _ns_main_searchlist = 0x0, _ns_global_scope_alloc = 0, _ns_unique_sym_table = {lock = {mutex = {
__data = {__lock = 0, __count = 0, __owner = 0, __nusers = 0, __kind = 0, __spins = 0, __list = {__prev = 0x0, __next = 0x0}}, __size = '\000' <repeats 39 times>, __align = 0}},
entries = 0x0, size = 0, n_elements = 0, free = 0x0}, _ns_debug = {r_version = 0, r_map = 0x0, r_brk = 0, r_state = RT_CONSISTENT, r_ldbase = 0}} <repeats 15 times>}, _dl_nns = 1,
_dl_load_lock = {mutex = {__data = {__lock = 0, __count = 0, __owner = 0, __nusers = 0, __kind = 1, __spins = 0, __list = {__prev = 0x0, __next = 0x0}},
__size = '\000' <repeats 19 times>, "\001", '\000' <repeats 19 times>, __align = 0}}, _dl_load_write_lock = {mutex = {__data = {__lock = 0, __count = 0, __owner = 0, __nusers = 0,
__kind = 1, __spins = 0, __list = {__prev = 0x0, __next = 0x0}}, __size = '\000' <repeats 19 times>, "\001", '\000' <repeats 19 times>, __align = 0}}, _dl_load_adds = 6,
_dl_initfirst = 0x0, _dl_cpuclock_offset = 245407786029163, _dl_profile_map = 0x0, _dl_num_relocations = 114, _dl_num_cache_relocations = 138, _dl_all_dirs = 0xfffb7ffd9f0,
_dl_error_catch_tsd = @0xfffb7f13a30: 0xfffb7ea5a90 <__libc_dl_error_tsd>, _dl_rtld_map = {l_addr = 17590977822720, l_name = 0x10000200 "/lib64/ld64.so.1", l_ld = 0xfffb7ff9e60, l_next = 0x0,
l_prev = 0xfffb7ffe4a0, l_real = 0xfffb7ffbd10 <_rtld_local+2456>, l_ns = 0, l_libname = 0xfffb7ffc3a0 <_dl_rtld_libname>, l_info = {0x0, 0x0, 0xfffb7ff9ee0, 0xfffb7ff9ed0, 0xfffb7ff9e70,
0xfffb7ff9e90, 0xfffb7ff9ea0, 0xfffb7ff9f20, 0xfffb7ff9f30, 0xfffb7ff9f40, 0xfffb7ff9eb0, 0xfffb7ff9ec0, 0x0, 0x0, 0xfffb7ff9e60, 0x0, 0x0, 0x0, 0x0, 0x0, 0xfffb7ff9ef0, 0x0, 0x0,
0xfffb7ff9f00, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xfffb7ff9f70, 0x0, 0x0, 0x0, 0xfffb7ff9f10, 0x0, 0x0, 0x0, 0x0, 0xfffb7ff9f60, 0xfffb7ff9f50, 0xfffb7ff9f80, 0x0, 0xfffb7ff9fa0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0xfffb7ff9f90, 0x0 <repeats 25 times>, 0xfffb7ff9e80}, l_phdr = 0xfffb7fc0040, l_entry = 0, l_phnum = 6, l_ldnum = 0, l_searchlist = {r_list = 0x0, r_nlist = 0},
l_symbolic_searchlist = {r_list = 0x0, r_nlist = 0}, l_loader = 0x0, l_versions = 0xfffb7ffeff8, l_nversions = 5, l_nbuckets = 17, l_gnu_bitmask_idxbits = 3, l_gnu_shift = 8,
l_gnu_bitmask = 0xfffb7fc0280, {l_gnu_buckets = 0xfffb7fc02a0, l_chain = 0xfffb7fc02a0}, {l_gnu_chain_zero = 0xfffb7fc02d8, l_buckets = 0xfffb7fc02d8}, l_direct_opencount = 0,
l_type = lt_library, l_relocated = 1, l_init_called = 1, l_global = 1, l_reserved = 0, l_phdr_allocated = 0, l_soname_added = 0, l_faked = 0, l_need_tls_init = 0, l_auditing = 0,
l_audit_any_plt = 0, l_removed = 0, l_contiguous = 0, l_symbolic_in_local_scope = 0, l_free_initfini = 0, l_rpath_dirs = {dirs = 0x0, malloced = 0}, l_reloc_result = 0x0,
l_versyms = 0xfffb7fc0736, l_origin = 0x0, l_map_start = 17590977822720, l_map_end = 17590978069744, l_text_end = 17590977963688, l_scope_mem = {0x0, 0x0, 0x0, 0x0}, l_scope_max = 0,
l_scope = 0x0, l_local_scope = {0x0, 0x0}, l_dev = 0, l_ino = 0, l_runpath_dirs = {dirs = 0x0, malloced = 0}, l_initfini = 0x0, l_reldeps = 0x0, l_reldepsmax = 0, l_used = 1, l_feature_1 = 0,
l_flags_1 = 0, l_flags = 0, l_idx = 0, l_mach = {}, l_lookup_cache = {sym = 0xfffb7fc03f0, type_class = 1, value = 0xfffb7ffe4a0, ret = 0xfffb7d51d38}, l_tls_initimage = 0x0,
l_tls_initimage_size = 0, l_tls_blocksize = 0, l_tls_align = 0, l_tls_firstbyte_offset = 0, l_tls_offset = -1, l_tls_modid = 0, l_relro_addr = 236200, l_relro_size = 1368, l_serial = 0,
l_audit = 0xfffb7ffc178 <_rtld_local+3584>}, audit_data = {{cookie = 0, bindflags = 0} <repeats 16 times>}, _dl_rtld_lock_recursive = @0xfffb7f4f740: 0xfffb7f2ea60 <__GI___pthread_mutex_lock>,
_dl_rtld_unlock_recursive = @0xfffb7f4f7b8: 0xfffb7f301c0 <__GI___pthread_mutex_unlock>, _dl_make_stack_executable_hook = @0xfffb7f4f260: 0xfffb7f2b090 <__make_stacks_executable>,
_dl_stack_flags = 6, _dl_tls_dtv_gaps = false, _dl_tls_max_dtv_idx = 1, _dl_tls_dtv_slotinfo_list = 0xfffb7fff070, _dl_tls_static_nelem = 1, _dl_tls_static_size = 1776,
_dl_tls_static_used = 112, _dl_tls_static_align = 16, _dl_initial_dtv = 0xfffb7d30e10, _dl_tls_generation = 1, _dl_init_static_tls = @0xfffb7f4f2c0: 0xfffb7f2b940 <__pthread_init_static_tls>,
_dl_wait_lookup_done = @0xfffb7f4f2d8: 0xfffb7f2bb10 <__wait_lookup_done>, _dl_scope_free_list = 0x0}
_rtld_global = {_dl_ns = {{_ns_loaded = 0xfffb7ffc4f0, _ns_nloaded = 6, _ns_main_searchlist = 0xfffb7ffc7c0, _ns_global_scope_alloc = 0, _ns_unique_sym_table = {lock = {mutex = {__data = {
__lock = 0, __count = 0, __owner = 0, __nusers = 0, __kind = 1, __spins = 0, __list = {__prev = 0x0, __next = 0x0}},
__size = '\000' <repeats 19 times>, "\001", '\000' <repeats 19 times>, __align = 0}}, entries = 0x0, size = 0, n_elements = 0, free = 0x0}, _ns_debug = {r_version = 0, r_map = 0x0,
r_brk = 0, r_state = RT_CONSISTENT, r_ldbase = 0}}, {_ns_loaded = 0x0, _ns_nloaded = 0, _ns_main_searchlist = 0x0, _ns_global_scope_alloc = 0, _ns_unique_sym_table = {lock = {mutex = {
__data = {__lock = 0, __count = 0, __owner = 0, __nusers = 0, __kind = 0, __spins = 0, __list = {__prev = 0x0, __next = 0x0}}, __size = '\000' <repeats 39 times>, __align = 0}},
entries = 0x0, size = 0, n_elements = 0, free = 0x0}, _ns_debug = {r_version = 0, r_map = 0x0, r_brk = 0, r_state = RT_CONSISTENT, r_ldbase = 0}} <repeats 15 times>}, _dl_nns = 1,
_dl_load_lock = {mutex = {__data = {__lock = 0, __count = 0, __owner = 0, __nusers = 0, __kind = 1, __spins = 0, __list = {__prev = 0x0, __next = 0x0}},
__size = '\000' <repeats 19 times>, "\001", '\000' <repeats 19 times>, __align = 0}}, _dl_load_write_lock = {mutex = {__data = {__lock = 0, __count = 0, __owner = 0, __nusers = 0,
__kind = 1, __spins = 0, __list = {__prev = 0x0, __next = 0x0}}, __size = '\000' <repeats 19 times>, "\001", '\000' <repeats 19 times>, __align = 0}}, _dl_load_adds = 6,
_dl_initfirst = 0x0, _dl_cpuclock_offset = 245407786029163, _dl_profile_map = 0x0, _dl_num_relocations = 114, _dl_num_cache_relocations = 138, _dl_all_dirs = 0xfffb7ffd9f0,
_dl_error_catch_tsd = @0xfffb7f13a30: 0xfffb7ea5a90 <__libc_dl_error_tsd>, _dl_rtld_map = {l_addr = 17590977822720, l_name = 0x10000200 "/lib64/ld64.so.1", l_ld = 0xfffb7ff9e60, l_next = 0x0,
l_prev = 0xfffb7ffe4a0, l_real = 0xfffb7ffbd10 <_rtld_local+2456>, l_ns = 0, l_libname = 0xfffb7ffc3a0 <_dl_rtld_libname>, l_info = {0x0, 0x0, 0xfffb7ff9ee0, 0xfffb7ff9ed0, 0xfffb7ff9e70,
0xfffb7ff9e90, 0xfffb7ff9ea0, 0xfffb7ff9f20, 0xfffb7ff9f30, 0xfffb7ff9f40, 0xfffb7ff9eb0, 0xfffb7ff9ec0, 0x0, 0x0, 0xfffb7ff9e60, 0x0, 0x0, 0x0, 0x0, 0x0, 0xfffb7ff9ef0, 0x0, 0x0,
0xfffb7ff9f00, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xfffb7ff9f70, 0x0, 0x0, 0x0, 0xfffb7ff9f10, 0x0, 0x0, 0x0, 0x0, 0xfffb7ff9f60, 0xfffb7ff9f50, 0xfffb7ff9f80, 0x0, 0xfffb7ff9fa0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0, 0x0, 0xfffb7ff9f90, 0x0 <repeats 25 times>, 0xfffb7ff9e80}, l_phdr = 0xfffb7fc0040, l_entry = 0, l_phnum = 6, l_ldnum = 0, l_searchlist = {r_list = 0x0, r_nlist = 0},
l_symbolic_searchlist = {r_list = 0x0, r_nlist = 0}, l_loader = 0x0, l_versions = 0xfffb7ffeff8, l_nversions = 5, l_nbuckets = 17, l_gnu_bitmask_idxbits = 3, l_gnu_shift = 8,
l_gnu_bitmask = 0xfffb7fc0280, {l_gnu_buckets = 0xfffb7fc02a0, l_chain = 0xfffb7fc02a0}, {l_gnu_chain_zero = 0xfffb7fc02d8, l_buckets = 0xfffb7fc02d8}, l_direct_opencount = 0,
l_type = lt_library, l_relocated = 1, l_init_called = 1, l_global = 1, l_reserved = 0, l_phdr_allocated = 0, l_soname_added = 0, l_faked = 0, l_need_tls_init = 0, l_auditing = 0,
l_audit_any_plt = 0, l_removed = 0, l_contiguous = 0, l_symbolic_in_local_scope = 0, l_free_initfini = 0, l_rpath_dirs = {dirs = 0x0, malloced = 0}, l_reloc_result = 0x0,
l_versyms = 0xfffb7fc0736, l_origin = 0x0, l_map_start = 17590977822720, l_map_end = 17590978069744, l_text_end = 17590977963688, l_scope_mem = {0x0, 0x0, 0x0, 0x0}, l_scope_max = 0,
l_scope = 0x0, l_local_scope = {0x0, 0x0}, l_dev = 0, l_ino = 0, l_runpath_dirs = {dirs = 0x0, malloced = 0}, l_initfini = 0x0, l_reldeps = 0x0, l_reldepsmax = 0, l_used = 1, l_feature_1 = 0,
l_flags_1 = 0, l_flags = 0, l_idx = 0, l_mach = {}, l_lookup_cache = {sym = 0xfffb7fc03f0, type_class = 1, value = 0xfffb7ffe4a0, ret = 0xfffb7d51d38}, l_tls_initimage = 0x0,
l_tls_initimage_size = 0, l_tls_blocksize = 0, l_tls_align = 0, l_tls_firstbyte_offset = 0, l_tls_offset = -1, l_tls_modid = 0, l_relro_addr = 236200, l_relro_size = 1368, l_serial = 0,
l_audit = 0xfffb7ffc178 <_rtld_local+3584>}, audit_data = {{cookie = 0, bindflags = 0} <repeats 16 times>}, _dl_rtld_lock_recursive = @0xfffb7f4f740: 0xfffb7f2ea60 <__GI___pthread_mutex_lock>,
---Type to continue, or q to quit---
_dl_rtld_unlock_recursive = @0xfffb7f4f7b8: 0xfffb7f301c0 <__GI___pthread_mutex_unlock>, _dl_make_stack_executable_hook = @0xfffb7f4f260: 0xfffb7f2b090 <__make_stacks_executable>,
_dl_stack_flags = 6, _dl_tls_dtv_gaps = false, _dl_tls_max_dtv_idx = 1, _dl_tls_dtv_slotinfo_list = 0xfffb7fff070, _dl_tls_static_nelem = 1, _dl_tls_static_size = 1776,
_dl_tls_static_used = 112, _dl_tls_static_align = 16, _dl_initial_dtv = 0xfffb7d30e10, _dl_tls_generation = 1, _dl_init_static_tls = @0xfffb7f4f2c0: 0xfffb7f2b940 <__pthread_init_static_tls>,
_dl_wait_lookup_done = @0xfffb7f4f2d8: 0xfffb7f2bb10 <__wait_lookup_done>, _dl_scope_free_list = 0x0}
_dl_argc = 1
_dl_argv_internal = 0xffffffff898

k0da commented

Just tested 0.36.2 tests are passed.

What is likely happening here is that the pthreads conditionalisation
code that is new in 0.39 is tripping something up.

When I wrote this code, I tested it on all platfors I have shell
accounts on, and it seemed to work fine on all of them, even on the
ancient dinosaur UNIX stuff.

So either I am making an invalid assumption somewhere that only trips
up Linux/ppc, or there is a lurking bug on Linux/ppc somewhere.

I can't really debug this remotely, so I would advise that you stick
with 0.36.x for now. Once a new stable branch is on the horizon I'll
coordinate with you and/or others on this issue.

FWIW, Debian has ppc64 buildds now too. I can upload a 0.39 package to experimental, and see where the build goes.

Debugged this further with @buytenh on a Debian ppc64el box, and concluded that we need -Wl,-u,pthread_atfork added to LDFLAGS if - and only if - pthread_atfork is in pthread_nonshared. So an extra configure check and some hackery may be needed.

With -Wl,-u,pthread_atfork added to the libivykis.so linker flags (so not for the tests, or anything else), the tests pass on ppc64el.

I'll try my hands on a patch a bit later.

This is fixed by commit "Avoid jumping to address zero when calling pthread_atfork() on Linux.":

6cbb729

This commit is in ivykis release 0.41.