On Wed, Feb 22, 2023 at 01:02:58PM +0000, Jonathan Yong wrote: > On 2/22/23 09:25, Jakub Jelinek wrote: > > As discussed in the PR, t-cygwin-w64 file has been introduced in 2013 > > and has one important problem, two different multilib options -m64 and -m32, > > but MULTILIB_DIRNAMES with just one word in it. > > Before the genmultilib sanity checking was added, my understanding is that > > this essentially resulted in effective --disable-multilib, > > $ gcc -print-multi-lib > > .; > > ;@m32 > > $ gcc -print-multi-directory > > . > > $ gcc -print-multi-directory -m64 > > . > > $ gcc -print-multi-directory -m32 > > > > $ gcc -print-multi-os-directory > > ../lib > > $ gcc -print-multi-os-directory -m64 > > ../lib > > $ gcc -print-multi-os-directory -m32 > > ../lib32 > > and because of the way e.g. config-ml.in operates > > multidirs= > > for i in `${CC-gcc} --print-multi-lib 2>/dev/null`; do > > dir=`echo $i | sed -e 's/;.*$//'` > > if [ "${dir}" = "." ]; then > > true > > else > > if [ -z "${multidirs}" ]; then > > multidirs="${dir}" > > else > > multidirs="${multidirs} ${dir}" > > fi > > fi > > done > > dir was . first time (and so nothing was done) and empty > > second time, multidirs empty too, so multidirs was set to empty > > like it would be with --disable-multilib. > > > > With the added sanity checking the build fails unless --disable-multilib > > is used in configure (dunno whether people usually configure that way > > on cygwin). > > > > > From what has been said in the PR, multilibs were not meant to be > > > supported > > and e.g. cygwin headers probably aren't ready for it. > > > > So the following patch just removes the file with the (incorrect) multilib > > stuff instead of fixing it (say by setting MULTILIB_DIRNAMES to 64 32). > > > > I have no way to test this though, no Windows around, can anyone please > > test this? I just would like to get some progress on the P1s we have... > > > > 2023-02-22 Jakub Jelinek <ja...@redhat.com> > > > > PR target/107998 > > * config.gcc (x86_64-*-cygwin*): Don't add i386/t-cygwin-w64 into > > $tmake_file. > > * config/i386/t-cygwin-w64: Remove. > > > > --- gcc/config.gcc.jj 2023-02-18 12:38:30.803025062 +0100 > > +++ gcc/config.gcc 2023-02-21 17:07:12.143164563 +0100 > > @@ -2105,7 +2105,7 @@ x86_64-*-cygwin*) > > need_64bit_isa=yes > > tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h i386/cygming.h > > i386/cygwin.h i386/cygwin-w64.h i386/cygwin-stdint.h" > > xm_file=i386/xm-cygwin.h > > - tmake_file="${tmake_file} i386/t-cygming t-slibgcc i386/t-cygwin-w64" > > + tmake_file="${tmake_file} i386/t-cygming t-slibgcc" > > target_gtfiles="$target_gtfiles \$(srcdir)/config/i386/winnt.cc" > > extra_options="${extra_options} i386/cygming.opt i386/cygwin.opt" > > extra_objs="${extra_objs} winnt.o winnt-stubs.o" > > --- gcc/config/i386/t-cygwin-w64.jj 2020-01-12 11:54:36.333414616 +0100 > > +++ gcc/config/i386/t-cygwin-w64 2023-02-21 17:06:44.121572616 +0100 > > @@ -1,3 +0,0 @@ > > -MULTILIB_OPTIONS = m64/m32 > > -MULTILIB_DIRNAMES = 64 > > -MULTILIB_OSDIRNAMES = ../lib ../lib32 > > Achim, mind looking at this? > Resending due to mail client problems, hopefully not a duplicate.
NightStrike on IRC said he has tested the patch and it worked fine. Is the patch ok for trunk then? Jakub