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. > > While this isn't a problem right now, it hits me when experimenting with > shared library versioning support for AIX.
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? > --- a/libltdl/config/ltmain.m4sh > +++ b/libltdl/config/ltmain.m4sh > @@ -7636,7 +7636,7 @@ EOF > libobjs=$output > # Append the command to create the export file. > test -z "$concat_cmds" || concat_cmds=$concat_cmds~ > - eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\" > + eval concat_cmds=\"\${concat_cmds}$export_symbols_cmds\" > if test -n "$last_robj"; then > eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" > fi Thanks, Ralf