public inbox for binutils@sourceware.org
 help / color / mirror / Atom feed
From: Ulf Samuelsson <binutils@emagii.com>
To: Michael Matz <matz@suse.de>
Cc: binutils@sourceware.org, nickc@redhat.com
Subject: Re: [PATCH v1 0/3 CHIP: Support vendor script libraries
Date: Wed, 15 Mar 2023 21:03:18 +0100	[thread overview]
Message-ID: <c0d1bb49-3d79-f503-605a-ff144686480f@emagii.com> (raw)
In-Reply-To: <alpine.LSU.2.20.2303151609220.16810@wotan.suse.de>


On 2023-03-15 17:27, Michael Matz wrote:
> Hello,
>
> On Tue, 14 Mar 2023, Ulf Samuelsson via Binutils wrote:
>
>> Introduce the CHIP command for non-MRI script files.
>>
>> The motivation is that you want to simplify supporting microcontrollers.
>> You want include files that define the addresses for all peripherals
>> and the memory/bank organisation.
> Makes sense, but why is it not enough to use "INCLUDE(<chip>.inc)" in the
> linker script and passing -L$LD_VENDOR_DIR/<chip> on the linker command
> line?

Because it is a poor user interface.

You have to pass

-L$PROJ_DIR/<chip>

-L$LD_USER_DIR/<chip>

-L$LD_VENDOR_DIR/<chip>

to the linker every  time you link, and since most user would link with GCC
you would have to make it more complex since you
have to pass these things the linker through gcc.

so your suggestion is a lot more verbose.

I want to do

arm-none-gcc  myapp.c

and be done with it (assuming gcc will find the right linker script).

Why program in C, when you can program in assembler?

> The hardcoding of environment variables seems very specific, especially
> for the unsuffixed PROJ_DIR (which definitely looks more like something
> for the build system to add).  So, if you really want to avoid cmdline
> additions, maybe introducing a way to specify envvar names for the
> SEARCH_DIR directive would be better?

Right now, the LD_USER_DIR and LD_VENDOR_DIR are the important ones

I think in the end, it might be better to specify the PROJ_DIR during 
./configure
but that can come later.

The other two should be fixed *as is* to avoid a mess.
People that want to use the feature should adopt their build. It is not 
difficult.

You do not want TI to have LD_TI_DIR and NXP using LD_NXP_DIR for the 
same thing.

>
> Like
>
>    SEARCH_DIR($LD_VENDOR_DIR/at91sam7s64)
>    INCLUDE(at91sam7s64.inc)

It is:

   SEARCH_DIR($PROJ_DIR/at91sam7s64)
   SEARCH_DIR($LD_USER_DIR/at91sam7s64)
   SEARCH_DIR($LD_VENDOR_DIR/at91sam7s64)
   INCLUDE(at91sam7s64.inc)

    CHIP "at91sam7s64" is much better.

    I plan to change it to add the vendor

    CHIP atmel, at91sam7s64

    This means that different companies can settle on LD_VENDOR_DIR
    and install in LD_VENDOR_DIR/<vendor>/<chip>/<chip>.<ext>

    Plan to change <ext> from ".inc" to ".chp"

    The CHIP command also allow things to change, if needed.

>
> Support for envvars in SEARCH_DIR (and possibly INCLUDE as well) would
> seem somewhat useful in its own right I think.  (Yes, it would conflict
> with potential current use of '$' as a starter for a filename
> component, in which case quoting can be used to disambiguate).
>
>
> Ciao,
> Michael.

Best Regards
Ulf Samuelsson



  reply	other threads:[~2023-03-15 20:03 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-03-14 22:01 binutils
2023-03-14 22:01 ` [PATCH v1 1/3] CHIP: ldlex.l binutils
2023-03-14 22:01 ` [PATCH v1 2/3] CHIP: ldgram.y binutils
2023-03-14 22:01 ` [PATCH v1 3/3] CHIP: language additions binutils
2023-03-14 22:06 ` [PATCH v1 0/3 CHIP: Support vendor script libraries Ulf Samuelsson
2023-03-15 16:27 ` Michael Matz
2023-03-15 20:03   ` Ulf Samuelsson [this message]
2023-03-16  8:23     ` Jan Beulich
2023-03-16 10:25       ` Ulf Samuelsson
2023-03-16 15:05     ` Michael Matz
2023-03-16 15:57       ` Ulf Samuelsson

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=c0d1bb49-3d79-f503-605a-ff144686480f@emagii.com \
    --to=binutils@emagii.com \
    --cc=binutils@sourceware.org \
    --cc=matz@suse.de \
    --cc=nickc@redhat.com \
    /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).