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