Re: Somethign missing in my environment?

From: Johannes Lundberg <johalun0_at_gmail.com>
Date: Tue, 10 Oct 2017 22:54:46 +0200
Thanks for the pointers. It's weird... I was thinking that the local
git repo may have been messed up somewhere but exactly the same source
code builds in a jail which is also 12-current.

Host system: drm-next tree built in a jail and then installed on host
(due to build error on host) drm-next is identical to upstream except
graphics stuff and lkpi.
Jail: 12-current image downloaded from freebsd ftp site

No make flags except malloc production.. No weird env vars..

Error:
/usr/obj/usr/home/johannes/dev/freebsd/freebsd-base-graphics/tmp/usr/lib/libgcc_s.so:
undefined reference to `__gxx_personality_v0'

In host:
johannes_at_jd:~/dev/freebsd/freebsd-base-graphics % nm -D
/usr/obj/usr/home/johannes/dev/freebsd/freebsd-base-graphics/tmp/usr/lib/libgcc_s.so
| grep person
000000000000c1a0 T __gcc_personality_v0
                 U __gxx_personality_v0

johannes_at_jd:~/dev/freebsd/freebsd-base-graphics % nm -D
/usr/lib/libgcc_s.so | grep person
0000000000006e30 T __gcc_personality_v0

And from the jail:
root_at_build12:~ # nm -D
/usr/obj/root/freebsd-base-graphics/tmp/usr/lib/libgcc_s.so | grep
person
0000000000006e30 T __gcc_personality_v0


Ok I found the problem while writing this but I'll still post the
output above.. The problem seem to be that I was running as normal
user on host (but root in the jail). Switching to root and it works.
Now it only complains about fat partitions being too small but that's
an easier fix..


On Tue, Oct 10, 2017 at 9:12 PM, Mark Millard <markmi_at_dsl-only.net> wrote:
> May be this will help find the problem in your environment:
>
> # grep -r gxx_personality_v0 /usr/src/* | more
> . . .
> /usr/src/contrib/libcxxrt/exception.cc:BEGIN_PERSONALITY_FUNCTION(__gxx_personality_v0)
> . . .
> /usr/src/contrib/libstdc++/libsupc++/eh_personality.cc:#define PERSONALITY_FUNCTION     __gxx_personality_v0
> . . .
> /usr/src/gnu/lib/libsupc++/Version.map:    __gxx_personality_v0;
> /usr/src/lib/libcxxrt/Version.map:    __gxx_personality_v0;
>
> # grep -r PERSONALITY_FUNCTION /usr/src/* | more
> . . .
> /usr/src/contrib/libstdc++/libsupc++/eh_personality.cc:#define PERSONALITY_FUNCTION     __gxx_personality_sj0
> /usr/src/contrib/libstdc++/libsupc++/eh_personality.cc:#define PERSONALITY_FUNCTION     __gxx_personality_v0
> /usr/src/contrib/libstdc++/libsupc++/eh_personality.cc:PERSONALITY_FUNCTION (_Unwind_State state,
> /usr/src/contrib/libstdc++/libsupc++/eh_personality.cc:PERSONALITY_FUNCTION (int version,
> . . .
>
>
> So it looks like the implementation of __gxx_personality_v0
> is supposed to be in one of:
>
> libcxxrt.so.* for clang and modern gcc based buildworld's
>
> libsuppc++.so.* for gcc 4.2.1 based buildworld's
>
>
> ===
> Mark Millard
> markmi at dsl-only.net
>
Received on Tue Oct 10 2017 - 18:54:49 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:41:13 UTC