Wind River Support Network

HomeDefectsLIN7-3950
Fixed

LIN7-3950 : CLONE - Tigervnc build error when project name include string "-I"

Created: Jun 3, 2015    Updated: Sep 8, 2018
Resolved Date: Jul 22, 2015
Previous ID: LIN6-9965
Found In Version: 7.0.0.5
Fix Version: 7.0.0.8
Severity: Standard
Applicable for: Wind River Linux 7
Component/s: Userspace

Description

While bulding the tigervnc package, the Makefile copy pixman.h into its local building directory.  Following code copy pixman.h and remove string "-I" with sed command.

unix/xserver/hw/vnc/Makefile:
pixman.h:
	for i in ${XSERVERLIBS_CFLAGS}; do \
		if [[ "$$i" =~ "pixman" ]]; then \
			PIXMANINCDIR=`echo $$i | sed s/-I//g`; \
		fi; \
	done; \
	if [ ! "$$PIXMANINCDIR" = "" ]; then \
		cat $$PIXMANINCDIR/pixman.h | sed 's/xor/c_xor/' > $(srcdir)/pixman.h; \
	else \
		echo Pixman include directory not set in XSERVERLIBS_CFLAGS \(perhaps Pixman was not found by configure?\); \
	fi

This sed command intend to remove the beginning "-I".  However, because this sed command include 'g' option, all occurrence of "-I" is removed.

Therefore, when the project name include string "-I", this is removed and the building tigervnc is failed.

Steps to Reproduce

1. Make new project which include string "-I" within its name.

   For example:
   $ cd workspace
   $ mkdir test-Installer

2. Configure new project which include tigervnc package.

   For example, Installer project include tigervnc by default, configure as follows:
   $ /path/to/wrlinux-6/wrlinux/configure --enable-board=intel-x86-64 --enable-kernel=standard --enable-rootfs=wr_installer --enable-target-installer=yes --with-installer-target-build=/path/to/intel-x86-64-glibc-std-standard-dist.ext3 --enable-bootimage=iso

3. Build the project

   $ make

As a result, building tigervnc package failed with following error:

for i in -I/path/to/workspace/test-Installer/bitbake_build/tmp/sysroots/intel-x86-64/usr/include/pixman-1 -I/path/to/workspace/test-Installer/bitbake_build/tmp/sysroots/intel-x86-64/usr/include/freetype2 ; do \
		if [[ "$i" =~ "pixman" ]]; then \
			PIXMANINCDIR=`echo $i | sed s/-I//g`; \
		fi; \
	done; \
	if [ ! "$PIXMANINCDIR" = "" ]; then \
		cat $PIXMANINCDIR/pixman.h | sed 's/xor/c_xor/' > ./pixman.h; \
	else \
		echo Pixman include directory not set in XSERVERLIBS_CFLAGS \(perhaps Pixman was not found by configure?\); \
	fi
cat: /path/to/workspace/testnstaller/bitbake_build/tmp/sysroots/intel-x86-64/usr/include/pixman-1/pixman.h: No such file or directory

In above, the cat command reports following directory not found:

   /path/to/workspace/testnstaller/

However this should be as follows:

   /path/to/workspace/test-Installer/

Other Downloads


Live chat
Online