libtool-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] Correctly concat commands when export_symbols_cmds starts wi


From: Michael Haubenwallner
Subject: Re: [PATCH] Correctly concat commands when export_symbols_cmds starts with some 'word'.
Date: Tue, 28 Jun 2011 12:33:40 +0200
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.15) Gecko/20110308 Lightning/1.0b3pre Thunderbird/3.1.9


On 06/27/2011 11:12 PM, Ralf Wildenhues wrote:
> Hi Michael,
> 
> * Michael Haubenwallner wrote on Mon, Jun 27, 2011 at 04:28:38PM CEST:
>> Concatening commands breaks when export_symbols_cmds starts with something
>> like "dump", which does not need another shell expansion step. Instead, it
>> is merged with "\$concat_cmds" to "$concat_cmdsdump" for within the eval.

> How can that be?
> 
>> +    Correctly concat commands when export_symbols_cmds starts with 'word'.
>> +    * libltdl/config/ltmain.m4sh: When export_symbols_cmd starts with some
>> +    'word', 'word' is joined with 'concat_cmds' to 'concat_cmdsword' due to
>> +    different expansion time: Need to embrace concat_cmds variable for
>> +    export_symbols_cmds too as for reload_cmds and old_archive_cmds.
> 
> When $concat_cmds is nonempty, it gets a '~' at the end.  That can never
> be part of a shell word, if I see correctly.  Can you give an example?

The content of $concat_cmds is irrelevant due to its later expansion time
compared to $export_symbols_cmds (actually, $concat_cmds is empty):


Sample 1 (with current value): export_symbols_cmds='$NM ...'

Step 0: eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\"  # the original 
line
Step 1: eval 'concat_cmds=$concat_cmds$NM ...'    # concat_cmds not expanded yet
Step 2: concat_cmds="$concat_cmds$NM ..."         # concat_cmds is expanded now
Step 3: concat_cmds="nm ..."


Sample 2 (which breaks): export_symbols_cmds='dump ...'

Step 0: eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\"  # the original 
line
Step 1: eval 'concat_cmds=$concat_cmdsdump ...'   # concat_cmds not expanded yet
Step 2: concat_cmds="$concat_cmdsdump ..."        # there is no $concat_cmdsdump
Step 3: concat_cmds=""


Sample 3 (with patch): export_symbols_cmds='dump ...'

Step 0: eval concat_cmds=\"\${concat_cmds}$export_symbols_cmds\"  # the fixed 
line
Step 1: eval 'concat_cmds=${concat_cmds}dump ...'  # concat_cmds not expanded 
yet
Step 2: concat_cmds="${concat_cmds}dump ..."       # concat_cmds is expanded now
Step 3: concat_cmds="dump ..."

>> @@ -7636,7 +7636,7 @@ EOF
>> -          eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\"
>> +          eval concat_cmds=\"\${concat_cmds}$export_symbols_cmds\"

Thank you!
/haubi/



reply via email to

[Prev in Thread] Current Thread [Next in Thread]