Joerg Sonnenberger writes:
> On Tue, Feb 12, 2019 at 10:16:58AM +0000, matthew green wrote:
> > Module Name:        src
> > Committed By:       mrg
> > Date:               Tue Feb 12 10:16:58 UTC 2019
> > 
> > Modified Files:
> >     src/usr.bin/crunch/crunchgen: crunchgen.c
> > 
> > Log Message:
> > hack alert time:
> > 
> > on sparc and sparc64, don't remove .eh_frame section.  it leads
> > to failure as something is referenced, and objcopy ends up
> > emitting a broken binary that can't be run -- it attempts to
> > load at va=0, beyond having missing referenced data.
> > 
> > also, on sparc64 also don't remove .note.netbsd.mcmodel.
> > 
> > the former should be revised when we can avoid it.
> 
> The real bug is the reverted varasm.c change. GCC creates the .eh_frame
> section with the wrong permissions.

yes - putting your varasm.c back fixes the crtbegin.o
build, but it breaks the libstdc++ one:

In file included from 
/usr/src4/external/gpl3/gcc/dist/libstdc++-v3/src/c++98/pool_allocator.cc:31:0:
/usr/src4/external/gpl3/gcc/dist/libstdc++-v3/include/ext/pool_allocator.h:210:5:
 error: only zero initializers are allowed in section 
'.bss._ZN9__gnu_cxx12__pool_allocIwE12_S_force_newE'
     __pool_alloc<_Tp>::_S_force_new;
     ^~~~~~~~~~~~~~~~~
i'm not sure how to solve this -- we apparently want both
behaviours with GCC 7.  uwe@ suggested an explicit asm()
or .S file for the crtbegin issue.


.mrg.

Reply via email to