Subject: Re: XFree86-clients and :37:17: missing terminating " character
To: None <tech-pkg@NetBSD.org>
From: Klaus Heinz <k.heinz.apr.vier@onlinehome.de>
List: tech-pkg
Date: 04/26/2004 00:47:58
grant beattie wrote:
> On Sun, Apr 25, 2004 at 02:18:34AM +0200, Klaus Heinz wrote:
> 
> > The problem is "-DLINK_LIBGCC_SPEC=\"%D "". I haven't yet found where this
> > goes wrong, 
> 
> it is caused by mk/buildlink3/logic rev 1.6, which, imo, should be
> backed out until it is fixed properly - it is breaking many packages.

My findings so far (for the build of gcc3-c):

The macro definition

  -DLINK_LIBGCC_SPEC="%D -R/usr/pkg/gcc3/lib"

gets transformed by the execution of $BUILDLINK_DIR/bin/.logic-trans.
This calls $BUILDLINK_DIR/bin/.quotearg

  "-DLINK_LIBGCC_SPEC=\"%D -R/usr/pkg/gcc3/lib\""

and then applies all the sed expressions in $BUILDLINK_DIR/bin/.transform.sed,
with the (wrong) result:

  "-DLINK_LIBGCC_SPEC=\"%D ""
                          ^^^

.transform.sed contains the expressions

  s|-I/[^ 	`"':;,]*||g
  s|-L/[^ 	`"':;,]*||g
  s|-Wl,--rpath-link,/[^ 	`"':;,]*||g
  s|-Wl,--rpath,/[^ 	`"':;,]*||g
  s|-Wl,-rpath-link,/[^ 	`"':;,]*||g
  s|-Wl,-rpath,/[^ 	`"':;,]*||g
  s|-Wl,-R/[^ 	`"':;,]*||g
  s|-R/[^ 	`"':;,]*||g
  
which are most likely the result of "r:/" in the variable
${_BLNK_TRANSFORM} when $BUILDLINK_DIR/bin/.gen-transform is called in
bsd.buildlink3.mk.
"r:/" comes from line 971 of bsd.buildlink3.mk rev 1.140.

Since there is no backslash in the character class [...] the \ in front of "
is removed.

I am unsure whether adding \\ to the list of separator characters (_sep)
in gen-transform.sh is the correct solution. It sure helps with getting
gcc3-c compiled.


ciao
     Klaus