From: Iain Buclaw <ibuclaw@gdcproject.org>
To: Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
Cc: gcc-patches@gcc.gnu.org
Subject: Re: [PATCH] libphobos: Allow building libphobos using Solaris/x86 assembler
Date: Thu, 07 Jan 2021 18:48:47 +0100 [thread overview]
Message-ID: <1610041123.b2i26y1t01.astroid@galago.none> (raw)
In-Reply-To: <yddh7nsen6d.fsf@CeBiTec.Uni-Bielefeld.DE>
Excerpts from Rainer Orth's message of January 7, 2021 5:17 pm:
> Hi Iain,
>
>>> 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.
>>
>> Indeed, the testsuite is far too verbose. Although many tests have a
>> TEST_OUTPUT directive, converting them to a Dejagnu style is probably
>> too much effort for the gain.
>>
>> Those tests can just be explicitly disabled, I'll look into that.
>
> Great, thanks.
>
>>> 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
>>> executable
>>> +UNRESOLVED: gdc.test/runnable/test42.d -shared-libphobos compilation
>>> failed 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.
>>>
>>
>> Is there a max symbol length macro available internally? Maybe could
>
> Not that I'm aware of. I believe D tests are the first time ever that I
> ran into this Solaris/x86 as limit. One might try to iteratively
> determine the value at configure time if this is helpful. No idea if
> other non-gas assemblers are even worse in that apartment. E.g. the
> Solaris/SPARC one has a considerably higher limit...
>
>> just compress symbols using MD5 if they exceed a certain length...
>
> That's certainly an easy option. OTOH if this is unlikely to occur in
> real-life code, once could just xfail the test on Solaris/x86 with as...
>
Looking at the test which generates that symbol, it is very much a
contrived example that deliberately exceeds the limit of another linker.
However given the size and use of meta and templates in some production
codebases out there, I can't say that symbols like it for sure won't
appear in real-life code. Though it's going to be unlikely said code
will be compiled for Solaris anyway.
Iain.
next prev parent reply other threads:[~2021-01-07 17:48 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-01-05 21:43 Iain Buclaw
2021-01-05 21:57 ` Rainer Orth
2021-01-06 13:57 ` Rainer Orth
2021-01-07 16:11 ` Iain Buclaw
2021-01-07 16:17 ` Rainer Orth
2021-01-07 17:48 ` Iain Buclaw [this message]
2021-01-11 16:46 ` Iain Buclaw
2021-01-12 14:54 ` Rainer Orth
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1610041123.b2i26y1t01.astroid@galago.none \
--to=ibuclaw@gdcproject.org \
--cc=gcc-patches@gcc.gnu.org \
--cc=ro@CeBiTec.Uni-Bielefeld.DE \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).