[Bug 207359] projects/clang380-import for TARGET_ARCH=powerpc64 via powerpc64-gcc : c++ exceptions unbounded loop in _Unwind_RaiseException (9 line program)

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Tue Feb 23 09:03:04 UTC 2016


https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=207359

--- Comment #1 from Mark Millard <markmi at dsl-only.net> ---
(Now using projects/clang380-import -r295902 as a context.)

TARGET_ARCH=powerpc64 here.

It looks like FreeBSD's /lib/libgcc_s.so.1 is incompatible with using the pair:
/usr/lib/libc++.so.1 and /lib/libcxxrt.so.1 .

Details follow.

Later below I list the ldd output for compiling the exception_test.cpp example
under different compilers with different options that change what ldd shows and
how .so's are found/bound. Some are using. . .

ELF ldconfig path: /lib /usr/lib /usr/lib/compat /usr/local/lib
/usr/local/lib/compat/pkg /usr/local/lib/compat/pkg /usr/local/lib/gcc49
/usr/local/lib/gcc6

and others are explicitly bound, such as by -Wl,-rpath=<?> .

The only combinations that do not work are the ones that mix 3 things together:

/usr/lib/libc++.so.1
/lib/libcxxrt.so.1
/lib/libgcc_s.so.1

That is: exception_test.clang++380.powerpc64 and
exception_test.powerpc64-gcc.powerpc64 get the unbounded looping and the others
work fine.

By contrast /lib/libgcc_s.so.1 works with:

/usr/local/lib/gcc49/libstdc++.so.6
and
/usr/local/lib/gcc6/libstdc++.so.6

Of course a matched libstdc++/libgcc_s for a specific compiler also works.




# ldd *powerpc64
exception_test.clang++380.powerpc64:
        libc++.so.1 => /usr/lib/libc++.so.1 (0x50054000)
        libcxxrt.so.1 => /lib/libcxxrt.so.1 (0x5015a000)
        libm.so.5 => /lib/libm.so.5 (0x50181000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x501be000)
        libc.so.7 => /lib/libc.so.7 (0x501e4000)
exception_test.g++49-implicitgcc49.powerpc64:
        libstdc++.so.6 => /usr/local/lib/gcc49/libstdc++.so.6 (0x50054000)
        libm.so.5 => /lib/libm.so.5 (0x501ed000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x5022a000)
        libc.so.7 => /lib/libc.so.7 (0x50250000)
exception_test.g++49.powerpc64:
        libstdc++.so.6 => /usr/local/lib/gcc49/libstdc++.so.6 (0x50054000)
        libm.so.5 => /lib/libm.so.5 (0x501ed000)
        libgcc_s.so.1 => /usr/local/lib/gcc49/libgcc_s.so.1 (0x5022a000)
        libc.so.7 => /lib/libc.so.7 (0x50253000)
exception_test.g++6-implicitgcc49.powerpc64:
        libstdc++.so.6 => /usr/local/lib/gcc49/libstdc++.so.6 (0x50054000)
        libm.so.5 => /lib/libm.so.5 (0x501ed000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x5022a000)
        libc.so.7 => /lib/libc.so.7 (0x50250000)
exception_test.g++6.powerpc64:
        libstdc++.so.6 => /usr/local/lib/gcc6/libstdc++.so.6 (0x50054000)
        libm.so.5 => /lib/libm.so.5 (0x502a6000)
        libgcc_s.so.1 => /usr/local/lib/gcc6/libgcc_s.so.1 (0x502e3000)
        libc.so.7 => /lib/libc.so.7 (0x5030a000)
exception_test.powerpc64-gcc.powerpc64:
        libc++.so.1 => /usr/lib/libc++.so.1 (0x50053000)
        libcxxrt.so.1 => /lib/libcxxrt.so.1 (0x50159000)
        libm.so.5 => /lib/libm.so.5 (0x50180000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x501bd000)
        libc.so.7 => /lib/libc.so.7 (0x501e3000)

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the freebsd-bugs mailing list