RFC: C++ PATCH for c++/69763, making C++ alignof match C _Alignof

Jakub Jelinek jakub@redhat.com
Tue Apr 24 16:25:00 GMT 2018


On Tue, Apr 24, 2018 at 11:55:44AM -0400, Jason Merrill wrote:
> >> Tested x86_64-pc-linux-gnu, applying to trunk.
> >
> > This regressed:
> > +FAIL: c-c++-common/attr-aligned-1.c  -std=c++11 (test for excess errors)
> > +UNRESOLVED: c-c++-common/attr-aligned-1.c  -std=c++11 compilation failed to produce executable
> > +FAIL: c-c++-common/attr-aligned-1.c  -std=c++14 (test for excess errors)
> > +UNRESOLVED: c-c++-common/attr-aligned-1.c  -std=c++14 compilation failed to produce executable
> > +FAIL: g++.dg/cpp0x/alignas4.C  -std=c++11  scan-assembler align 8
> > +FAIL: g++.dg/cpp0x/alignas4.C  -std=c++14  scan-assembler align 8
> > on i686-linux, can be reproduced even with just
> > make check-gcc check-g++ RUNTESTFLAGS="--target_board=unix\{-m64,-m32\} dg.exp='attr-aligned-1.c alignas4.C'"
> > on x86_64-linux.
> 
> Thanks.  How is your build tree configured so that this finds the
> appropriate runtime libraries?

For the above make check or for i686-linux bootstraps?

For the former, nothing special is needed, on Fedora/RHEL I guess just
making sure {glibc{,-devel},libgcc}.i686 is installed.

For the latter, I'm using hack scripts:
for i in ~/hbin/*; do echo $i; cat $i; done
/home/jakub/hbin/as
#!/bin/sh
exec /usr/bin/as --32 "$@"
/home/jakub/hbin/g++
#!/bin/sh
exec /usr/bin/g++ -m32 "$@"
/home/jakub/hbin/gcc
#!/bin/sh
exec /usr/bin/gcc -m32 "$@"
/home/jakub/hbin/ld
#!/bin/sh
case "$*" in
  --version) cat <<\EOF
GNU ld version 2.20.52.0.1-10.fc17 20100131
Copyright 2012 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms of
the GNU General Public License version 3 or (at your option) a later version.
This program has absolutely no warranty.
EOF
  exit 0;;
esac
exec /usr/bin/ld -m elf_i386 -L /usr/lib/ "$@"

The ld ugliness is to avoid lto-plugin.  And then just
PATH=~/hbin:$PATH i386 ../configure --enable-languages=default,obj-c++,lto,go,brig --enable-checking=yes,rtl,extra && PATH=~/hbin:$PATH i386 make -j16 bootstrap > LOG 2>&1 && PATH=~/hbin:$PATH i386 make -j16 -k check > LOGC 2>&1; ../contrib/test_summary > LOGT 2>&1

	Jakub



More information about the Gcc-patches mailing list