This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: RFC: Use program_transform_name correctly


On Tue, Oct 07, 2003 at 03:10:59PM -0700, Theodore A. Roth wrote:
> 
> 
> On Tue, 7 Oct 2003, Daniel Jacobowitz wrote:
> 
> > On Tue, Oct 07, 2003 at 04:41:35PM -0500, Jim Blandy wrote:
> > >
> > > It seems as if some Makefiles aren't properly using
> > > program_transform_name.
> > >
> > > The same kind of weirdness corrected(?) in the patch below appears in
> > > gdb/Makefile.in, so I'm not at all sure I'm not misunderstanding
> > > what's going on.  If folks agree that the change below would be
> > > correct, then I'll put together a larger patch that fixes the ones I
> > > can find elsewhere, too.
> > >
> > > (Not sure why this hasn't come up before; Daniel J.'s recent posts on
> > > the topic seem to be about setting program_transform_name, not on how
> > > to use it.)
> >
> > That is _bizarre_.  Does it even give you anything but a sed error now?
> >
> > > 2003-10-07  Jim Blandy  <jimb@redhat.com>
> > >
> > > 	* Makefile.in (RUNTEST_FOR_TARGET): Pass the transformation to set
> > > 	properly.
> > >
> > > Index: gdb/testsuite//Makefile.in
> > > ===================================================================
> > > RCS file: /cvs/cvsfiles/devo/gdb/testsuite/Makefile.in,v
> > > retrieving revision 1.66
> > > diff -c -r1.66 Makefile.in
> > > *** gdb/testsuite//Makefile.in	9 Sep 2003 21:03:53 -0000	1.66
> > > --- gdb/testsuite//Makefile.in	7 Oct 2003 21:33:22 -0000
> > > ***************
> > > *** 53,59 ****
> > >       if [ "$(host_canonical)" = "$(target_canonical)" ]; then \
> > >         echo runtest; \
> > >       else \
> > > !       t='$(program_transform_name)'; echo runtest | sed -e '' $$t; \
> > >       fi; \
> > >     fi`
> > >
> > > --- 53,59 ----
> > >       if [ "$(host_canonical)" = "$(target_canonical)" ]; then \
> > >         echo runtest; \
> > >       else \
> > > !       t='$(program_transform_name)'; echo runtest | sed -e '$$t'; \
> > >       fi; \
> > >     fi`
> >
> > That's certainly what it's supposed to look like.
> >
> 
> You sure that the expression is right? I think the single quotes will
> hide the expansion of $t in the shell. I ran a simple test on my
> system with this make file fragment:
> 
> roth@knuth:/tmp$ cat Makefile
> program_transform_name = s/^/avr-/
> 
> all:
>         t='$(program_transform_name)'; echo runtest | sed -e '$$t'
>         t='$(program_transform_name)'; echo runtest | sed -e "$$t"
> roth@knuth:/tmp$ make
> t='s/^/avr-/'; echo runtest | sed -e '$t'
> runtest
> t='s/^/avr-/'; echo runtest | sed -e "$t"
> avr-runtest

Eh, you're right, this will teach me to answer without looking.  From
gcc/Makefile.in:

       t='$(program_transform_cross_name)'; echo ar | sed -e $$t ; \

That's the idiom we should use here.

-- 
Daniel Jacobowitz
MontaVista Software                         Debian GNU/Linux Developer


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]