On Tue, May 14, 2024 at 2:06 AM James K. Lowden
<jklow...@schemamania.org> wrote:
>
> On Wed, 8 May 2024 21:40:44 +0200
> Jakub Jelinek <ja...@redhat.com> wrote:
>
> > Perhaps you don't link cobol1 with the correct make variables
> > as other FEs are linked?
>
> First, thank you for the careful answer.  It allowed me to trace
> through the machinery.  And I confirmed that it works, usually.
>
> The Make-lang.in for the cobol1 compiler was modelled on the one for
> fortran and, indeed, it's usually built statically linked to libstdc++:
>
> $ g++ -no-pie -g3 -DIN_GCC -fno-exceptions -fno-rtti
> -fasynchronous-unwind-tables [...] -fno-common -DHAVE_CONFIG_H -no-pie
> -static-libstdc++ -static-libgcc attribs.o -o cobol1 [...]
>
> As we would expect, ldd(1) reports that output is not linked to libstdc+
> +.so.
>
> Where things appear to go awry is when I try to take a shortcut:
>
>         $ make -C build install

I don't think that's designed to work.  You should do

make -C build && make -C build install

Also note that when you are not bootstrapping you get cobol1 linked to the
host compilers libstdc++ dynamically I think (same for stage1 when
bootstrapping).

> where "build" is the top of the gcc build tree, where we'll eventually
> find build/gcc/cobol1. When done that way, cobol1 sometimes ends up
> dependent on libstdc++.so.
>
> I haven't tried to find out why that is, whether it's something we're
> doing, or something more general.  It does seem like more gets built
> than needs to be when I do that.  <shrug>
>
> For now, at least I understand what the expected outcome is.  The
> compiler should be statically linked to the C++ library.  When it's
> not, something went wrong.
>
> --jkl

Reply via email to