Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 09 Aug 2017 00:14:31 +0000
From:      bugzilla-noreply@freebsd.org
To:        freebsd-toolchain@FreeBSD.org
Subject:   [Bug 221288] lang/gcc5 links against libsupc++ when compiling
Message-ID:  <bug-221288-29464-JZbUPOdAh0@https.bugs.freebsd.org/bugzilla/>
In-Reply-To: <bug-221288-29464@https.bugs.freebsd.org/bugzilla/>
References:  <bug-221288-29464@https.bugs.freebsd.org/bugzilla/>

next in thread | previous in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D221288

--- Comment #10 from Mark Millard <markmi@dsl-only.net> ---
I looked up the tree from my lang/gcc6 build and find that
its libstdc++.a is linked in part via a bunch of:

.libs/libstdc++.lax/libsupc++convenience.a/*.o

files. Specifically:

libtool: link: /usr/local/x86_64-portbld-freebsd12.0/bin/ar rc
.libs/libstdc++.a compatibility.o compatibility-debug_list.o
compatibility-debug_list-2.o compatibility-c++0x.o compatibility-atomic-c++0
x.o compatibility-thread-c++0x.o compatibility-chrono.o compatibility-condv=
ar.o
.libs/libstdc++.lax/libsupc++convenience.a/del_op.o
.libs/libstdc++.lax/libsupc++convenience.a/tinfo2.o .libs/libstdc++.
lax/libsupc++convenience.a/bad_typeid.o
.libs/libstdc++.lax/libsupc++convenience.a/dyncast.o
.libs/libstdc++.lax/libsupc++convenience.a/eh_throw.o
.libs/libstdc++.lax/libsupc++convenience.a/guard.o .l
ibs/libstdc++.lax/libsupc++convenience.a/new_opv.o
.libs/libstdc++.lax/libsupc++convenience.a/eh_tm.o
.libs/libstdc++.lax/libsupc++convenience.a/vterminate.o
.libs/libstdc++.lax/libsupc++convenience.a
/bad_array_new.o .libs/libstdc++.lax/libsupc++convenience.a/new_handler.o
.libs/libstdc++.lax/libsupc++convenience.a/pbase_type_info.o
.libs/libstdc++.lax/libsupc++convenience.a/bad_array_length.o .li
bs/libstdc++.lax/libsupc++convenience.a/si_class_type_info.o
.libs/libstdc++.lax/libsupc++convenience.a/eh_exception.o
.libs/libstdc++.lax/libsupc++convenience.a/new_opvnt.o
.libs/libstdc++.lax/libsup
c++convenience.a/eh_call.o
.libs/libstdc++.lax/libsupc++convenience.a/bad_alloc.o
.libs/libstdc++.lax/libsupc++convenience.a/eh_aux_runtime.o
.libs/libstdc++.lax/libsupc++convenience.a/bad_cast.o .lib
s/libstdc++.lax/libsupc++convenience.a/pointer_type_info.o
.libs/libstdc++.lax/libsupc++convenience.a/eh_globals.o
.libs/libstdc++.lax/libsupc++convenience.a/pure.o
.libs/libstdc++.lax/libsupc++conven
ience.a/fundamental_type_info.o
.libs/libstdc++.lax/libsupc++convenience.a/new_op.o
.libs/libstdc++.lax/libsupc++convenience.a/del_ops.o
.libs/libstdc++.lax/libsupc++convenience.a/atexit_arm.o .libs/l
ibstdc++.lax/libsupc++convenience.a/eh_arm.o
.libs/libstdc++.lax/libsupc++convenience.a/guard_error.o
.libs/libstdc++.lax/libsupc++convenience.a/array_type_info.o
.libs/libstdc++.lax/libsupc++convenie
nce.a/vmi_class_type_info.o
.libs/libstdc++.lax/libsupc++convenience.a/atexit_thread.o
.libs/libstdc++.lax/libsupc++convenience.a/eh_term_handler.o
.libs/libstdc++.lax/libsupc++convenience.a/eh_unex_h
andler.o .libs/libstdc++.lax/libsupc++convenience.a/class_type_info.o
.libs/libstdc++.lax/libsupc++convenience.a/hash_bytes.o
.libs/libstdc++.lax/libsupc++convenience.a/del_opv.o .libs/libstdc++.lax/l
ibsupc++convenience.a/eh_terminate.o
.libs/libstdc++.lax/libsupc++convenience.a/del_opnt.o
.libs/libstdc++.lax/libsupc++convenience.a/cp-demangle.o
.libs/libstdc++.lax/libsupc++convenience.a/del_opvnt
.o .libs/libstdc++.lax/libsupc++convenience.a/vec.o
.libs/libstdc++.lax/libsupc++convenience.a/del_opvs.o
.libs/libstdc++.lax/libsupc++convenience.a/nested_exception.o
.libs/libstdc++.lax/libsupc++con
venience.a/eh_alloc.o .libs/libstdc++.lax/libsupc++convenience.a/eh_ptr.o
.libs/libstdc++.lax/libsupc++convenience.a/tinfo.o
.libs/libstdc++.lax/libsupc++convenience.a/enum_type_info.o .libs/libstdc++
.lax/libsupc++convenience.a/eh_type.o
.libs/libstdc++.lax/libsupc++convenience.a/function_type_info.o
.libs/libstdc++.lax/libsupc++convenience.a/eh_personality.o
.libs/libstdc++.lax/libsupc++convenien
ce.a/eh_catch.o .libs/libstdc++.lax/libsupc++convenience.a/new_opnt.o
.libs/libstdc++.lax/libsupc++convenience.a/pmem_type_info.o
. . . (more from elsewhere) . . .

Similarly .libs/libstdc++.so.6.0.22 's link lists:

../libsupc++/.libs/libsupc++convenience.a

and has:

-L/usr/obj/portswork/usr/ports/lang/gcc6/work/.build/x86_64-portbld-freebsd=
12.0/libstdc++-v3/libsupc++/.libs

For example:

libtool: link:  /usr/obj/portswork/usr/ports/lang/gcc6/work/.build/./gcc/xg=
cc
-shared-libgcc -B/usr/obj/portswork/usr/ports/lang/gcc6/work/.build/./gcc
-nostdinc++ -L/usr/obj/portswork/usr/ports/lang/
gcc6/work/.build/x86_64-portbld-freebsd12.0/libstdc++-v3/src
-L/usr/obj/portswork/usr/ports/lang/gcc6/work/.build/x86_64-portbld-freebsd=
12.0/libstdc++-v3/src/.libs
-L/usr/obj/portswork/usr/ports/lang/
gcc6/work/.build/x86_64-portbld-freebsd12.0/libstdc++-v3/libsupc++/.libs
-B/usr/local/x86_64-portbld-freebsd12.0/bin/
-B/usr/local/x86_64-portbld-freebsd12.0/lib/ -isystem
/usr/local/x86_64-portbld-fr
eebsd12.0/include -isystem /usr/local/x86_64-portbld-freebsd12.0/sys-includ=
e=20=20=20
 -fPIC -DPIC -D_GLIBCXX_SHARED -shared -nostdlib /usr/lib/crti.o
/usr/obj/portswork/usr/ports/lang/gcc6/work/.build/./gc
c/crtbeginS.o  .libs/compatibility.o .libs/compatibility-debug_list.o
.libs/compatibility-debug_list-2.o .libs/compatibility-c++0x.o
.libs/compatibility-atomic-c++0x.o .libs/compatibility-thread-c++0x
.o .libs/compatibility-chrono.o .libs/compatibility-condvar.o=20
-Wl,--whole-archive ../libsupc++/.libs/libsupc++convenience.a
../src/c++98/.libs/libc++98convenience.a ../src/c++11/.libs/libc++11conveni
ence.a -Wl,--no-whole-archive=20
-L/usr/obj/portswork/usr/ports/lang/gcc6/work/.build/x86_64-portbld-freebsd=
12.0/libstdc++-v3/libsupc++/.libs
-L/usr/obj/portswork/usr/ports/lang/gcc6/work/.build/x86_64-
portbld-freebsd12.0/libstdc++-v3/src
-L/usr/obj/portswork/usr/ports/lang/gcc6/work/.build/x86_64-portbld-freebsd=
12.0/libstdc++-v3/src/.libs
-lm -L/usr/obj/portswork/usr/ports/lang/gcc6/work/.build/./g
cc -L/usr/local/x86_64-portbld-freebsd12.0/bin
-L/usr/local/x86_64-portbld-freebsd12.0/lib -lc -lgcc_s
/usr/obj/portswork/usr/ports/lang/gcc6/work/.build/./gcc/crtendS.o
/usr/lib/crtn.o  -B/usr/obj/po
rtswork/usr/ports/lang/gcc6/work/.build/./gcc
-B/usr/local/x86_64-portbld-freebsd12.0/bin/
-B/usr/local/x86_64-portbld-freebsd12.0/lib/ -Wl,-O1 -Wl,-z -Wl,relro
-Wl,--gc-sections -Wl,--version-script=3D
libstdc++-symbols.ver   -Wl,-soname -Wl,libstdc++.so.6 -o
.libs/libstdc++.so.6.0.22

where .libs/libsupc++convenience.a was linked via:

libtool: link: /usr/local/x86_64-portbld-freebsd12.0/bin/ar rc
.libs/libsupc++convenience.a  array_type_info.o atexit_arm.o atexit_thread.o
bad_alloc.o bad_array_length.o bad_array_new.o bad_cast.o bad_typeid.o
class_type_info.o del_op.o del_ops.o del_opnt.o del_opv.o del_opvs.o
del_opvnt.o dyncast.o eh_alloc.o eh_arm.o eh_aux_runtime.o eh_call.o eh_cat=
ch.o
eh_exception.o eh_globals.o eh_personality.o eh_ptr.o eh_term_handler.o
eh_terminate.o eh_tm.o eh_throw.o eh_type.o eh_unex_handler.o enum_type_inf=
o.o
function_type_info.o fundamental_type_info.o guard.o guard_error.o hash_byt=
es.o
nested_exception.o new_handler.o new_op.o new_opnt.o new_opv.o new_opvnt.o
pbase_type_info.o pmem_type_info.o pointer_type_info.o pure.o
si_class_type_info.o tinfo.o tinfo2.o vec.o vmi_class_type_info.o vterminat=
e.o
cp-demangle.o

It appears that for libstdc++.so use (dynamic linking) libsupc++
is at last partially bundled in libstdc++.so . This also seems to
be true of libstdc++.a for static linking, even if libsupc++.a
contains more.

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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-221288-29464-JZbUPOdAh0>