* r150960 changed ltmain.sh and broke the build
@ 2009-08-26 10:27 NightStrike
2009-08-26 10:34 ` Dave Korn
0 siblings, 1 reply; 16+ messages in thread
From: NightStrike @ 2009-08-26 10:27 UTC (permalink / raw)
To: gcc, davek; +Cc: Ralf Wildenhues, Mook -, Kai Tietz
Dave,
You checked in r150960 here:
http://gcc.gnu.org/ml/gcc-cvs/2009-08/msg00642.html
This change affected ltmain.sh:
http://gcc.gnu.org/viewcvs/trunk/ltmain.sh?r1=150960&r2=150959&pathrev=150960
All of those changes to sed now make sed fail miserably on any mingw
host during the build:
libtool: link: /c/buildbot/vista64-mingw32/mingw-x86-x86/build/build/root/i686-w64-mingw32/bin/ar
rc .libs/libssp.a ssp.o gets-chk.o memcpy-chk.o memmove-chk.o
mempcpy-chk.o memset-chk.o snprintf-chk.o sprintf-chk.o stpcpy-chk.o
strcat-chk.o strcpy-chk.o strncat-chk.o strncpy-chk.o vsnprintf-chk.o
vsprintf-chk.o
libtool: link: /c/buildbot/vista64-mingw32/mingw-x86-x86/build/build/root/i686-w64-mingw32/bin/ranlib
.libs/libssp.a
/bin/sed: -e expression #2, char 22: Invalid content of \{\}
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: r150960 changed ltmain.sh and broke the build
2009-08-26 10:27 r150960 changed ltmain.sh and broke the build NightStrike
@ 2009-08-26 10:34 ` Dave Korn
2009-08-26 10:47 ` Paolo Bonzini
0 siblings, 1 reply; 16+ messages in thread
From: Dave Korn @ 2009-08-26 10:34 UTC (permalink / raw)
To: NightStrike; +Cc: gcc, davek, Ralf Wildenhues, Mook -, Kai Tietz
NightStrike wrote:
> Dave,
>
> You checked in r150960 here:
> http://gcc.gnu.org/ml/gcc-cvs/2009-08/msg00642.html
>
> This change affected ltmain.sh:
> http://gcc.gnu.org/viewcvs/trunk/ltmain.sh?r1=150960&r2=150959&pathrev=150960
>
> All of those changes to sed now make sed fail miserably on any mingw
> host during the build:
>
> libtool: link: /c/buildbot/vista64-mingw32/mingw-x86-x86/build/build/root/i686-w64-mingw32/bin/ar
> rc .libs/libssp.a ssp.o gets-chk.o memcpy-chk.o memmove-chk.o
> mempcpy-chk.o memset-chk.o snprintf-chk.o sprintf-chk.o stpcpy-chk.o
> strcat-chk.o strcpy-chk.o strncat-chk.o strncpy-chk.o vsnprintf-chk.o
> vsprintf-chk.o
> libtool: link: /c/buildbot/vista64-mingw32/mingw-x86-x86/build/build/root/i686-w64-mingw32/bin/ranlib
> .libs/libssp.a
> /bin/sed: -e expression #2, char 22: Invalid content of \{\}
Argh. Very sorry for the breakage, I'll get straight onto it. What
versions of the mingw+msys tools are you using? Can you please send me a copy
of the generated libtool script, and the output you get when re-running the
failing libtool command manually after adding the "--debug" (non-modal) option?
cheers,
DaveK
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: r150960 changed ltmain.sh and broke the build
2009-08-26 10:34 ` Dave Korn
@ 2009-08-26 10:47 ` Paolo Bonzini
2009-08-26 10:50 ` Paolo Bonzini
2009-08-26 10:51 ` Dave Korn
0 siblings, 2 replies; 16+ messages in thread
From: Paolo Bonzini @ 2009-08-26 10:47 UTC (permalink / raw)
To: Dave Korn; +Cc: NightStrike, gcc, davek, Ralf Wildenhues, Mook -, Kai Tietz
> Argh. Very sorry for the breakage, I'll get straight onto it. What
> versions of the mingw+msys tools are you using? Can you please send me a copy
> of the generated libtool script, and the output you get when re-running the
> failing libtool command manually after adding the "--debug" (non-modal) option?
This is the problem:
removedotparts="s,/\(\./\)\{1\,\},/,g;s,/\.$,/,"
\, should be , (there is another occurrence).
Also please single-quote the commands.
Paolo
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: r150960 changed ltmain.sh and broke the build
2009-08-26 10:47 ` Paolo Bonzini
@ 2009-08-26 10:50 ` Paolo Bonzini
2009-08-26 10:51 ` Dave Korn
1 sibling, 0 replies; 16+ messages in thread
From: Paolo Bonzini @ 2009-08-26 10:50 UTC (permalink / raw)
To: gcc; +Cc: NightStrike, gcc, davek, Ralf Wildenhues, Mook -, Kai Tietz
> Argh. Very sorry for the breakage, I'll get straight onto it. What
> versions of the mingw+msys tools are you using? Can you please send me a copy
> of the generated libtool script, and the output you get when re-running the
> failing libtool command manually after adding the "--debug" (non-modal) option?
This is the problem:
removedotparts="s,/\(\./\)\{1\,\},/,g;s,/\.$,/,"
\, should be , (there is another occurrence).
Also please single-quote the commands.
Paolo
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: r150960 changed ltmain.sh and broke the build
2009-08-26 10:47 ` Paolo Bonzini
2009-08-26 10:50 ` Paolo Bonzini
@ 2009-08-26 10:51 ` Dave Korn
2009-08-26 11:04 ` Paolo Bonzini
` (2 more replies)
1 sibling, 3 replies; 16+ messages in thread
From: Dave Korn @ 2009-08-26 10:51 UTC (permalink / raw)
To: Paolo Bonzini
Cc: Dave Korn, NightStrike, gcc, davek, Ralf Wildenhues, Mook -, Kai Tietz
Paolo Bonzini wrote:
>> Argh. Very sorry for the breakage, I'll get straight onto it. What
>> versions of the mingw+msys tools are you using? Can you please send
>> me a copy
>> of the generated libtool script, and the output you get when
>> re-running the
>> failing libtool command manually after adding the "--debug"
>> (non-modal) option?
>
> This is the problem:
>
> removedotparts="s,/\(\./\)\{1\,\},/,g;s,/\.$,/,"
>
> \, should be , (there is another occurrence).
Oops. Looks like there are different versions of SED that have different
requirements, because on cygwin SED 4.1.5, you *have* to quote the comma in
the curly-braces {min,max} repetitions specifier or it is interpreted as a
separator.
> $ sed -e 's,/\(\./\)\{1\,\},/,g;s,/\.$,/,'
> ./foo/bar/./baz
> ./foo/bar/baz
>
> $ sed -e 's,/\(\./\)\{1,\},/,g;s,/\.$,/,'
> sed: -e expression #1, char 18: unknown option to `s'
>
> $
Maybe the best thing would be to change it to use a different separator?
Ralf, have we discovered a new item for the autoconf man page "portable shell"
chapter?
> Also please single-quote the commands.
Ok, why?
cheers,
DaveK
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: r150960 changed ltmain.sh and broke the build
2009-08-26 10:51 ` Dave Korn
@ 2009-08-26 11:04 ` Paolo Bonzini
2009-08-26 13:00 ` Dave Korn
2009-08-26 18:51 ` Ralf Wildenhues
2 siblings, 0 replies; 16+ messages in thread
From: Paolo Bonzini @ 2009-08-26 11:04 UTC (permalink / raw)
To: Dave Korn; +Cc: NightStrike, gcc, davek, Ralf Wildenhues, Mook -, Kai Tietz
On 08/26/2009 12:38 PM, Dave Korn wrote:
> Oops. Looks like there are different versions of SED that have different
> requirements, because on cygwin SED 4.1.5, you*have* to quote the comma in
> the curly-braces {min,max} repetitions specifier or it is interpreted as a
> separator.
Right. I also got bitten by this recently (and I should have known
better, given my sed maintainer hat). You should use another separator
to be portable.
Paolo
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: r150960 changed ltmain.sh and broke the build
2009-08-26 10:51 ` Dave Korn
2009-08-26 11:04 ` Paolo Bonzini
@ 2009-08-26 13:00 ` Dave Korn
2009-08-26 13:31 ` Paolo Bonzini
2009-08-26 18:51 ` Ralf Wildenhues
2 siblings, 1 reply; 16+ messages in thread
From: Dave Korn @ 2009-08-26 13:00 UTC (permalink / raw)
To: Dave Korn
Cc: Paolo Bonzini, NightStrike, gcc, davek, Ralf Wildenhues, Mook -,
Kai Tietz
Dave Korn wrote:
>> Also please single-quote the commands.
>
> Ok, why?
BTW should I do that for all four of the patterns? And what about $dirname
and $basename, and the couple of dozen other locations in ltmain.sh that use
quoted sed scripts? (You didn't answer my question about "why" yet so I can't
infer anything.)
cheers,
DaveK
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: r150960 changed ltmain.sh and broke the build
2009-08-26 13:00 ` Dave Korn
@ 2009-08-26 13:31 ` Paolo Bonzini
2009-08-26 13:32 ` Dave Korn
0 siblings, 1 reply; 16+ messages in thread
From: Paolo Bonzini @ 2009-08-26 13:31 UTC (permalink / raw)
To: Dave Korn; +Cc: NightStrike, gcc, davek, Ralf Wildenhues, Mook -, Kai Tietz
On 08/26/2009 12:48 PM, Dave Korn wrote:
> Dave Korn wrote:
>
>>> Also please single-quote the commands.
>>
>> Ok, why?
>
> BTW should I do that for all four of the patterns? And what about $dirname
> and $basename, and the couple of dozen other locations in ltmain.sh that use
> quoted sed scripts? (You didn't answer my question about "why" yet so I can't
> infer anything.)
I don't like very much backslash sequences in double-quoted variables.
It's portable, but somewhat unintuitive. But this is upstream code
after all, so it's better to leave it alone. Sorry for the false alarm.
Paolo
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: r150960 changed ltmain.sh and broke the build
2009-08-26 13:31 ` Paolo Bonzini
@ 2009-08-26 13:32 ` Dave Korn
2009-08-27 16:51 ` Eric Blake
0 siblings, 1 reply; 16+ messages in thread
From: Dave Korn @ 2009-08-26 13:32 UTC (permalink / raw)
To: Paolo Bonzini
Cc: Dave Korn, NightStrike, gcc, davek, Ralf Wildenhues, Mook -, Kai Tietz
Paolo Bonzini wrote:
> On 08/26/2009 12:48 PM, Dave Korn wrote:
>> Dave Korn wrote:
>>
>>>> Also please single-quote the commands.
>>>
>>> Ok, why?
>>
>> BTW should I do that for all four of the patterns? And what about
>> $dirname
>> and $basename, and the couple of dozen other locations in ltmain.sh
>> that use
>> quoted sed scripts? (You didn't answer my question about "why" yet so
>> I can't
>> infer anything.)
>
> I don't like very much backslash sequences in double-quoted variables.
> It's portable, but somewhat unintuitive. But this is upstream code
> after all, so it's better to leave it alone. Sorry for the false alarm.
No problem, thanks for worrying about it. Are there any particular
recommendations about/against problematic separator characters in the 's'
command? I was going to use an '@'.
cheers,
DaveK
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: r150960 changed ltmain.sh and broke the build
2009-08-26 10:51 ` Dave Korn
2009-08-26 11:04 ` Paolo Bonzini
2009-08-26 13:00 ` Dave Korn
@ 2009-08-26 18:51 ` Ralf Wildenhues
2009-08-26 19:03 ` Dave Korn
2 siblings, 1 reply; 16+ messages in thread
From: Ralf Wildenhues @ 2009-08-26 18:51 UTC (permalink / raw)
To: Dave Korn; +Cc: Paolo Bonzini, NightStrike, gcc, davek, Mook -, Kai Tietz
* Dave Korn wrote on Wed, Aug 26, 2009 at 12:38:50PM CEST:
> Paolo Bonzini wrote:
> > $ sed -e 's,/\(\./\)\{1\,\},/,g;s,/\.$,/,'
> > ./foo/bar/./baz
> > ./foo/bar/baz
> >
> > $ sed -e 's,/\(\./\)\{1,\},/,g;s,/\.$,/,'
> > sed: -e expression #1, char 18: unknown option to `s'
> >
> > $
>
> Maybe the best thing would be to change it to use a different separator?
> Ralf, have we discovered a new item for the autoconf man page "portable shell"
> chapter?
Not really:
Patterns should not include the separator (unless escaped), even
as part of a character class. In conformance with Posix, the Cray
`sed' rejects `s/[^/]*$//': use `s,[^/]*$,,'.
[...]
Portable `sed' regular expressions should use `\' only to escape
characters in the string `$()*.0123456789[\^n{}'.
Sorry for not catching this.
Cheers,
Ralf
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: r150960 changed ltmain.sh and broke the build
2009-08-26 18:51 ` Ralf Wildenhues
@ 2009-08-26 19:03 ` Dave Korn
2009-08-26 19:23 ` Ralf Wildenhues
2009-08-26 20:32 ` Paolo Bonzini
0 siblings, 2 replies; 16+ messages in thread
From: Dave Korn @ 2009-08-26 19:03 UTC (permalink / raw)
To: Ralf Wildenhues, Dave Korn, Paolo Bonzini, NightStrike, gcc,
davek, Mook -,
Kai Tietz
Ralf Wildenhues wrote:
> * Dave Korn wrote on Wed, Aug 26, 2009 at 12:38:50PM CEST:
>> Ralf, have we discovered a new item for the autoconf man page "portable shell"
>> chapter?
>
> Not really:
>
> Patterns should not include the separator (unless escaped), even
> as part of a character class. In conformance with Posix, the Cray
> `sed' rejects `s/[^/]*$//': use `s,[^/]*$,,'.
> [...]
> Portable `sed' regular expressions should use `\' only to escape
> characters in the string `$()*.0123456789[\^n{}'.
Ah, I didn't read those two conditions as applying simultaneously. Since
the second condition essentially says that you must only ever escape a special
character to make it non-meaningful or a normal character to make it special,
maybe the first condition say something a bit more like ...
> Patterns should not include the separator (not even escaped, unless
> you fancy having to use a semantically significant metacharacter for
> your separator), even as part of a ...
... shouldn't it?
> Sorry for not catching this.
NP, all fixed now :)
cheers,
DaveK
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: r150960 changed ltmain.sh and broke the build
2009-08-26 19:03 ` Dave Korn
@ 2009-08-26 19:23 ` Ralf Wildenhues
2009-08-26 20:32 ` Paolo Bonzini
1 sibling, 0 replies; 16+ messages in thread
From: Ralf Wildenhues @ 2009-08-26 19:23 UTC (permalink / raw)
To: Dave Korn, autoconf-patches; +Cc: NightStrike, gcc
[ trimmed Cc:, added autoconf-patches; followups can remove gcc@ ]
[ http://thread.gmane.org/gmane.comp.gcc.devel/108348 ]
* Dave Korn wrote on Wed, Aug 26, 2009 at 08:16:11PM CEST:
> Ralf Wildenhues wrote:
> > Patterns should not include the separator (unless escaped), even
> > as part of a character class. In conformance with Posix, the Cray
> > `sed' rejects `s/[^/]*$//': use `s,[^/]*$,,'.
> > [...]
> > Portable `sed' regular expressions should use `\' only to escape
> > characters in the string `$()*.0123456789[\^n{}'.
>
> Ah, I didn't read those two conditions as applying simultaneously.
I don't think they apply simultaneously in the way you interpreted that.
However, in the s,x\{1\,\},y, example, the comma is both a separator
and another metacharacter. Hmm, maybe those sentences don't really
cover this case.
How about
Patterns should not include the separator (unless escaped), even
as part of a character class. In conformance with Posix, the Cray
`sed' rejects `s/[^/]*$//': use `s,[^/]*$,,'. Even escaped,
patterns should not include separators that are also used as
metacharacters. For example, GNU sed 3.02 rejects `s,x\{1\,\},,',
and is used on MinGW.
?
Cheers,
Ralf
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: r150960 changed ltmain.sh and broke the build
2009-08-26 19:03 ` Dave Korn
2009-08-26 19:23 ` Ralf Wildenhues
@ 2009-08-26 20:32 ` Paolo Bonzini
2009-08-26 21:30 ` Dave Korn
1 sibling, 1 reply; 16+ messages in thread
From: Paolo Bonzini @ 2009-08-26 20:32 UTC (permalink / raw)
To: Dave Korn; +Cc: Ralf Wildenhues, NightStrike, gcc, davek, Mook -, Kai Tietz
>> Patterns should not include the separator (unless escaped), even
>> as part of a character class. In conformance with Posix, the Cray
>> `sed' rejects `s/[^/]*$//': use `s,[^/]*$,,'.
>> [...]
>> Portable `sed' regular expressions should use `\' only to escape
>> characters in the string `$()*.0123456789[\^n{}'.
>
>
> Ah, I didn't read those two conditions as applying simultaneously. Since
> the second condition essentially says that you must only ever escape a special
> character to make it non-meaningful or a normal character to make it special,
> maybe the first condition say something a bit more like ...
>
>> Patterns should not include the separator (not even escaped, unless
>> you fancy having to use a semantically significant metacharacter for
>> your separator), even as part of a ...
No. The problem is exactly when you use a semantically significant
metacharacter for your separator.
\* => unportable, a\* may become either a* or a\*
\> => unportable, a\> may become either a> or a\>
\$ => unportable, a\$ may become either a$ or a\$
\, => unportable, part of \{a,b\}
\| => unportable, a\|b may become either a|b or a\|b and the latter
may be parsed as alternation
\/ => in theory unportable in practice it would be insane to introduce
a special sequence \/
\@ \: etc. => in theory unportable, in practice they should be fine.
All of these are forbidden by the wording in Autoconf manual.
One could add / to the list in the second paragraph, and saying
something like "only / should be used as a separator if you wish to
escape it, to avoid inadvertent introduction or escaping of regular
expression operators".
Or even better, it should be left as is.
Paolo
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: r150960 changed ltmain.sh and broke the build
2009-08-26 20:32 ` Paolo Bonzini
@ 2009-08-26 21:30 ` Dave Korn
0 siblings, 0 replies; 16+ messages in thread
From: Dave Korn @ 2009-08-26 21:30 UTC (permalink / raw)
To: Paolo Bonzini
Cc: Dave Korn, Ralf Wildenhues, NightStrike, gcc, davek, Mook -, Kai Tietz
Paolo Bonzini wrote:
>>> Patterns should not include the separator (not even escaped, unless
>>> you fancy having to use a semantically significant metacharacter for
>>> your separator), even as part of a ...
>
> No. The problem is exactly when you use a semantically significant
> metacharacter for your separator.
The wording "not even escaped, unless you fancy having to ..." was
rhetorical understatement; the idea is that "having to use ..." is not
something that anyone would fancy doing. I wasn't suggesting a literal
wording, which is why I wrote "something a bit more like". Sorry for the
confusing linguistics!
cheers,
DaveK
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: r150960 changed ltmain.sh and broke the build
2009-08-26 13:32 ` Dave Korn
@ 2009-08-27 16:51 ` Eric Blake
2009-08-27 22:51 ` Dave Korn
0 siblings, 1 reply; 16+ messages in thread
From: Eric Blake @ 2009-08-27 16:51 UTC (permalink / raw)
To: gcc
Dave Korn <dave.korn.cygwin <at> googlemail.com> writes:
> No problem, thanks for worrying about it. Are there any particular
> recommendations about/against problematic separator characters in the 's'
> command? I was going to use an '@'.
The Autoconf manual suggests using 's|||' rather than 's,,,', since ',' and '@'
can both occur in unquoted filenames, but '|' cannot.
--
Eric Blake
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: r150960 changed ltmain.sh and broke the build
2009-08-27 16:51 ` Eric Blake
@ 2009-08-27 22:51 ` Dave Korn
0 siblings, 0 replies; 16+ messages in thread
From: Dave Korn @ 2009-08-27 22:51 UTC (permalink / raw)
To: Eric Blake; +Cc: gcc
Eric Blake wrote:
> Dave Korn <dave.korn.cygwin <at> googlemail.com> writes:
>
>> No problem, thanks for worrying about it. Are there any particular
>> recommendations about/against problematic separator characters in the 's'
>> command? I was going to use an '@'.
>
> The Autoconf manual suggests using 's|||' rather than 's,,,',
Where? Not in the section about sed under 'Limitations of Usual Tools' in
the 2.64 info page, as far as I can see.
> since ',' and '@'
> can both occur in unquoted filenames, but '|' cannot.
I can't grok that. In what context could there ever be a confusion between
a sed script and a filename? What about having a file with an "@" in the name
in the current directory would cause sed to do anything different with a -e
script containing an 's' expression using "@" as a separator? I must be
feeling a bit slow this afternoon.
cheers,
DaveK
^ permalink raw reply [flat|nested] 16+ messages in thread
end of thread, other threads:[~2009-08-27 13:29 UTC | newest]
Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-08-26 10:27 r150960 changed ltmain.sh and broke the build NightStrike
2009-08-26 10:34 ` Dave Korn
2009-08-26 10:47 ` Paolo Bonzini
2009-08-26 10:50 ` Paolo Bonzini
2009-08-26 10:51 ` Dave Korn
2009-08-26 11:04 ` Paolo Bonzini
2009-08-26 13:00 ` Dave Korn
2009-08-26 13:31 ` Paolo Bonzini
2009-08-26 13:32 ` Dave Korn
2009-08-27 16:51 ` Eric Blake
2009-08-27 22:51 ` Dave Korn
2009-08-26 18:51 ` Ralf Wildenhues
2009-08-26 19:03 ` Dave Korn
2009-08-26 19:23 ` Ralf Wildenhues
2009-08-26 20:32 ` Paolo Bonzini
2009-08-26 21:30 ` Dave Korn
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).