benshi001 added a comment.

In D142595#4091176 <https://reviews.llvm.org/D142595#4091176>, @MaskRay wrote:

> In D142595#4089391 <https://reviews.llvm.org/D142595#4089391>, @benshi001 
> wrote:
>
>> In D142595#4089124 <https://reviews.llvm.org/D142595#4089124>, @MaskRay 
>> wrote:
>>
>>> OK. If this doesn't add `-Tdata=` driver options, I'm fine with it.
>>> But why is default `-Tdata` added in the first place?
>>>
>>> Most linker scripts are added as `-Wl,-T,a.lds` (`-Wl,` values are opaque 
>>> to the driver), so the driver cannot really know whether a linker script is 
>>> used.
>>
>> So how about change to
>>
>> 1. move the default `-Tdata` to a later position.
>> 2. clang driver just checks `-T` but omits `-Wl`, this can not 100% fix the 
>> issue, but at least improve it. Current most users are from avr-gcc, who 
>> have get used to `-T`.
>>
>> A good solution is using default linker script provided by the avr-libc, 
>> which will be overwritten by user's explicit specification.
>>
>> I will do that solution in a different patch, it needs more extra work. 
>> Currently we just guarantee avr-gcc users's `-T` option will not be broken.
>
> I think checking whether there is a linker script in any way is not a right 
> solution.
> GNU ld supports `-dT` which lld doesn't support. A linker script can be used 
> without a -T/-dT option as well (it gets appended).
> Any chance to remove `-Tdata=` and require the user to specify a `-Tdata=`?

@MaskRay

Newer avr-gcc's solution is adding a default linker script (provided by 
binutils, locates at $binutils-gdb/ld/scripttempl/avr.sc). And user can 
specifies his own one, which will win against the default one.

How do you think about this solution ?


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D142595/new/

https://reviews.llvm.org/D142595

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to