[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 3/3][DejaGNU] target: Wrap linker flags into `-largs'/`-margs
From: |
Maciej Rozycki |
Subject: |
Re: [PATCH 3/3][DejaGNU] target: Wrap linker flags into `-largs'/`-margs' for Ada |
Date: |
Tue, 21 May 2019 21:36:55 +0000 |
On Thu, 16 May 2019, Jacob Bachmeyer wrote:
> > I suspect the origins may be different, however as valuable as your
> > observation is functional problems have precedence over issues with code
> > structuring, so we need to fix the problem at hand first. I'm sure
> > DejaGNU maintainers will be happy to review your implementation of code
> > restructuring afterwards.
>
> My concern is that your patch may only solve a small part of the problem
> -- enough to make your specific case work, yes, but then someone else
> will hit other parts of the problem later and we spiral towards "tissue
> of hacks" unmaintainability.
I think however that fixing problems in small steps as they are
discovered is also a reasonable approach and a way to move forward:
perfect is the enemy of good.
So I don't think the prospect of making a comprehensive solution should
prevent a simple fix for the problem at hand that has been already
developed from being applied.
IOW I don't discourage you from developing a comprehensive solution,
however applying my proposal right away will help at least some people and
will not block you in any way.
> The biggest hint to me that your patch is incomplete is that it only
> adds -largs/-margs to wrap LDFLAGS. I suspect that there are other
> -?args options that should be used also with other flag sets, but those
> do not appear in this patch. Do we know what the GNU Ada frontend
> actually expects?
At first glance it looks to me we should be safe overall as compiler
flags are supposed to be passed through by `gnatmake' (barring switch
processing bugs, as observed with 1/3), and IIUC assembler flags are
considered compiler flags for the purpose of this consideration as
`gnatmake' does not make assembly a separate build stage. So while we
could wrap compiler flags into `-cargs'/`-margs', it would only serve to
avoid possible `gnatmake' switch processing bugs.
There's also `-bargs' for binder switches, but I can't see any use for it
here.
Finally boards are offered the choice of `adaflags', `cflags',
`cxxflags', etc. for the individual languages, where the correct syntax
can be used if anything unusual is needed beyond what I have noted above.
I'll defer any further consideration to the Ada maintainers cc-ed; I do
hope I haven't missed anything here, but then Ada is far from being my
primary area of experience.
> > The ordering rules are system-specific I'm afraid and we have to be
> > careful not to break working systems out there. People may be forced to a
> > DejaGNU upgrate, due to a newer version of a program being tested having
> > such a requirement, and can legitimately expect their system to continue
> > working.
>
> We can start by simply preserving the existing ordering until we know
> something should change, but the main goal of my previous message was to
> collect the requirements for a specification for default_target_compile
> so I can write regression tests (some of which will fail due to known
> bugs like broken Ada support in our current implementation) before
> embarking on extensive changes to that procedure. Improving
> "target.test" was already on my local TODO list.
You are welcome to go ahead with your effort as far as I am concerned.
> Unfortunately, people with that particular attitude seem to have
> acquired outsize influence over the last few years. I would suspect an
> organized attack if I were more conspiracy-oriented, but Hanlon's razor
> strongly suggests that this is simply a consequence of lowering barriers
> to entry.
Nod.
Maciej
[PATCH 1/3][GCC] gnatmake: Accept the `--sysroot=' GCC driver option, Maciej W. Rozycki, 2019/05/14
[PATCH 2/3][GCC] GNAT/testsuite: Pass the `ada' option to target compilation, Maciej W. Rozycki, 2019/05/14