From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 11647 invoked by alias); 10 Mar 2015 06:13:54 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 11637 invoked by uid 89); 10 Mar 2015 06:13:54 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=0.9 required=5.0 tests=AWL,BAYES_50,KAM_MXURI,RCVD_IN_DNSWL_NONE,SPF_HELO_PASS autolearn=no version=3.3.2 X-HELO: mail.ud10.udmedia.de Received: from ud10.udmedia.de (HELO mail.ud10.udmedia.de) (194.117.254.50) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES256-GCM-SHA384 encrypted) ESMTPS; Tue, 10 Mar 2015 06:13:52 +0000 Received: (qmail 5979 invoked from network); 10 Mar 2015 07:13:48 +0100 Received: from unknown (HELO x4) (ud10?360p3@91.65.248.138) by mail.ud10.udmedia.de with ESMTPSA (DHE-RSA-AES256-SHA encrypted, authenticated); 10 Mar 2015 07:13:48 +0100 Date: Tue, 10 Mar 2015 06:13:00 -0000 From: Markus Trippelsdorf To: David Edelsohn Cc: Martin Sebor , Andreas Schwab , Jeff Law , Gcc Patch List , Alan Modra Subject: Re: [PATCH] target/65286 - Disable multilib for ppc64le Message-ID: <20150310061348.GA342@x4> References: <54F658DB.6030200@redhat.com> <54F73089.8040308@redhat.com> <54F73594.6000601@redhat.com> <87a8zsy95u.fsf@igel.home> <54F7696A.3040307@redhat.com> <20150305040604.GA25172@bubble.grove.modra.org> <20150305231402.GD25172@bubble.grove.modra.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable In-Reply-To: X-SW-Source: 2015-03/txt/msg00520.txt.bz2 On 2015.03.09 at 14:00 -0400, David Edelsohn wrote: > On Thu, Mar 5, 2015 at 6:14 PM, Alan Modra wrote: > > This arranges to build a powerpc64le-linux compiler without -m32 > > support by default. Bootstrapped and regression tested on Ubuntu > > powerpc64le-linux without --disable-multilib, and on powerpc64-linux > > and powerpc-linux. OK for mainline and branches? > > > > This part of the config.gcc patch does most of the work > > - case ${maybe_biarch}:${enable_targets}:${cpu_is_64bit} in > > - always:* | yes:*powerpc64* | yes:all:* | yes:*:yes) > > + case ${target}:${enable_targets}:${maybe_biarch} in > > + powerpc64-* | powerpc-*:*:yes | *:*powerpc64-*:yes | *:all:= yes \ > > + | powerpc64le*:*powerpcle* | powerpc64le*:*powerpc-* \ > > + | powerpcle-*:*powerpc64le*:yes) > > > > always:* becomes powerpc64-*, ie. exclude powerpc64le > > yes:*powerpc64* becomes *:*powerpc64-*:yes, excluding powerpc64le so > > that --target=3Dpowerpc64le-linux --enable-targets=3Dpowerpc64le-linux > > doesn't accidentally get you a biarch compiler. > > yes:all:* becomes *:all:yes, more or less unchanged. > > yes:*:yes becomes powerpc-*:*:yes allowing --target=3Dpowerpc-linux > > --with-cpu=3D to continue to build a biarch ppc64 > > compiler. > > > > Some other notes: > > t-fprules setting of MULTILIB variables is in every case overridden by > > a following t-file, except for the commented out powerpc-*-openbsd*. > > Since the aim of this patch is to build powerpc64le without multilibs, > > the default setting of these vars needs to go. t-ppcos needs to be > > removed from powerpc64le configurations for the same reason. Oh, and > > adding t-fprules and t-ppcos before previous additions to tmake_file > > is no longer necessary. I checked all the other t-files that might be > > added for interactions. > > > > The linux64.h change is so that passing -m32 results in > > error: -m32 not supported in the configuration > > rather than the confusing > > error: -m64 requires a PowerPC64 cpu > > (Yes, I know using TARGET_64BIT_P would be nicer, but it's probably > > better left to a cleanup patch.) > > > > PR target/65286 > > * config.gcc (powerpc*-*-linux*): Arrange for powerpc64le-linux > > to be single-arch by default. Set cpu_is_64bit for powerpc64 > > given --with-cpu=3Dnative. > > * config/rs6000/t-fprules: Do not set default MULTILIB vars. > > * config/rs6000/t-linux (MULTIARCH_DIRNAME): Support powerpc64 > > and powerpc64le. > > * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Test > > rs6000_isa_flags rather than TARGET_64BIT. >=20 > Okay. >=20 > The number of name variations is annoying, but I guess there's no choice = now. This patch breaks the build on ppc64le: trippels@gcc2-power8 gcc_build_dir % ../gcc/configure --with-cpu=3Dpower8 -= -disable-libsanitizer --disable-bootstrap --disable-libstdcxx-pch --disable= -libvtv --disable-libitm --disable-libcilkrts --disable-libssp --disable-li= bgomp --disable-werror --disable-multilib --enable-languages=3Dc,c++ ... ranlib libgcc.a # @multilib_flags@ is still needed because this may use # /home/trippels/gcc_build_dir/./gcc/xgcc -B/home/trippels/gcc_build_dir/./= gcc/ -B/usr/local/powerpc64le-unknown-linux-gnu/bin/ -B/usr/local/powerpc64= le-unknown-linux-gnu/lib/ -isystem /usr/local/powerpc64le-unknown-linux-gnu= /include -isystem /usr/local/powerpc64le-unknown-linux-gnu/sys-include a= nd -O2 -g -O2 -DIN_GCC -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-q= ual -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -isyst= em ./include -fPIC -mlong-double-128 -mno-minimal-toc -g -DIN_LIBGCC2 -fb= uilding-libgcc -fno-stack-protector directly. # @multilib_dir@ is not really necessary, but sometimes it has # more uses than just a directory name. /bin/sh ../../../gcc/libgcc/../mkinstalldirs . /home/trippels/gcc_build_dir/./gcc/xgcc -B/home/trippels/gcc_build_dir/./gc= c/ -B/usr/local/powerpc64le-unknown-linux-gnu/bin/ -B/usr/local/powerpc64le= -unknown-linux-gnu/lib/ -isystem /usr/local/powerpc64le-unknown-linux-gnu/i= nclude -isystem /usr/local/powerpc64le-unknown-linux-gnu/sys-include -O2= -g -O2 -DIN_GCC -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -W= strict-prototypes -Wmissing-prototypes -Wold-style-definition -isystem ./i= nclude -fPIC -mlong-double-128 -mno-minimal-toc -g -DIN_LIBGCC2 -fbuildin= g-libgcc -fno-stack-protector -shared -nodefaultlibs -Wl,--soname=3Dlibgcc= _s.so.1 -Wl,--version-script=3Dlibgcc.map -o ./libgcc_s.so.1.tmp -g -O2 -B.= / _muldi3_s.o _negdi2_s.o _lshrdi3_s.o _ashldi3_s.o _ashrdi3_s.o _cmpdi2_s.= o _ucmpdi2_s.o _clear_cache_s.o _trampoline_s.o __main_s.o _absvsi2_s.o _ab= svdi2_s.o _addvsi3_s.o _addvdi3_s.o _subvsi3_s.o _subvdi3_s.o _mulvsi3_s.o = _mulvdi3_s.o _negvsi2_s.o _negvdi2_s.o _ctors_s.o _ffssi2_s.o _ffsdi2_s.o _= clz_s.o _clzsi2_s.o _clzdi2_s.o _ctzsi2_s.o _ctzdi2_s.o _popcount_tab_s.o _= popcountsi2_s.o _popcountdi2_s.o _paritysi2_s.o _paritydi2_s.o _powisf2_s.o= _powidf2_s.o _powixf2_s.o _powitf2_s.o _mulsc3_s.o _muldc3_s.o _mulxc3_s.o= _multc3_s.o _divsc3_s.o _divdc3_s.o _divxc3_s.o _divtc3_s.o _bswapsi2_s.o = _bswapdi2_s.o _clrsbsi2_s.o _clrsbdi2_s.o _fixunssfsi_s.o _fixunsdfsi_s.o _= fixunsxfsi_s.o _fixsfdi_s.o _fixdfdi_s.o _fixxfdi_s.o _fixtfdi_s.o _fixunss= fdi_s.o _fixunsdfdi_s.o _fixunsxfdi_s.o _fixunstfdi_s.o _floatdisf_s.o _flo= atdidf_s.o _floatdixf_s.o _floatditf_s.o _floatundisf_s.o _floatundidf_s.o = _floatundixf_s.o _floatunditf_s.o _divdi3_s.o _moddi3_s.o _udivdi3_s.o _umo= ddi3_s.o _udiv_w_sdiv_s.o _udivmoddi4_s.o ibm-ldouble_s.o tramp_s.o ppc64-f= p_s.o enable-execute-stack_s.o unwind-dw2_s.o unwind-dw2-fde-dip_s.o unwind= -sjlj_s.o unwind-c_s.o emutls_s.o libgcc.a -lc && rm -f ./libgcc_s.so && if= [ -f ./libgcc_s.so.1 ]; then mv -f ./libgcc_s.so.1 ./libgcc_s.so.1.backup;= else true; fi && mv ./libgcc_s.so.1.tmp ./libgcc_s.so.1 && (echo "/* GNU l= d script"; echo " Use the shared library, but some functions are only in"= ; echo " the static library. */"; echo "GROUP ( libgcc_s.so.1 -lgcc )" )= > ./libgcc_s.so /home/trippels/bin/ld: error: cannot open crti.o: No such file or directory /home/trippels/bin/ld: error: cannot open crtn.o: No such file or directory /home/trippels/bin/ld: error: cannot find -lc collect2: error: ld returned 1 exit status Makefile:947: recipe for target 'libgcc_s.so' failed make[2]: *** [libgcc_s.so] Error 1 There is a ppc64le compile farm machine available @gcc2-2-power8.osuosl.org. =20 --=20 Markus