From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp.CeBiTec.Uni-Bielefeld.DE (smtp.CeBiTec.Uni-Bielefeld.DE [129.70.160.84]) by sourceware.org (Postfix) with ESMTPS id ECC2F384B826 for ; Wed, 6 Jan 2021 13:57:45 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org ECC2F384B826 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=CeBiTec.Uni-Bielefeld.DE Authentication-Results: sourceware.org; spf=none smtp.mailfrom=ro@cebitec.uni-bielefeld.de Received: from localhost (localhost [127.0.0.1]) by smtp.CeBiTec.Uni-Bielefeld.DE (Postfix) with ESMTP id 96218C8ED; Wed, 6 Jan 2021 14:57:44 +0100 (CET) X-Virus-Scanned: amavisd-new at CeBiTec.Uni-Bielefeld.DE Received: from smtp.CeBiTec.Uni-Bielefeld.DE ([127.0.0.1]) by localhost (smtp.cebitec.uni-bielefeld.de [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id OIUGi8NkJXoF; Wed, 6 Jan 2021 14:57:44 +0100 (CET) Received: from manam.CeBiTec.Uni-Bielefeld.DE (p5085535c.dip0.t-ipconnect.de [80.133.83.92]) by smtp.CeBiTec.Uni-Bielefeld.DE (Postfix) with ESMTPSA id E3CE4CBEB; Wed, 6 Jan 2021 14:57:43 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=CeBiTec.Uni-Bielefeld.DE; s=20200306; t=1609941464; bh=iUX3AozajGnukbYoR1TjeZmrFrdPPMH+ThhLKEg1RZ0=; h=From:To:Cc:Subject:References:Date:In-Reply-To:From; b=dHg5Q0waIqP0e+qRRck8RBdjkBIwdjK3kzhm9mdoaPePPit6R53QQkGBZEjBIvKKe jlr1poXSL9+cJsf1gNxHLgd0Js4/qeI3jkbhWQAFCe/rdw7BtGOPILLuZhsBhuc65+ vdL+mt2nlgSPWf8MHhglcpTdF4faGP8MHLCClUJXZ53KOJ/ww+ZO1qb64xGZj7eLMb NZNvWrjG3mMoqkfwddPFmXCLZEIr1N1vpuMWG3PWUvdnrG0+o/qdQTRHgcEs4Q3vGM zaMg/Zk0HHtiVmxIGdp8yDPspmVNJKeLrGbLh1QaG+9FXLQjkiOYqkUwdedmOs2vam i3QvZgY7frpKQ== From: Rainer Orth To: Iain Buclaw Cc: gcc-patches@gcc.gnu.org Subject: Re: [PATCH] libphobos: Allow building libphobos using Solaris/x86 assembler References: <20210105214349.3401864-1-ibuclaw@gdcproject.org> Date: Wed, 06 Jan 2021 14:57:42 +0100 In-Reply-To: (Rainer Orth's message of "Tue, 05 Jan 2021 22:57:12 +0100") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1.90 (usg-unix-v) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-3788.0 required=5.0 tests=BAYES_00, BODY_8BITS, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, RCVD_IN_DNSWL_LOW, SPF_HELO_NONE, SPF_NONE, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 06 Jan 2021 13:57:47 -0000 Hi Iain, >> This patch removes the disabling of libphobos when the Solaris/x86 >> assembler is being used. >> >> Since r11-6373, D symbols are now compressed using back references, this >> helped reduce the average symbol length by a factor of about 3, while >> the longest symbol shrank from 416133 to 1142 characters. So the issues >> that were seen on Solaris/x86 should no longer be a problem. >> >> However, I have only used x86_64-apple-darwin10 for testing, as >> libphobos couldn't be built on that target for the same reason, except >> it was the system linker segfaulting due to long symbol names. >> >> It would be good to know if Solaris has also benefitted from the change. > > great, thanks. I'll give this a whirl once today's regular bootstraps > have finished. here's what I found: the build itself worked just fine and the libphobos test results are identical to those with gas. However, a few gdc tests fail when Solaris/x86 as is used, for two reasons: +UNRESOLVED: gdc.test/runnable/mangle.d compilation failed to produce exe= cutable +UNRESOLVED: gdc.test/runnable/mangle.d -shared-libphobos compilation fai= led to produce executable Assembler: mangle.d "/var/tmp//ccG72ALc.s", line 200 : Syntax error Near line: " movzbl test_=D1=8D=D0=BB=D1=8C=D1=84=D0=B8=D0=B9= =D1=81=D0=BA=D0=B8=D0=B5_=D0=BF=D0=B8=D1=81=D1=8C=D0=BC=D0=B5=D0=BD=D0=B0_9= , %eax" [...] +UNRESOLVED: gdc.test/runnable/testmodule.d compilation failed to produce= executable +UNRESOLVED: gdc.test/runnable/testmodule.d -shared-libphobos compilation= failed to produce executable Assembler: testmodule.d "/var/tmp//ccw9j5oa.s", line 20 : Syntax error Near line: " call _D7dstress3run17unicode_06_=E5=93=AA=E9=87= =8C6=E5=93=AA=E9=87=8CFiZi" [...] +UNRESOLVED: gdc.test/runnable/ufcs.d compilation failed to produce execu= table +UNRESOLVED: gdc.test/runnable/ufcs.d -shared-libphobos compilation faile= d to produce executable Assembler: ufcs.d "/var/tmp//ccWd6kud.s", line 7774 : Syntax error Near line: " .globl _D4ufcs6=CE=B18503FiZv" [...] The Solaris assemblers don't support UTF-8 identifiers. Unless gdc can encode them in some way for toolchains like this (no idea if this is worth the effort), it may be possible to guard the tests with the ucn effective-target keyword. Apart from that, it seems strange that the failing tests should only show up as UNSUPPORTED. I'd have expected the compilation to FAIL, but IIRC the gdc testsuite has to ignore all output, so the test for excess errors which would usually catch this is disabled effectively. The last failure is different and due to how COMDAT group handling is done with Solaris as: +UNRESOLVED: gdc.test/runnable/test42.d compilation failed to produce exe= cutable +UNRESOLVED: gdc.test/runnable/test42.d -shared-libphobos compilation fai= led to produce executable which yields Input string too long, limit 10240 The offending input lines are (stripped for brevity) .section .tdata._D6test42__T5Foo71VAyaa2623[...] .group _D6test42__T5Foo71VAyaa2623_68656c6c6f616[...] The first line is 10597 chars, the second even 15869. Rainer --=20 ---------------------------------------------------------------------------= -- Rainer Orth, Center for Biotechnology, Bielefeld University