[PATCH] scripts: support an empty vendor string

Bryan Hundven bryanhundven@gmail.com
Tue Jul 29 20:16:00 GMT 2014


Yann, Trevor,

On Mon, Jul 28, 2014 at 12:47 AM, Bryan Hundven <bryanhundven@gmail.com> wrote:
> Yann, Michael, list

Ugh, I sent this to Yann's old email address, and Michael doesn't work
for linaro anymore.
I now have updated Yann's email address, and added Trevor to the email.

> On Thu, Oct 20, 2011 at 3:02 PM, Yann E. MORIN
> <yann.morin.1998@anciens.enib.fr> wrote:
>> Michael, Bryan, All,
>>
>> On Thursday 20 October 2011 03:28:18 Michael Hope wrote:
>>> scripts: support an empty vendor string
>>
>> That will have to wait for after the release.
>>
>>> diff --git a/config/toolchain.in b/config/toolchain.in
>>> index d034315..94755fd 100644
>>> --- a/config/toolchain.in
>>> +++ b/config/toolchain.in
>>> @@ -111,6 +111,18 @@
>>>
>>>         Keep the default (unknown) if you don't know better.
>>>
>>> +config ALLOW_NO_VENDOR
>>> +    bool
>>> +    prompt "Allow tuples with no vendor"
>>> +    default n
>>> +    help
>>> +      Set this and set the vendor string to an empty string to allow
>>> +      tuples with no vendor component such as 'arm-linux-gnueabi'
>>> +      instead of the default 'arm-unknown-linux-gnueabi'.
>>> +
>>> +      This is a backwards compatibility option for earlier
>>> +      configurations that used an empty string to mean 'unknown'.
>>> +
>>
>> I'd rather have the other way around:
>>
>> config PROVIDE_VENDOR_STRING
>>     bool
>>     prompt "set 'vendor' part of the tuple"
>>     default y # Or not, I don't really care
>>     help
>>       The 'vendor' part of the tuple is the second word between dashes
>>       in the tuple. It's mostly informative, except in a very few cases
>>       where it has meaning (eg. MIPS SDE tuple must have the 'vendor'
>>       part set to 'sde').
>>
>>       If you say 'y' here, you'll be able to set the 'vendor' part
>>       of the tuple in the next option, below.
>>       If you say 'n', then the 'vendor' part will be omitted in the
>>       tuple, giving a shortened tuple.
>>
>> config TARGET_VENDOR
>>     depends on PROVIDE_VENDOR_STRING
>>     ...
>>
>>>   config TARGET_ALIAS_SED_EXPR
>>>       string
>>>       prompt "Tuple's sed transform"
>>> diff --git a/scripts/functions b/scripts/functions
>>> index 789b622..2ac4c50 100644
>>> --- a/scripts/functions
>>> +++ b/scripts/functions
>>> @@ -944,6 +944,20 @@
>>>       fi
>>>   }
>>>
>>> +# Computes the target tuple from the configuration and the supplied
>>> +# vendor string
>>> +CT_BuildOneTargetTuple() {
>>> +    local vendor="${1}"
>>> +    local target
>>> +
>>> +    target="${CT_TARGET_ARCH}"
>>> +    target="${target}${vendor:+-${vendor}}"
>>> +    target="${target}${CT_TARGET_KERNEL:+-${CT_TARGET_KERNEL}}"
>>> +    target="${target}${CT_TARGET_SYS:+-${CT_TARGET_SYS}}"
>>> +
>>> +    echo "${target}"
>>> +}
>>> +
>>>   # Compute the target tuple from what is provided by the user
>>>   # Usage: CT_DoBuildTargetTuple
>>>   # In fact this function takes the environment variables to build the
>>> target
>>> @@ -993,10 +1007,7 @@
>>>       CT_DoKernelTupleValues
>>>
>>>       # Finish the target tuple construction
>>> -    CT_TARGET="${CT_TARGET_ARCH}"
>>> -    CT_TARGET="${CT_TARGET}${CT_TARGET_VENDOR:+-${CT_TARGET_VENDOR}}"
>>> -    CT_TARGET="${CT_TARGET}${CT_TARGET_KERNEL:+-${CT_TARGET_KERNEL}}"
>>> -    CT_TARGET="${CT_TARGET}${CT_TARGET_SYS:+-${CT_TARGET_SYS}}"
>>> +    CT_TARGET=$(CT_BuildOneTargetTuple "${CT_TARGET_VENDOR}")
>>>
>>>       # Sanity checks
>>>       __sed_alias=""
>>> @@ -1010,8 +1021,15 @@
>>>         :*:*:*" "*:) CT_Abort "Don't use spaces in the target sed
>>> transform, it breaks things.";;
>>>       esac
>>>
>>> -    # Canonicalise it
>>> -    CT_TARGET=$(CT_DoConfigSub "${CT_TARGET}")
>>> +    if [ "${CT_ALLOW_NO_VENDOR}" = "y" -a -z "${CT_TARGET_VENDOR}" ]; then
>>> +        # Canonicalise with a fake vendor string then strip it out
>>> +        local target=$(CT_BuildOneTargetTuple "CT_INVALID")
>>> +        CT_TARGET=$(CT_DoConfigSub "${target}" |sed -r -s s:CT_INVALID-::)
>>> +    else
>>> +        # Canonicalise it
>>> +        CT_TARGET=$(CT_DoConfigSub "${CT_TARGET}")
>>> +    fi
>>> +
>>
>> Hmmm. The code does not look nice. I can't say why, it just looks ugly to
>> me. I believe there is a better way to do it. At least, the existing code
>> deserves a bit of cleanup first... Let's revisit this after the release.
>>
>> Regards,
>> Yann E. MORIN.
>>
>> --
>> .-----------------.--------------------.------------------.--------------------.
>> |  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
>> | +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
>> | +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
>> | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
>> '------------------------------^-------^------------------^--------------------'
>
> Kicking an old horse...
>
> This one seems to have gotten dropped. Any chance we can revisit this patch?
>
> -Bryan

^^^ my question persists, now it's just being asked on the right email
addresses ;)

-Bryan

--
For unsubscribe information see http://sourceware.org/lists.html#faq



More information about the crossgcc mailing list